Está en la página 1de 6

Investigación Windows • PORTADA

Investigamos los sistemas Windows desde Linux

ABRIENDO
VENTANAS
Max, Fotolia

Un experto forense explica cómo obtener mediante análisis forense detalles interesantes de un disco duro

con un Windows comprometido. Usando, por supuesto, herramientas estándar de Linux.


POR HANS-PETER MERKEL Y MARKUS FEILNER

L
os criminales, intrusos y sabotea-
dores de empresas dejan un ras-
tro de datos tras de sí en los dis-
cos duros de las máquinas que visitan.
Muchas de estas máquinas son sistemas
Windows, pero no necesitamos Win-
dows para obtener la valiosa informa-
ción forense de un disco duro con este
sistema operativo. En este artículo expli-
camos algunas sencillas técnicas para
extraer estos datos de un disco con Win-
dows usando Linux.
Antes de cualquier análisis forense
es importante hacer una copia del
medio de almacenamiento que esta-
mos analizando. Puede ser una copia
1:1, una imagen o una colección de Figura 1: Con Md5sum pueden crearse hashes únicos de los archivos de un sistema de
imágenes. La copia puede ser una ima- archivos Windows. Podemos comparar los valores de la primera columna con los valores de
gen en bruto (con dd) o tener algún archivos conocidos.

WWW.LINUX- MAGAZINE.ES Número 42 29


PORTADA • Investigación de Sistemas Windows

formato como EWF (Expert Witness # mount -o ro,noatime,noexec U sistema de archivos de un disco de
Format). /dev/loop0 /mnt Windows. Ojeando el archivo
EWF es un formato propietario de por boot.ini puede apreciarse que perte-
Guidance Software [1],y soportado tam- Echando un vistazo a /mnt se pue- necen a un Windows 2000 Server
bién por la herramienta comercial de den ver los archivos de inicio y el (Listado 3).
análisis forense X-Ways [2]. Las imáge-
nes EWF están comprimidas y son, por Listado 1: Extracción de Información con fdisk
tanto, mucho más pequeñas que las 01 # fdisk -lu win_hd.dd
imágenes en bruto.
02 Disk win_hd.dd: 0 MB, 0 bytes
Hay herramientas para Linux, como
Linux Encase (Linen) o Ewfacquire [3], 03 120 heads, 63 sectors/track, 0 cylinders, total 0 sectorsUnits =
con las que podemos crear imágenes sectors of 1 * 512 = 512 bytes
EWF. Linen viene con el CD de análisis 04 Disk identifier: 0x840b840b
forense Helix [4], contribución de Gui- 05 Device Boot Start End Blocks Id
dance Software. Aunque la herramienta System
dd, incluida en cualquier distribución
06 win_hd.dd1 * 63 6327719163828+ 7
de Linux, puede hacer el trabajo.
HPFS/NTFS
Usando dd, podemos incluso ejecutar
una copia del sistema Windows en un
entorno virtual, como el de VMware; Listado 2: Datos de disktype
usando EWF no podremos ejecutar Win- 01 # disktype win_hd.dd
dows sin el correspondiente software
02 win_hd.dd
propietario, debido a su formato com-
primido. 03 Regular file, size 3.021 GiB (3243663360 bytes)
El comando 04 DOS/MBR partition map
05 Partition 1: 3.017 GiB (3239760384 bytes, 6327657 sectors from 63,
dd if=/dev/sda of=win_hd.ddU
bootable)
bs=4096 conv=noerror,sync
06 Type 0x07 (HPFS/NTFS)
crea una imagen dd. Hay que cambiar 07 Windows NTLDR boot loader
/dev/sda por el disco que se pretende 08 NTFS file system
copiar. El tamaño de bloque bs=4096
09 Volume size 3.017 GiB (3239759872 bytes, 6327656 sectors)
acelera la copia. El parámetro conv
garantiza que no se pare de hacer la
copia aunque se encuentren sectores Listado 3: Sistema de Archivos Windows
defectuosos. 01 # ls -l /mnt
Ejecutando fdisk -lu obtenemos infor-
02 Total 787024
mación sobre la imagen del disco. El
administrador sólo ha de pasarle el 03 r 1 root root 150528 20030619 13:05 arcldr.exe
nombre de la imagen como parámetro 04 r 1 root root 163840 20030619 13:05 arcsetup.exe
(Listado 1).
05 r 1 root root 0 20071202 11:59 AUTOEXEC.BAT
En el Listado 1, la imagen contiene
06 r 1 root root 186 20071202 11:43 boot.ini
una sola partición; el sistema de archi-
vos es NTFS. El programa disktype, de 07 r 1 root root 0 20071202 11:59 CONFIG.SYS
los repositorios estándar de Debian, nos 08 drx 1 root root 4096 20071202 14:14 Documents and
amplía la información (Listado 2). La Settings
partición contiene, obviamente, el car-
09 drx 1 root root 24576 20071202 14:14 WINNT
gador de arranque de Windows.
Para acceder al sistema de archivos, el 10 (...)
administrador debe montarlo primero. 11 # cat /mnt/boot.ini
La partición comienza en el sector 63, 12 [boot loader]
algo normal en un disco duro. La excep-
13 timeout=30
ción es la última criatura de Microsoft,
Windows Vista, en la que el primer sec- 14 default=multi(0)disk(0)rdisk(0)partition(1)\ WINNT
tor es 2047. El comando mount así lo 15 [operating systems]
especifica: 16 multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Microsoft Windows 2000
Server” /fastdetect
# losetup -o $((63*512)) U
17 (...)
/dev/loop0 win_hd.dd

30 Número 42 WWW.LINUX- MAGAZINE.ES


Administración
Investigación de Sistemas Windows
Investigación PORTADA
de Spam •• PORTADA

find /mnt -type f -print0 |U


xargs -0 md5sum

Incluso podemos comparar al vuelo los


hashes con el material de referencia
existente. Sea como fuere, parece más
lógico crear un archivo que contenga los
hashes de todos los archivos (Figura 1).

Hashes para los Duplicados


Casi siempre, el investigador ya dispone
de los hashes para los archivos que
desea encontrar. Los expertos en análi-
sis forense compilan bases de datos con
los hashes de archivos conocidos para
facilitar la búsqueda de material crimi-
Figura 2: Herramientas estándar de Linux en acción. Cat, Strings y Grep buscan palabras nal. Si sólo queremos filtrar las DLLs de
clave en la partición de Windows y resaltan las coincidencias encontradas. Microsoft de un sistema que estamos
investigando, este método nos puede
Buscando con find estándar, el investigador puede optar por resultar útil.
Los investigadores criminales suelen usar el siguiente comando: Un simple comando grep hallará cual-
usar a menudo el comando find de quier correlación entre el sujeto de la
Linux con los argumentos -exec o las find /mnt -type f -print0U investigación y los objetivos de nuestra
opciones xargs xx para encontrar archi- | xargs -0 ls -al búsqueda. El siguiente comando, del
vos con contenidos ilícitos. Después de que hemos eliminado los nombres de
crear y montar la imagen, find /mnt Con los valores de hash se pueden archivo individuales, guarda un listado
-type f nos dará un listado detallado de hallar los archivos idénticos y sospe- de los hashes de los archivos existentes
los archivos. Debido a que este método chosos de un sistema. Podemos crear en un archivo llamado big.txt:
no nos devuelve los nombres de archivo un hash automáticamente con algo
con espacios en blanco o caracteres no como # find /mnt -type f -print0 | U
xargs -0 md5sum | awk U
Listado 4: Recuperación de Archivos ‘{print $1}’ | sort -g | U
01 # ntfsundelete -u i11137 /dev/loop0 uniq > big.txt

02 Inode Flags %age Date Size Filename


El comando awk coge los valores de
03 hash de la primera columna; sort -g los
ordena , y uniq elimina las entradas
04 11137 FN.. 0% 20030619 50688 msiinst.exe
duplicadas. Un investigador que haya
05 Undeleted ’msiinst.exe’ successfully. guardado los valores de hash deseados
06 file msiinst.exe en un archivo llamado small.txt puede
usar grep -f small.txt big.txt para encon-
07 msiinst.exe: MSDOS executable PE for MS Windows (DLL) (GUI) Intel
trar los duplicados y, de ese modo, cual-
80386 32bit
quier archivo coincidente.

Listado 5: Timestamps
01 # fls o 63 m ”C:” r win_hd.dd > /tmp/body

02 # mactime d b /tmp/body

03 Thu Jun 19 2003 13:05:04,16656,m..,/rwxrwxrwx,0,0,3151283,C:/WINNT/system32/cdmodem.dll

04 Thu Jun 19 2003 13:05:04,11792,m..,/rwxrwxrwx,0,0,112671283,C:/WINNT/ServicePackFiles/i386/partmgr.sys

05 Thu Jun 19 2003 13:05:04,7440,m..,/rwxrwxrwx,0,0,80931283,C:/WINNT/ServicePackFiles/i386/bhp.dll

06 Thu Jun 19 2003 13:05:04,1011764,m..,/rwxrwxrwx,0,0,71021283,C:/WINNT/system32/mfc42u.dll

07 Thu Jun 19 2003 13:05:04,65593,m..,/rwxrwxrwx,0,0,65521283,C:/Programme/Outlook Express/csapi3t1.dll

08 Thu Jun 19 2003 13:05:04,122640,m..,/rwxrwxrwx,0,0,8581283,C:/WINNT/system32/idq.dll

09 Thu Jun 19 2003 13:05:04,166672,m..,/rwxrwxrwx,0,0,71781283,C:/WINNT/system32/qcap.dll

10 Thu Jun 19 2003 13:05:04,65593,m..,/rwxrwxrwx,0,0,115551283,C:/WINNT/Sersystem32/i386/csapi3t1.dll

WWW.LINUX- MAGAZINE.ES Número 42 31


PORTADA • Investigación de Sistemas Windows

Búsqueda de Palabras Clave • El archivo swap o el archivo de para instalarlo. Sleuth Kit contiene prin-
Los investigadores forenses buscan hibernación cipalmente tres herramientas que
palabras clave en los sistemas confisca- • áreas del disco no asignadas amplían la funcionalidad de ls; sus
dos. • datos inconsistentes de los archivos nombres nos dan una pista de para qué
Siempre es buena idea crear un • archivos eliminados sirven:
archivo de texto con las palabras de la Para hallar las palabras clave almace- • fls lista archivos a nivel de sistema
búsqueda, por ejemplo, keywords.txt. nadas en el texto Unicode de 16 bits • ils lista archivos en base a inodos
Podríamos tener en ese archivo las pala- que utilizan los sistemas operativos • dls restaura archivos eliminados
bras password y secreto. La línea de Windows NT, tenemos que indicar al Además de estos archivos hay un par
comandos: comando strings si queremos realizar de parientes cercanos de las herramien-
una búsqueda little o big endian [5]. tas Unix estándar cat (icat) y find
# cat win_hd.dd | strings | U Los argumentos necesarios son -eb o (ifind), o herramientas para estadísti-
egrep -i —color -f keywords.txt -el. El Listado 4 usa Ntfsundelete como cas como istat. Sleuth Kit comienza
ejemplo para la restauración de archi- creando un listado con todos los archi-
busca las palabras password y secreto en vos a partir de la asignación de vos con marca de tiempo (Listado 5).
toda la imagen de Windows y las resalta inodos. Podemos usar mactime -b /tmp/body
en color rojo en la salida, tal y como se para generar una vista con una línea
puede apreciar en la Figura 2. Este Sleuth Kit temporal de modo que queden agrupa-
método es particularmente interesante Sleuth Kit [6] es una de las herramientas dos convenientemente. Para decirle a la
si se extiende la búsqueda más allá del líder en análisis forense. Está disponible herramienta que busque las palabras
sistema hacia otras áreas del disco duro, a través del repositorio estándar de clave en los archivos eliminados de una
como: Debian, por lo que podemos usar apt partición NTFS:

Listado 6: Historial de Navegación


01 # mount -o ro,noatime,noexec /dev/loop0 /mnt
02 # find /mnt -iname ”index.dat” -exec pasco ’{}’ ’;’
03 TYPE URL MODIFIED TIME ACCESS TIME FILENAME DIRECTORY HTTP HEADERS
04 URL http://www.google.de/favicon.ico 06/07/2006 21:35:34 12/02/2007
05 12:14:28 favicon[1].ico NG0RCTFI HTTP/1.1 200 OK ContentType: image/xicon
06 ContentLength: 1406 ~U:administrator
07 REDR http://msn.ivwbox.de/cgibin/ivw/CP/MSN01000000;?r=
08 12/02/2007 12:11:32 12/02/2007 12:11:32
09 URL Visited: Administrator@http://www.google.es 12/02/2007 12:14:28
10 URL Visited: Administrator@http://www.msn.de 12/02/2007 14:33:54 12/02/2007
11 14:33:54
12 # find /mnt -iname ”history.dat” -exec mork.pl ’{}’ ’;’
13 1202727704 1 http://www.linux4afrika.de/index.php?id=155&L=1
14 1202727670 1 http://www.linux4afrika.de/index.php?id=154&L=1
15 1202727641 1 http://www.linux4afrika.de/index.php?id=60&L=1
16 1202727641 2 http://www.linux4afrika.de/
17 1202727555 1 http://ntv.de/916916.html
18 1202726960 1 http://ntv.de/916917.html
19 1202726892 1 http://ntv.de/916908.html
20 1202726827 3 http://ntv.de/
21 1202726394 2 http://www.linuxmagazine.es/
22 1202726204 2 http://www.google.es/
23 # find /mnt -iname ”history.dat” -exec mork.pl ’{}’ ’;’ | awk ’{print strftime(“%F,%R”,$1),$2,$3}’
24 20080211 11:40 1 http://www.linux-magazine.es/issue/40/003-003_EditorialLM40.pdf
25 20080211 11:39 2 http://www.linuxmagazine.com/
26 20080211 11:36 2 http://www.google.com/
27 (...)

32 Número 42 WWW.LINUX- MAGAZINE.ES


Investigación Windows • PORTADA

pera el archivo msiinst.exe del inodo


11137.
Los archivos existentes en el disco
duro podrían facilitarnos mucha infor-
mación acerca del usuario. Tanto Inter-
net Explorer como Firefox almacenan
su historial en el sistema de archivos.
El investigador necesita instalar dos
programas para analizar la informa-
ción:
• Pasco[10], para Internet Explorer
• Mork.pl[11], para Mozilla Firefox
El Listado 6 presenta una secuencia de
análisis típica: Internet Explorer alma-
cena la información sobre cada perfil
Figura 3: Ntfsundelete muestra los archivos eliminados pero recuperables. La primera en archivos de nombre index.dat. Pode-
columna contiene el número de inodo necesario para restaurar el archivo en el sistema de mos obtener la lista de páginas accedi-
archivos de la imagen. das desde el navegador ejecutando un
comando find
# dls /dev/loop0 > unallocated este problema; rellenan los bytes libres
# cat unallocated | strings | U con inofensivos ceros cortesía de /dev/ Destape de Mozilla
egrep -i —color -f keywords.txt zero. Firefox guarda sus datos en history.dat.
La primera columna contiene la infor-
El comando dls convierte el espacio sin Restaurar Archivos mación sobre fecha y hora en formato
asignar en un archivo, que cat puede Eliminados Unix. El tercer comando del Listado 6
enviar a strings y egrep. ntfsundelete, del paquete ntfsprogs, nos convierte esta información a un formato
permite restaurar archivos eliminados legible por el ser humano. Dumphive
Tierra de Nadie de particiones NTFS. Antes de usarlo [12] ofrece un método para facilitar la
File Slack [7] hace referencia a los hay que liberar el dispositivo /dev/ lectura del registro de Windows (Figura
datos del espacio que no está siendo loop0, normalmente mediante el 4). El comando dumphive
usado en un sistema de archivos. Este comando umount /mnt. Sin especificar /mnt/WINNT/system32/config/system
efecto ocurre cuando guardamos, por ninguna opción adicional, ntfsundelete system.txt guarda el registro en un
ejemplo, un archivo de 2KB en un sis- /dev/loop0 sólo muestra un listado con archivo de texto aparte, con el que el
tema de archivos con un tamaño de los archivos recuperables (Figura 3). En investigador puede trabajar con las
bloque de 4KB. Todos los sistemas el ejemplo que aquí se muestra se recu- herramientas de texto de Unix.
Windows populares rellenan el espa-
cio libre con datos aleatorios prove-
nientes de la RAM hasta completar el
bloque.
Herramientas como dls, del Sleuth
Kit, o bmap [8], nos permiten recrear
los datos que el usuario a veces ni
siquiera llegó a almacenar consciente-
mente en su disco. Ciertos investiga-
dores han usado esta técnica para
reconstruir emails incriminatorios.
dls con la opción -s es particular-
mente útil para este propósito:

# dls s /dev/loop0 > fileslack


# cat fileslack | U
strings | egrep U
-i —color -f keywords.txt

Con esto, el experto forense obtiene la


capacidad de búsqueda de palabras
clave en el espacio desperdiciado. De Figura 4: Dumphive convierte el Registro de Windows a texto plano. Luego podremos usar her-
acuerdo con un estudio [9], los sistemas ramientas de búsqueda como grep para reconstruir las configuraciones críticas, como por
Linux modernos no se ven afectados por ejemplo, el hass del password o los datos de IP.

WWW.LINUX- MAGAZINE.ES Número 42 33


PORTADA • Investigación de Sistemas Windows

Contraseñas de Windows nistrador de Linux debe ejecutar dum- de aprendizaje de los novatos de Linux
Acceder al sistema ya resulta interesante phive para comprobar si el Registro con- probablemente sea más empinada con
por sí solo, pero a veces descubrir las tiene una entrada para las herramientas de software libre que
contraseñas de los usuarios abre nuevos HKEY_LOCAL_MACHINE/SYSTEM/ con los productos comerciales de mayor
vectores para la investigación, puesto CurrentControl-Set/Control/Lsa con un coste. El ganador indiscutible en térmi-
que muchos usuarios no se preocupan valor de 1. De ser así, la única opción nos de usabilidad es el Live CD de Opht-
de cambiar sus contraseñas para los dis- sería adquirir un DVD de doble capa de crack, completamente automatizado,
tintos sitios web y servicios que utilizan. 8.5 GB con rainbow tables comerciales que elimina la necesidad de introducir
Es más, las contraseñas permiten al para LM o NT. comandos y muestra las contraseñas
investigador forense ingresar en un sis- Al igual que el resto de herramientas locales de Windows poco después de
tema virtual de VMware e investigar a las que hacemos referencia en este arrancar.
sobre los distintos archivos y registros. artículo, Ophcrack está incluida en los Cuando lo probamos con un sistema
Aparte de la fuerza bruta y herra- repositorios de Debian. La utilidad nece- XP (SP2), el CD tardó sólo 280 segundos
mientas como John the Ripper, que usa sita las rainbow tables y los hashes de la en obtener las credenciales de las cuen-
diccionarios o rainbow tables, el admi- máquina Windows. Después de insta- tas de 5 usuarios (entre las que había
nistrador de Linux puede decidir usar larlo, el investigador puede usar la GUI algunas de hasta 14 caracteres; ver la
otras herramientas como Bkhive, Sam- para hacer doble clic sobre la contra- Figura 5). La versión live de Linux del
dump2 o Ophcrack [13]. seña que quiere descifrar (Figura 5). CD incluye sólo las tablas para contrase-
La extraccíón de contaseñas de un ñas alfanuméricas sin caracteres no
archivo SAM (utilizados en sistemas Controladores de Dominio estándar. Para ampliarlas habrá que
operativos vasados en Windows NT) no Hace falta otro método diferente con los invertir en las Rainbow Tables comercia-
es dificil, especialmente si combinamos sistemas Windows que ingresan en con- les. ■
varias herramientas. Por ejemplo, John troladores de dominio; en este caso, las
the Ripper detecta automáticamente el credenciales no se almacenan en el RECURSOS
archivo SAM de Windows cuando se lo cliente de forma local. De todas formas, [1] Guidance Software: http://www.
pasamos. La forma de guardar las con- muchas veces basta con ejecutar una guidancesoftware.com
traseñas de Windows nos resulta espe- herramienta de monitorización de trá-
[2] X-Ways: http://www.xways.net/
cialmente útil: Aunque las credenciales fico de red para capturar el intercambio corporate/indexm.html
para Windows pueden llegar hasta los de los datos de acceso, identificar los
[3] Ewfacquire: https://www.
14 caracteres, el sistema las divide en paquetes de datos pertinentes, guardar-
uitwisselplatform.nl/projects/libewf
dos cadenas de 7 caracteres. Una impor- los en un archivo y pasárselos a Oph-
[4] Helix: http://www.efense.com/helix
tante contribución por parte del fabri- crack. Está claro que es más complejo y
cante, que hace que nuestro trabajo a la que necesitamos acceso a la red en [5] Endianness: http://en.wikipedia.org/
wiki/Endianness
hora de averiguar las contraseñas sea cuestión.
mucho más sencillo, puesto que no [6] Sleuth Kit: http://sleuthkit.org
harán falta grandes cantidades de Comparativamente Simple [7] File Slack en la Wikipedia: http://en.
números para hacerlo. Con añadir un par de paquetes extra, el wikipedia.org/wiki/FileSlack
En cuanto a Windows Vista, Microsoft mundo Windows se abre para cualquier [8] bmap: http://www.
ha tapado este agujero reemplazando investigador con una máquina Linux. packetstormsecurity.org/linux/
los hashes de Lanmanager por hashes Para más de lo mismo, podemos echar security/bmap1.0.17.tar.gz
NT. Los administradores de XP pueden un ojo a las herramientas de análisis [9] Análisis del File Slack con Linux:
hacerlo también ellos mismos; El admi- forense proporcionadas por Foundstone http://www.woerter.at/dud/stuff/
[14]. Con ellas, el fileslack.pdf
detective puede res- [10] Descarga de Pasco: http://
taurar cookies, entra- downloads.sourceforge.net/odessa/
das de la papelera de pasco_20040505_1.tar.
reciclaje de Windows gz?modtime=1083715200&big_mirr
y otras muchas or=0
cosas. [11] Mork.pl: http://www.jwz.org/hacks/
Los usuarios expe- mork.pl
rimentados de Linux [12] Dumphive: http://v4.guadalinex.org/
se encontrarán como guadalinextoro/pool/main/d/
pez en el agua en el dumphive/dumphive_0.0.31_i386.
deb
intérprete de coman-
dos, mientras que [13] Ophcrack y Live CD de Ophcrack:
otros preferirán evi- http://ophcrack.sourceforge.net
tar la compleja sin- [14] Foundstone Forensic Tools: http://
Figura 5: Con un doble click se crackea la contraseña de un usuario taxis de la línea de www.foundstone.com/us/
de Windows. También hay disponible un Live CD automatizado. comandos. La curva resourcesfreetools.asp

34 Número 42 WWW.LINUX- MAGAZINE.ES