jueves, 25 de julio de 2013

Ethical carroñero

Objetivo: memoria


Años de entrenamiento no son en vano. ¿Recordás a Jason Bourne diciendo "I can tell you the license plate numbers of all six cars outside. I can tell you that our waitress is left-handed and the guy sitting up at the counter weighs two hundred fifteen pounds and knows how to handle himself. I know the best place to look for a gun is the cab or the gray truck outside"? Bueno, no es lo que me pasa a mi. Sin embargo, el otro día mientras caminaba pasé al lado de un gabinete maltrecho y me bastó una rápida ojeada para ver que no había sido depredado aún.

Regresé los quince metros que me había llevado evaluar que no podía llevar todo pues mi Ama y Señora me lo prohibe, pero sí la memoria. Una cuadra y media evaluar que no tenía donde probarla, que necesitaba todo y que tendría que desobedecer y volver. El instinto carroñero triunfó sobre la razón y subrepticiamente introduje en el santuario de mi hogar el gabinete más sucio por afuera que jamas nadie halla visto. Por dentro lo normal, hedía a cigarrillo y tenía telarañas, nada especial.

Objetivo: mother, micro, memoria y video


Si alguien tiró todo esto, razoné, no fue un servicio técnico, fué un civil. Estaba lista para funcionar, las únicas irregularidades eran que le faltaba una tapa, estaba deformado por un fuerte pisotón (alguien usó la computadora de escalera) y tenía una regrabadora de dvd desconectada. Como el disco rígido estaba, me imaginé que eso era lo que había fallado.

Me puse ambicioso, quizás funcione y tiene medio giga de ram, es usable. El único problema era que al conectarla, si la fuente estaba en corto me hallaría en problemas.

Arrancó lo más bien, hasta que en el POST[1] tiró los tres pitidos fatales. Así que la memoria o el mother estaban rotos. Cambié de slot e incluso la quité y no hizo diferencia. No me acordé de lo más elemental, limpiar los slots y los contactos,  cuando recordé, ya me había deshecho de los despojos.

La placa de video tenía los capacitores hinchados, se la regalé a un compañero de trabajo que suele resucitarlas.

Objetivo: disco y lectoras


La memoria me la quedo, pensé, algún día hallaré donde probarla. Se la regalé a otro compañero de trabajo. La fuente será backup de algo, al cajón del olvido. El micro, un P4 de 2.66 fue al estante de los micros, al lado del abuelo baldosa Pentium Pro 200. Vamos a por el disco de 80 GB y las lectoras.

Mi fiel Pentium III de 800 del 2002 se ofreció como voluntaria para probar los componentes. El disco arrancó pero se detuvo al inicio de windows. Luego pensé que podía ser de 64 bits y fallara por el cambio de hardware, linux avisa pero windows quizás no. Me dije, no importa, arranquemos de otro lado, un kali linux[2] debería sobrar.

En este momento obtuve el primer fruto intelectual: las computadoras no arrancan cuando se ponen dvds en las lectoras de cd.

Probé con un trinity [3] y todo ok, ahí estaba servida la vida de una persona.


Objetivo: información


La verdad es que no me agrada para nada escarbar en los asuntos personales ajenos, pero este era el escenario ideal: el disco de un persona absolutamente desconocida, con windows, que dista de ser mi fuerte. Era una excelente experiencia de investigación informática forense. Explorar esta máquina me iba a obligar a aprender a usar muchas herramientas y hacer algo que para divertirse es aceptable pero insoportable para trabajar: aprender windows internals.

Ya había cometido un error metodológico. El haber intentado arrancar con el sistema operativo del disco pudo haber destruido información, ya sea por que hubiera un bichito o porque windows restaurara algo para intentar salvarse.

El siguiente paso fue conectar el disco y ver que se podía extraer una imagen para no depender de que el disco fallara y no perder nada en las pruebas.


Tuve una interminable cantidad de dificultades técnicas, como que el adaptador pata/usb no funcionara y tuviera que usar la PIII. De todos modos, dijo la zorra, no tenía espacio libre en mi máquina. Que parted no entendiera ntfs shrink, etc.

Hora de priorizar y planificar.

Los objetivos estratégicos

  • Aprender el proceso completo.
  • Aprender las distintas herramientas necesarias.
  • La diversión.

Los objetivos tácticos y el alcance

  • No perder la imagen original.
  • Obtener credenciales.
  • Recuperar y continuar sesiones activas.
  • Armar un perfil del usuario.

Primer camino, la restauración


Este es el camino más sencillo. Intentar arrancar la imagen del disco dentro de una virtual y confiar en que no hayan bichitos, ni nada que me haga perder nada. El pronóstico es bueno, ya que la máquina fué descartada por fallo de hardware. Es vital que no se pueda conectar a Internet.



  • Extraje una imagen del disco.
  • Desconecté el disco original.
  • Dupliqué y copié la imagen a un disco externo como resguardo.
  • Reduje la partición de windows para que entrara en el disco interno.




Detalles

$ dd if=/dev/sdb of=windows.img

Para montar las particiones dentro de la imagen, que en este caso era una sola, hice esto[4]

$ fdisk -lu windows.img

Disk windows.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x4fe54fe5

             Device Boot  Start        End    Blocks   Id  System
windows.img       1   *      63  160810649  80405293+   7  HPFS/NTFS



Hay que obtener el offset que es start * 512 y montar

mount -o loop,offset=32256 windows.img /mnt0

para obtener el espacio ocupado:

df /mnt -h


Reparticionar con gparted[5]

qemu-system-x86_64 -hda windows.img -cdrom gparted-live-xxx.iso  -boot order=d





Una vez reducida la partición, pude copiar parte de la imagen al disco interno

 fdisk -lu windows.img

Disk windows.img: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders, total 160836480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4fe54fe5

      Device Boot      Start         End      Blocks   Id  System
windows.img1   *          63    46000127    23000032+   7  HPFS/NTFS/exFAT


ahora hacemos End * 512 = 23552065024 Bytes
/ 1024 = 23000064 KBytes
/ 1024 = 22461 MBytes


dd if=externo/windows.img of=interno/windows.img bs=1M count=23000


El problema con este acercamiento es que perdí el espacio libre donde podía haber información, quedará para la autopsia. El archivo de swap ya lo había perdido antes, al probar si la máquina arrancaba.

Tras reiniciar un par de veces mientras el sistema operativo limpiaba el desastre, pude comenzar el análisis.

Segundo error: qemu provee networking por default, me di cuenta cuando el antivirus me dijo que se estaba actualizando.

-net none       use it alone to have zero network devices. If no -net option
                is provided, the default is '-net nic -net user'


Vamos otra vez, esta vez más generosos con la memoria, que por default es 256:

qemu-system-x86_64 -hda windows.img -net none -m 1G

Tras cometer una interminable serie de errores adicionales, llegué a la conclusión que tenía que comenzar otra vez. Para poder resetear la imagen hay que ejecutar otra vez el dd anterior.



Escarbando...


Tiene 2 antivirus y ccleaner, hay búsquedas en el historial de un mother y el nombre de la cuenta me cuentan que tiene alguna idea, no es un end-user.




Nada en la basura, 1G1 de música bajada de internet, links a soft ilegal.

La fecha de modificación de los archivos indica cerca de dos años sin uso.

Hay fotos personales con amigos, mascotas, contexto barrial.

Microsoft Office OneNote tiene muchas capturas de pantalla de... facebook

Quizás ya sabemos el nombre y la cara y varios amigos, el fondo de pantalla provee caras de amigos.

Ya sé donde estuviste de vacaciones: fotos de un complejo turístico con el nombre, no había información de gps en las fotos, pero si de marcas de cámara/celular, que se complementa con el soft de conectividad al teléfono.

Viendo el historial de navegación sé de que clubes sos:

Mercado pago
Mercado libre
hotmail
facebook
identidad racinguista...

Tengo algunas cookies, tipo 2800, no deben servir para nada

Ah, me olvidaba, tengo varias de tus contraseñas


Segundo camino, la autopsia

Consiste en analizar tanto desde linux como desde windows el disco sin escribir nada ni ejecutar nada que esté en disco, sin respetar el sistema de archivos. De hecho lo tomé para ver la información exif[6] de las fotos sin setear carpetas compartidas.

Debería corre un antivirus pero ya ha rendido suficientes frutos la experiencia y le dediqué demasiado tiempo.

Aprendizaje


Como se puede ver, una y otra vez, dejando de lado los errores, hay que hacer concesiones y no respetar a rajatabla el procedimiento forense. Si no tengo 80 GB libres en donde pueda hacer el análisis, tengo que sacrificar algo. Si hubiese tenido mucho apuro, sin tiempo para aprender a usar las herramientas, ni estar transfiriendo backups de un lado a otro, tendría que haber tomado atajos que de salir mal hubiesen provocado pérdidas de información. Además el cambio de objetivos durante el transcurso del proyecto, afectó a los pasos siguientes, cuando sólo me interesaba determinar lo que estaba roto, no tomé las precauciones necesarias para preservar la información.

Para hacerlo en serio, hay que tener en cuenta que se puede tardar mucho. En esa situación, que no haya espacio no es excusa para alterar la imagen original.

Conclusiones


Los elementos arrojados a la basura recuperados, según mercado libre tienen un valor de $460
  • Memoria pc400 512MB $110
  • Lectora cd $20
  • Disco 80GB $170
  • Fuente 430W $90
  • Micro P4 2.6 GH $70

Si alguien quiere comprar, ejem, me avisa...


Lo que sí pudo haber tenido valor es toda la información expuesta. En mi posición de ethical hacker, las copias del disco fueron sobreescritas y borradas. El disco sobreescrito, reformateado y reubicado.

Agradezco profundamente a Miguel Sumer Elías de Informática Legal por el asesoramiento gracias al cual intenté no incurrir en ningún delito.


Referencias


[1] http://en.wikipedia.org/wiki/Power-on_self-test
[2] http://www.kali.org
[3] http://trinityhome.org/

[4] http://www.jefferyfernandez.id.au/2007/06/14/mounting-partitions-that-are-within-a-disk-image/
[5] http://gparted.sourceforge.net/

[6] https://en.wikipedia.org/wiki/Exchangeable_image_file_format

No hay comentarios:

Publicar un comentario