siguiendo el rastro a dispositivos usb en sistemas windows bugcon[1]

42
Siguiendo el rastro a dispositivos USB en sistemas Windows Murena Myrope Lavín Martínez CCNA, CCSA, Security +, CHFI, GCFA, CISSP Agosto 2009

Upload: yovanni-madrid

Post on 03-Jul-2015

679 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Siguiendo el rastro a dispositivos USB

en sistemas Windows

Murena Myrope Lavín Martínez

CCNA, CCSA, Security +, CHFI, GCFA, CISSP

Agosto 2009

Page 2: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Agenda

• Introducción

• Perfil único de dispositivos USB

• SetupApi.log

• Llaves de registro

• Registros de tipo “Shellbags”

• Archivos de tipo “shortcut”

• Dispositivos U3

• Copia de archivos

• Algo sobre sistemas Linux

Page 3: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

1892:«"Interesante aunque elemental," dijo [Sherlock Holmes] mientras regresaba a su rincón favorito, donde se hallaba el sofá. "Ciertamente hay dos o tres indicios en el bastón. Nos proveen de la base para varias deducciones."

Los Sherlock Holmes modernos

2009:«"Interesante, en la imagen del disco duro del sospechoso; realizando una búsqueda de las palabras clave del caso, fue posible recuperar de los archivos borrados una conversación de ‘messenger’ que nos provee de la base para varias deducciones.”

Page 4: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

‘Serie metódica de técnicas y procedimientos

para recopilar evidencia de equipos

computacionales y dispositivos de

almacenamiento digitales que puede ser

presentada en una corte de justicia en un

formato coherente y significativo’

¿Qué es el análisis forense computacional?

Page 5: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Introducción

• ¿Es posible saber si un cierto

dispositivo USB estuvo

conectado a un equipo?

• ¿Es posible conocer que

archivos fueron copiados desde

o hacia este dispositivo?

Page 6: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Componentes de una memoria USB

1. Conector USB

2. Dispositivo de control de

almacenamiento

masivo USB (consta de

un microprocesador

RISC y un pequeño

número de circuitos de

memoria RAM y ROM)

3. Puntos de Prueba

4. Circuito de Memoria

flash

5. Oscilador de cristal

6. LED

7. Interruptor de seguridad

contra escrituras

8. Espacio disponible para

un segundo circuito de

memoria flash

Page 7: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Perfil Único de dispositivos USB

• Los sistemas Windows construyen un perfil único que

permite identificar individualmente a cada

dispositivo USB.

– Es persistente incluso si el equipo es apagado

– Elimina la necesidad de reinstalar el dispositivo

cada vez que se conecta al sistema

– Permite crear perfiles para dispositivos que

pertenecen al mismo fabricante

• De acuerdo a la especificación USB, este tipo de

dispositivos debe almacenar un número de serie

(que sea único) en el descriptor del dispositivo

• Windows utiliza ese número de serie junto con la información del producto y del fabricante para

crear el identificador único del dispositivo USB.

Page 8: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Insertando un USB

1. El Plug and Play (PnP) Manager recibe la

notificación del evento

2. Reconoce el dispositivo y lo instala utilizando el

driver genérico USBSTOR.SYS

3. El Windows Mount Manager (MountMgr.sys)

accede al dispositivo para obtener su información

única de identificación

4. El Mount Manager crea las llaves de registro

apropiadas y le asigna una letra de drive (E:, F:, Z:,

etc.) con el que podrá ser accedido

Page 9: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Primera pista: SetupApi.log

• Registro de la búsqueda e instalación del driver apropiado para controlar el dispositivo USB

• Localizado en “C:\Windows”

• Nos proporciona la fecha y hora en que el dispositivo

fue conectado por primera vez al sistema

Page 10: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

SetupApi.log

• La herramienta SAEX permite agrupar los eventos del

archivo “SetupApi.log” y ordenarlos en un archivo

de Excel

– www.argen.og

Page 11: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Creando las llaves de registro

• “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\

Enum\USBSTOR\”

– Dentro de esta llave se genera una subllave

utilizando el “device ClassID” del dispositivo:

– Dentro de esta llave se genera una instancia

única que utiliza el número de serie del

dispositivo:

– Si el dispositivo no cuenta con un número de

serie, el sistema operativo utiliza un algoritmo

para generar este valor

Page 12: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]
Page 13: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

UVCView

• La información descriptiva de los dispositivos USB NO se

encuentra localizada en el área de memoria. Una imagen forense

(copia bit a bit) del dispositivo USB NO incluirá la información del

descriptor del dispositivo

• UVCView (USB Video Class descriptor viewer) es parte del

Windows Driver Kit (WDK) y permite ver los descriptores de

cualquier dispositivo USB que se encuentre conectado al sistema.

Page 14: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

ParentIdPrefix

• DWORD que permite relacionar el punto de montaje

(drive H:) con el dispositivo USB que estuvo montado

por última vez allí

• Cada que sea asignado un punto de montaje diferente (H:, F:, Z:, etc.) a un dispositivo USB se crea

una nueva instancia que contiene un

“ParentIDPrefix” diferente

Page 15: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Asociando al punto de montaje

• HKLM/System/Mounted Devices

• La DWORD de cada drive tiene un formato similar al

siguiente:

– La parte negra representa el valor del

ParentIDPrefix del último dispositivo USB que

estuvo montado en dicha unidad

Page 16: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Determinando la última vez que el dispositivo USB estuvo conectado al sistema

• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\

Control\DeviceClasses

• Subllaves genéricas de clase para dispositivos de discos y volúmenes respectivamente

– {53f56307-b6bf-11d0-94f2-00a0c91efb8b}

– {53f5630d-b6bf-11d0-94f2-00a0c91efb8b}

• Las subllaves de “discos” tienen el siguiente formato:

– La parte en negritas corresponde al número de serie del

dispositivo

• Las subllaves de “Volumen” tienen el siguiente

formato:

– La parte en negritas corresponde al “ParentIDPrefix” del

dispositivo

Page 17: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Determinando la última vez que el dispositivo USB estuvo conectado al sistema

• Búsqueda por número de serie en

“Disk GUI”

Page 18: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Determinando la última vez que el dispositivo USB estuvo conectado al sistema

• Búsqueda por “ParentIDPrefix” en

“Volume GUI”

Page 19: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Determinando la última vez que el dispositivo USB estuvo conectado al sistema

• Obtener la fecha de última escritura de las llaves

correspondientes

– En “regedit” colocarse en la llave

– Archivo > Exportar

– Guardar como > Archivo de texto (*.txt)

– Abrir el archivo

Page 20: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Determinando la última vez que el dispositivo USB estuvo conectado al sistema

• También es posible obtener la fecha de

última escritura de las llaves utilizando la

herramienta “Regscanner” de Nirsoft

– http://www.nirsoft.net/utils/regscanner.html

– La fecha de última escritura puede ser utilizada en el análisis de línea de tiempo de las

actividades en el sistema

Page 21: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Herramientas automatizadas

• USBDeview

– http://www.nirsoft.net/utils/usb_devices_v

iew.html

– Proporciona información sobre los dispositivos

USB que han estado conectados

– Incluyendo la fecha que fue desconectado por

última vez

Page 22: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Herramientas automatizadas

• Usbhistory.exe

– http://nabiy.sdf1.org/index.php?work=us

bHistory

– Proporciona información de la última vez que se

conecto un dispositivo USB utilizando las llaves de

disco y de volumen

Page 23: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Registros de tipo “shellbags”

• Windows conserva los datos de “tamaño del display”

de las carpetas en ciertos registros

• Esta información NO se limpia cuando las carpetas asociadas son borradas

• Aún mejor, también mantiene los valores para carpetas

que residan en dispositivos de almacenamiento

externo (por ejemplo USB’s)

• Esto es útil para conocer la estructura de carpetas de

algún USB que estuvo conectado al sistema

• La herramienta “Registry Viewer” de Access Data permite decodificar las llaves para observar la

información en formato legible– http://www.accessdata.com/forensictoolkit.html

Page 24: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Registros de tipo “shellbags”

HKCU\Software\Microsoft\Windows\Shell\BagMRU

HKCU\Software\Microsoft\Windows\Shell\Bags

HKCU\Software\Microsoft\Windows\ShellNoRoam\BagMRU

HKCU\Software\Microsoft\Windows\ShellNoRoam\Bags

• Otras llaves donde se encuentra información similar a la de

“Shellbags” son:

HKCU\Software\Microsoft\Windows\Currentversion\Explorer\Str

eamMRU

HKCU\Software\Microsoft\Windows\Currentversion\Explorer\Str

eams

Page 25: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Registros de tipo “shellbags”

Page 26: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

ShellbagsView

• Herramienta que despliega la lista de las

características de las carpetas guardadas en los

registros de tipo “shellbags” (fecha de modificación, posiciones de la ventana, etc.)

– http://nirsoft.net/utils/shell_bags_view.html

Page 27: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Registros de tipo “shellbags”

• Sólo se conservan entradas de 28 StreamMRUs, 200

bags de carpetas locales y 200 bags de carpetas de

red

• Se pueden revisar las copias históricas del archivo “NTUSER.DAT” (que contiene los registros “shellbags”)

de los diferentes puntos de restauración de un

sistema

Page 28: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Archivos de tipo “shortcut” (*.lnk)

• Los archivos de tipo “shortcut” pueden apuntar a archivos,

imágenes o documentos sobre los que estemos

investigando

• Si la ruta del archivo apunta a una letra de drive que fue

utilizada por un dispositivo móvil es posible desde la llave

de “MountDevices”, utilizando el “ParentIDPrefix” y

asociándolo con la fecha de última escritura buscar el

último dispositivo USB que estuvo montado en ese drive

Page 29: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Archivos de tipo “shortcut” (*.lnk)

• Metadata de un archivo de tipo “shortcut” que

muestra sus tiempos MAC y el hash del archivo

Page 30: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Archivos de tipo “shortcut” (*.lnk)

• Los archivos de tipo “shortcut” también almacenan

el número de serie del volumen de la unidad de

almacenamiento externo (VSN)

• El VSN es generado por un algoritmo que toma en cuenta la fecha cuando fue formateada la partición

y agregada al “boot sector” (puede cambiar)

• El valor de VSN NO aparece en el registro de

Windows

• Si se cuenta físicamente con el dispositivo USB es

posible comparar el valor de VSN del archivo de

“shortcut” contra el del dispositivo

Page 31: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Archivos de tipo “shortcut” (*.lnk)

Page 32: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Dispositivos U3

• Conjunto de herramientas de software que permiten

la ejecución automática de aplicaciones

(navegadores, firewalls personales, antivirus, etc.)

desde una memoria USB (USB smart drive)

• Son reconocidos por el sistema operativo como dos

unidades de disco:

1. Unidad virtual de CD de sólo lectura, desde donde se

autoejecuta el U3 Launchpad; partición de tipo CDFS

(CD file system)

2. Unidad de disco flash estándar (FAT), que posee un

directorio oculto con las aplicaciones instaladas

• La unidad virtual de CD generará una llave de

registro dentro de:– HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\US

BSTOR\

Page 33: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Dispositivos U3

• Los dispositivos USB de tipo U3 corren programas y crean

registros al ser montados en un sistema

• El análisis de la línea de tiempo de la imagen de un sistema

mostrará tiempos de creación/modificación de múltiples

archivos relacionados con el dispositivo U3

• Para comprender lo que sucede durante el proceso de

inserción se puede utilizar la herramienta “Filemon”

– http://technet.microsoft.com/en-

us/sysinternals/bb896642.aspx

• Esta herramienta monitorea y despliega lo que sucede en el

sistema de archivos en tiempo real

Page 34: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Dispositivos U3

• El archivo “U3launcher.log” localizado bajo el

directorio del usuario en C:\Documents and

Settings\<username>\Local Settings\Temp\

• Contiene información relativa a fechas y números de serie del dispositivo USB

Page 35: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Copia de archivos a un disco duro externo

• En general Windows NO mantiene un registro de los

archivos que son copiados

– “ en la fecha X, el usuario Z copio el archivo Y de

la ruta G a la ruta H”

• Si el investigador cuenta con imágenes del disco

duro del equipo investigado y del dispositivo de

almacenamiento externo es posible tener una idea

de la dirección de la copia si ésta ocurrió

• Si se encuentran documentos con el mismo nombre

en ambos lados será necesario comparar los

tiempos MAC de ambos documentos, el tamaño, la

metadata y la suma de MD5 o hash para poder establecer si estos documentos tiene relación entre

sí…

Page 36: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Análisis de línea de tiempo

Page 37: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Algo sobre dispositivos USB en sistemas linux

• /var/log/messages

– Identificar el momento en que el dispositivo se

conecto y desconecto el dispositivo

– Ubicación física en la que fue detectado

– Número de sectores, tamaño en MB

– Velocidad de transmisión

– Protección contra escritura

– Marca

Page 38: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Algo sobre dispositivos USB en sistemas linux

• /var/log/syslog

– Misma información que /var/log/messages

– Número de serie del dispositivo

Page 39: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Algo sobre dispositivos USB en sistemas linux

• /var/log/Kern.log

Page 40: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Algo sobre dispositivos USB en sistemas linux

• “lsusb –v” command

– Utilería que despliega información sobre

dispositivos usb conectados al sistema

Page 41: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Referencias

• http://www.forensicswiki.org/index.php?title=USB_History_Viewing

• http://sansforensics.wordpress.com/2008/10/31/shellbags-

registry-forensics/

• http://nabiy.sdf1.org/index.php?work=usbHistory

• http://windowsir.blogspot.com/2008/07/copying-files.html

• http://windowsir.blogspot.com/2007/04/from-lab-mapping-usb-

devices-via-lnk.html

• http://www.i2s-

lab.com/Papers/The_Windows_Shortcut_File_Format.pdf

• http://pdfserve.informaworld.com/489600__779634181.pdf

Page 42: Siguiendo El Rastro a Dispositivos Usb en Sistemas Windows BugCON[1]

Preguntas y respuestas