Recientemente me llego a mis manos un pendrive, cuyo dueño no usaba desde verano, para que le copiara un par de archivos de mi equipo personal de casa a su pendrive. Al conectarlo me llamaron la atención un par de cosas del pendrive, por lo que decidí echarle un vistazo a ver que me encontraba.
Primero me hice una copia en raw de nombre imagen:
# dc3dd if=/dev/sdb1 of=imagen bs=512 conv=noerror,sync hash=sha256 hashlog=ressha
Luego me puse a analizar que ficheros se habían eliminado del pendrive (símbolo *) y… ¡voilà! Un fichero “_autorun.inf” y “_gt.exe” no paraba de eliminarse, y si consultábamos el inodo, no paraba de ejecutarse:
# fls imagen ... r/r * 13: _gt.exe d/d 14: lala r/r * 15: _utorun.inf ... r/r * 42: _utorun.inf r/r * 43: _gt.exe ... r/r * 56: _utorun.inf r/r * 57: _gt.exe r/r * 58: _utorun.inf r/r * 59: _gt.exe r/r * 60: _utorun.inf r/r 61: tgt.exe r/r 62: autorun.inf d/d * 63: _081078_ d/d * 64: _208421_
Quise, por curiosidad, ver de que fecha era el primer inodo eliminado que seguía existiendo (no había sido sobrescrito todavía). Solo era del 21 de Febrero:
# istat imagen 13 Directory Entry: 13 Not Allocated File Attributes: File Size: 96768 Name: _gt.exe Directory Entry Times: Written: Sun Feb 21 21:52:34 2010 Accessed: Tue Jul 6 00:00:00 2010 Created: Tue Jul 6 10:00:17 2010 Sectors: 10496 10497 10498 10499 10500 10501 10502 10503
Veamos a ver que contiene el magnífico señor inodo “13” que estaba eliminado:
# icat imagen 13 > OyO # strings OyO | egrep -i 'get|dll|load' kernel32.dll user32.dll LOADER ERROR kernel32.dll GetProcAddress GetModuleHandleA LoadLibraryA
Debido a mis limitaciones técnicas y temporales, no me podía poner a realizar una ingeniería inversa del malware, por lo que decidí usar VirusTotal a ver que me comenta de este fichero:
Es la primera vez que veo un pleno, 43 de 43 antivirus creen que es un Troyano. ¿Que fichero más chulo tenía borrado el Pendrive verdad?
Ya solo por curiosidad, y viendo el listado del principio del comando fls, vemos que el primer inodo que se borró es el número 13. A continuación vemos el inodo 14 cuyo nombre es “lala”, el cual es un directorio que no está borrado. Al solicitar información sobre el directorio vemos que está oculto:
# istat imagen 14 Directory Entry: 14 Allocated File Attributes: Directory, Read Only, Hidden, System Size: 32768 Name: lala Directory Entry Times: Written: Tue Jul 6 10:00:18 2010 Accessed: Tue Jul 6 00:00:00 2010 Created: Tue Jul 6 10:00:17 2010 Sectors: 10688 10689 10690 10691 10692 10693 10694 10695 ...
Montando la imagen con las opciones loop, noexec y ro vemos que nos encontramos en dicho directorio un ejecutable cuyo nombre es “amiguito.exe”. Obtenemos los datos del fichero, el cual se había escrito en Junio (recordemos que el anterior era de Febrero):
# ifind -n "/lala/lilili/amiguito.exe" imagen 163335 # istat imagen 163335 Directory Entry: 163335 Allocated File Attributes: File, Read Only, Hidden, System Size: 380928 Name: amiguito.exe Directory Entry Times: Written: Tue Jun 15 07:42:38 2010 Accessed: Tue Jul 6 00:00:00 2010 Created: Tue Jul 6 10:00:18 2010 Sectors: 10880 10881 10882 10883 10884 10885 10886 10887 ... # icat imagen 163335 > OyO2
Subo el nuevo fichero a VirusTotal y veo lo siguiente:
En este caso, “sólo” 38 de 43 antivirus creen que es Malware…
Dos troyanos, uno de Febrero y otro de Junio en el pendrive y eso que lo he mirado por encima. Si analizara en profundidad estoy convencido que encontraría una autentica jungla. Seguro que el dueño del pendrive estará muy disgustado por el mal funcionamiento de su Windows… Iré encargando la conocida camiseta que tan bien nos representa: “No, no pienso arreglarte tu ordenador. Paga el servicio técnico”.
Que gran post! Muy ameno.
Un aludo.