El comando Linux de 300€

La historia continúa…  Jueves 25 de mayo de 2017, 18:00 horas, hora de la merienda, 32 grados de temperatura a la sombra, la cocina de mi casa. Me dispongo a preparar un rico café con leche y hielo (Sí, ¡es posible!, no pasa nada por mezclar leche con hielo, no se corta, no explota, no ocurre ninguna desgracia, y además está bueno). Suena el timbre de mi casa, fuera estaba mi vecino. Sí, el mismo vecino que os contaba en el artículo: “Mi Análisis de WannaCry“, que le habían robado dentro de su coche: un sobre con 300 euros para el cumpleaños de su hijo, un pendrive y unas gafas de sol, mientras él estaba en la piscina. Él me comenta que le acaban de llamar de comisaría para decirle que gracias a que había denunciado lo que le había sucedido, una patrulla localizó en las inmediaciones del lugar del robo a un hombre con un sobre de 300 euros y un pendrive del mismo color que el que le habían robado, el agente le dice que sería conveniente que aportara el número de serie del pendrive para confirmar que es el suyo, ya que al parecer cuando lo encontraron solo tenía unos ficheros de vídeo en su interior.

Fig. 1 Pendrive robado

Mi vecino, no muy ducho con las nuevas tecnologías, me había pedido hace un tiempo que le comprara ese pendrive por internet, ya que le salía muy bien de precio, pero él no se atrevía a meter su tarjeta bancaria en una página web. Al final se lo acabé comprando, pero claro, ahora me dice que si puedo contactar con la tienda online para que me proporcione el número de serie del pendrive que le habían vendido. Por desgracia la tienda no dispone de ese tipo de información, así que todo su gozo en un pozo.

Como siempre, a grandes males, grandes remedios. Utilizando un poco de “pensamiento lateral“, se me ocurrió que aunque la tienda no dispusiese del número de serie del pendrive. Mi vecino a lo mejor si lo tenía apuntando, aunque él no lo supiese. ¿Y dónde lo podía tener apuntado?, la respuesta es fácil, en su ordenador. En los sistemas operativos Windows, cada vez que se conecta una unidad USB al ordenador, insertan una clave en el registro del sistema con una serie de parámetros sobre el dispositivo conectado. Entre estos parámetros, se encuentra: el nombre comercial del dispositivo, fecha de instalación, número de serie, unidad asignada… así como otra serie de parámetros técnicos no menos importantes, pero que para el tema que nos ocupan no vienen al caso.

Le pregunté a mi vecino si había conectado ese pendrive a su portátil, me dijo que no lo recordaba, ya que solo lo utilizaba para guardar sus podcast preferidos e irlos escuchando mientras conducía. Por si acaso, le dije que me trajera el portátil y le echábamos un vistazo rápido.

Se trataba de un Windows 7, de 64 bits, por lo que solo tuve que abrir el Registro de Windows e ir a la clave: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR. En esta clave quedan registrados todos los dispositivos de almacenamiento USB conectados al ordenador. Un pendrive, es un dispositivo de almacenamiento USB, así que si había conectado el pendrive a ese PC, tuvo que quedar registrado. Me comentó que era un pendrive marca SanDisk modelo Cruzer, rápidamente localicé entre todas las claves de registro una que se llamaba: “Disk&Ven_SanDisk&Prod_Cruzer_Blade&Rev_2.01“.

Fig. 2 Registro de Windows

¡Lo logré! blanco y en botella, ahí estaba el registro del pendrive , además en la clave también constaba el número de serie: “4C530103341021117100“, así que el trabajo ya estaba hecho y en tiempo record, mi vecino estaba con los ojos como platos. Me vine arriba, y le dije que también podía sacar la fecha de la primera instalación del pendrive en el ordenador, para esto tan solo es necesario exportar la clave de registro correspondiente a un formato tipo .txt, como se aprecia en la siguiente imagen: la primera vez que se conectó ese pendrive al portátil, fue a las 22:41 horas del día 27 de mayo de 2016, esto es, hace poco menos de un año.

Fig. 3 Exportación de una clave del registro

Pero realmente hacía mucho más tiempo que le había comprado ese pendrive por internet. Algo no coincidía, volví sobre mis pasos, y me fije que la clave de registro correspondía con un pendrive: SanDisk Cruzer Blade, el modelo que le habían robado a mi vecino era un Cruzer, pero no Cruzer Blade, a no ser que Cruzer y Cruzer Blade fuera lo mismo. La forma de resolver esta duda es muy sencilla, con una simple búsqueda en Google, se observa que efectivamente los SanDisk Cruzer Blade, son más modernos y con un diseño más redondeado que los SanDisk Cruzer “a secas”, como se puede apreciar, su diseño no tiene nada que ver con el del anuncio anterior:

Fig. 4 Otro Pendrive

Por desgracia el pendrive que estábamos buscando era un Cruzer, y no un Cruzer Blade, así que: ¡Game Over!, el pendrive que aparecía en el registro era otro que tenía por casa. Lo peor de todo, es que en el registro de Windows no constaba que se hubiera conectado ningún otro pendrive marca SanDisk. En ese momento me comentó, que a lo mejor si había conectado el pendrive que le habían robado a un ordenador viejo que su hijo le había regalado. Cuando me lo trajo, vi que era un notebook, con un procesador intel Atom, de 1GB de RAM, pero con la pantalla completamente fracturada, así que no se podía encender. Pero si se podía desmontar, así que le extraje el disco duro, un SATA 2.5″ con 160Gb de capacidad y lo conecté a una de las bahías libres de mi ordenador. Al analizar su contenido, descubrí que el sistema que tenía instalado era un Kubuntu 15.10  (Linux).

¡Vaya un Linux!, y dicen que los Linux esos son muy complicados para hacerle un análisis forense… Efectivamente, los sistemas GNU/Linux son mucho más complicados que los Windows para realizarles un análisis forense. Aún así lo voy a intentar, la técnica para extraer la información que me interesa es muy compleja, la iré explicando poco a poco, aunque no creo que todo el mundo la pueda llegar a entender, la técnica es la siguiente: En primer lugar abrimos el fichero de texto llamado “syslog” que se suele encontrar en la carpeta “var/log” y ya está, ya hemos terminado 😉 Muchas veces nos asustamos pensando que por ser un sistema Linux será todo mucho mas complicado y sin embargo, hay procesos que son mas sencillos que en otros sistemas operativos. Cuando se conecta cualquier tipo de dispositivo en un sistema Linux: Ubuntu, Debian… este queda registrado en ese fichero de texto. Si el  fichero “syslog” se hace muy grande, simplemente se crea otro nuevo fichero y el anterior se guarda como una copia de seguridad dentro de la misma carpeta.

Ahora solo nos quedaba buscar dentro de los ficheros “syslog” el registro de la conexión del pendrive robado. Pero el caso es que mi vecino se tenía que marchar y lo que es más importante, yo aún no me había tomado mi café con leche y hielo. Mientras calentaba la leche, estaba pensado que con un simple comando: “grep ‘SanDisk’ /var/log/syslog > usb.log” podía buscar todas las entradas que correspondieran a un dispositivo marca SanDisk conectado a ese sistema, pero en ese momento sonó la campana del microondas dónde estaba calentado la leche para echarle el café soluble, así es, tanta fama con el café y al final me acabo tomando cafés solubles de bote 🙁 . El caso, es que el comando anterior, me parecía un poco chapucilla, así que mientras esperaba que el hielo hiciera efecto, hablé con mi buen amigo Marcos @ _N4rr34n6_ y le pregunté si se le ocurría algún comando un poco más elegante, para localizar un pendrive conectado a un sistema Ubuntu o similar, como tardó unos segundos en responder pensé que estaría ocupado, así que yo seguí a lo mío, tomándome el café. De repente me vibra el móvil y al mirar la pantalla veo lo siguiente:

sudo egrep -ri -A 5 ‘New USB device found’ /var/log/ && sudo egrep -ri ‘Direct-Access’ /var/log/

sudo zgrep -i -A 5 ‘New USB device found’ /var/log/kern.log*

sudo zgrep -i -A 5 ‘New USB device found’ /var/log/syslog*

sudo egrep -ri -e ‘New USB device found’ -e ‘Product: ‘ -e ‘Manufacturer: ‘ -e SerialNumber -e ‘USB disconnect’ -e Direct-Access /var/log/

sudo egrep -ri -A 5 ‘New USB device found’ /var/log/ sudo find /var/log/ -type f -print0 | sudo xargs -0 egrep -A 5 ‘New USB device found’

ZAS!. Marcos también se había venido arriba y me preparó este mega comando de Linux, para listar todos los dispositivo USB conectados a un Ubuntu. Este comando parsea, el nombre del dispositivo, fabricante, hora de conexión en el sistema y por supuesto, lo que estábamos buscando, el número de serie de los pendrives conectados. El resultado es algo tal que así, simplemente brillante:

Fig. 5 Megacomando de Marcos

Si la salida (resultado) del comando anterior os resulta muy extensa, con un simple: “grep ‘SanDisk’ /var/log/syslog” se puede comprobar cómo efectivamente quedó registrado en el ordenador de mi vecino el número de serie del pendrive SanDisk Cruzer que le habían robado.

Fig. 6 Número de serie y modelo del pendrive

Gracias a esto, mi vecino pudo aportar el número de serie del pendrive que le habían robado y así poder optar a recuperarlo junto con el dinero. Pero lo recomendable es no tener que llegar a este punto, lo ideal es tratar de ir apuntando los números de serie de todos los dispositivos que vamos comprando, incluso sacarles una fotografía, así en caso de que nos ocurra algo parecido, nos resultará más sencillo tener toda la información del dispositivo electrónico u objeto de valor robado o perdido.

Si bucear por el registro de Windows os da yuyu, no os preocupéis. Aunque me guste realizar este tipo de tareas de forma manual, existen herramientas automatizadas que son capaces de extraer y parsear esta información para mostrarla de una forma mucho más amigable, como es el caso de la aplicación USB Deview desarrollada por Nirsoft, que con un solo clic de ratón lista todos los dispositivos USB conectados a un ordenador Windows.

Fig. 7 USB Deview

Todo esto de extraer listados de dispositivos conectados a un sistema operativo, números de serie, fechas de conexión y desconexión, relación fabricantes, se denomina: Artefactos Forenses, existen muchos tipos de estos artefactos, como por ejemplo: las tablas MFT de los discos, el visor de eventos de Windows, Shadow Copy, histórico de sesiones… Y un sinfín más de información que nuestros sistemas operativos van almacenando día a día. La imagen que os dejo a continuación, me la pasó Marcos y es de forensic-proof.com, en ella se observa de una forma muy visual los artefactos de los distintos sistemas Linux (Mint, Ubuntu, CentOS…) sobre el registro de dispositivos USB conectados al sistema.

Fig. 8 Artefactos Linux de dispositivos USB. Forensic Proof

Pero que la información esté en el disco, no quiere decir que la podamos extraer fácilmente, y lo que es peor: interpretarla, ya que por ejemplo podemos dumpear el registro completo de Windows, pero si luego no sabemos interpretar cada uno de sus valores, no ha servido para nada esa extracción de información. Esa es la complejidad real de esta tarea, el análisis e interpretación de la información obtenida. En este caso, un simple comando de Linux, nos ha permitido localizar una información que de otra manera sería del todo imposible poder obtener. Aunque introducir un simple comando en una terminal de Linux, puede parecer una tarea simple o no tan simple, no hay que olvidar la Fábula del Ingeniero y el Tornillo.

Salu2

Manuel Guerra

Manuel Guerra

Mi nombre es Manuel Guerra. Investigador especializado en: [eCrime] | [Forensic] && [Hacking]. Editor de GLIDER.es

Navegación de la entrada


Comentarios

  • Andreu

    Perfecto ejemplo de informática forense aplicada 🙂

    Espero que le cobres unas cervezas al vecino, porque tu trabajo te ha llevado.

  • Braincodec

    Buen artículo Manuel. Tan solo añadir un pequeño detalle, que más de uno seguro que no tendrá en cuenta. Dile a tu vecino (que por cierto menudo desgraciado, todo lo pasa a él), que cuando vaya a recoger la memoria USB, no la enchufe directamente en su ordenador o correrá el riesgo de padecer un mal peor. A lo mejor el “chorizo” utilizó sus dotes de “ingeniería social” para robarle la USB (y no tanto el dinero), con el fin de infectar su ordenador. Ya sabéis … no enchufes nunca un pen que te hayas encontraaaado, o como en este caso que te hayan robaaaado y hayas recuperaaado.

    Un saludo, y enhorabuena por el trabajo de divulgación que haces.

    • Manuel Guerra

      Manuel Guerra

      Hola, esa es una muy buena puntualización, y no solo por el riesgo de infección, si el “malo” ha guardado algún tipo de información suya en el pendrive robado, esa información no puede volver al propietario, ya que el pendrive es suyo, pero no la información que contiene. Con un buen borrado solucionado 😉

  • Leandro Pavon

    Hola Manuel, gracias por deleitarnos con este artículo, aunque me que con la curiosidad de saber cómo pilló la policía al sospechoso, cómo se determinó que era él si no ha sido pillado en el acto y si tu vecino tiene que justificar de algún modo adicional la propiedad de la memoria USB, sabiendo nosotros el número de serie… ¿podríamos reclamarlo como nuestro?

    Saludos.

  • Jon

    Estoy muy impresionado con esta página. Me lo paso tan bien leyéndote como cuando me leía el libro Hacker Épico. Muy bien explicado y muy ameno. Ojalá sigas mucho tiempo publicando artículos como estos. Muchas gracias por compartirlo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puede usar las siguientes etiquetas y atributos HTML:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>