DFIR - HUNTING

.

KILL CHAIN, DIAMOND, RESILIENCE, DETECT...

Normas, métodos, buenas prácticas.

SONDAS, AMENAZAS, INCIDENTES, ANALISIS

Productos, configuraciones y análisis.

CYBERWARFARE, GOBIERNOS, APT AVANZADO

Los mejores casos en Conexión Inversa.

CIBERGUERRA, MALWARE

Te contamos como se diseñan y como se aplican.

ATAQUES EN RED, INTRUSIONES, MALWARE Y APTs

Todo lo necesario para minimizar el impacto.

viernes, 26 de diciembre de 2008

CD To live

Hola a todos,

Existen muchas versiones 'live cd' basadas para el analisis forense, entre ellas quisiera destacar dos distribuciones que han sido y serán de gran utilidad en la investigación forense, por lo menos para mi. La primera es HELIX3 v1.7.

HELIX

Esta basada en una distribución Linux Ubuntu que ha sido especialmente modificada para no afectar en manera alguna al ordenador a analizar. Desde luego también funciona en Windows.

Una herramienta muy versatil, comoda y facil de usar; en resumen, imprescincible para cualquiera que desee trabajar en este campo. Poco tengo que decir, todo o casi todo es bueno.

En la siguiente imágen teneís un listado de las utilidades que dispone:


Utilidades

Otras de las imágenes más sugerentes:


Informe de resultados


Buscador de imágenes


Más utilidades

SIFT

La segunda que más aprecio es SIFT de SANS, por su capacidad de aprendizaje que tiene la herramienta, ademas de estar supervisada por el famoso experto rob lee

La prestigiosa firma SANS ha liberado la versión 1.2 de su aplicación basada en VMWARE y llamada SANS SIFT Worktation.

SIFT es un sistema configurado con todos los instrumentos necesarios para realizar un examen forense. Es compatible con Expert Witness Format (E01), Advanced Forensic Format (AFF), y clonaje de discos raw (dd).

La aplicación es utilizada en los cursos propios de SANS para el análisis forense, la investigación, y respuesta ante incidentes. Entre otras cosas enseñan a analistas a examinar datos de sistema de ficheros y estructuras de metadatos para aumentar su entendimiento de los sistemas FAT/NTFS/UNIX/LINUX.

Los cambios en la versión 1.2 son:

PTK 1.02
Afflib-3.3.4
Aimage-3.2.0
autopsy 2.20
Sleuthkit-3.0: Compilado con HFS
Grokevt-0.4.1: Es una colección de Scripts construidas para leer el visor de eventos de Windows NT/2K/XP/2K3
Libpst-0.5.3 PST: Libreria sobre Linux
Reglookup-0.9.0: RegLookup es una pequeña utilidad de línea de mando para leer el registro basado en Windows
Tableau-parm-0.1.0: Ees una pequeña utilidad de línea de mando diseñada para actuar recíprocamente con bloqueo de ficheros
Rapier_0.1alpha: Nuevo 'Data carver'

Utilidades en PERL

regripper.pl --> Utilidad de extracción de información del registro
deleted.pl ----> Busqueda de claves eliminadas
regtime.pl ----> Timestamp del registro

También el Software Incluye: (/usr/local/src)

ssdeep & md5deep (Hashing Tools)
Foremost/Scalpel (File Carving)
WireShark (Network Forensics)
HexEditor
Vinetto (thumbs.db examination)
Pasco (IE Web History examination)
Rifiuti (Recycle Bin examination)
Volatility Framework (Memory Analysis)
DFLabs PTK (GUI Front-End for Sleuthkit)
Autopsy (GUI Front-End for Sleuthkit)
The Sleuth Kit (File system Analysis Tools)

martes, 23 de diciembre de 2008

Perdidos en el espacio

En anteriores post hemos visto como obtener información sobre la memoria con diversas utilidades, todas ellas muy practicas para las evidencias.

Cuando nos encontramos con un incidente en un equipo, nos queda la cuestión de decidir sobre que hacer con el, ¿lo apagamos?, ¿lo dejamos encendido?. Ante tales casos hay que intentar obtener la mayor prueba de evidencias.

Si lo dejamos encendido tenemos que obtener datos del sistema y de la memoria. Si lo tenemos que apagar, lo mejor ( o así opino yo) es 'tirar del enchufe' de alimentación de corriente, dado que si apagamos de forma ordenada perderemos evidencias de la memoria física y la memoria de paginación.

Hoy vamos a ver como obtener datos de la memoria de paginación o lo que es lo mismo del fichero:

PAGEFILE.SYS
NO ME PIRATEES ES PROPIEDAD INTELECTUAL
El archivo de paginación (Pagefile.sys) es un archivo oculto situado en el disco duro del equipo que Windows utiliza como si fuera memoria RAM. El archivo de paginación y la memoria física conforman la memoria virtual. De manera predeterminada, Windows almacena el archivo de paginación en la partición de inicio, que es la partición que contiene el sistema operativo. El tamaño predeterminado del archivo de paginación es 1,5 veces la cantidad total de memoria RAM.

Bien, ante esta situación es predecible que se pueda obtener datos de la memoria RAM sobre el fichero. Para ello nos ponemos manos a la obra.

Primero montamos el disco 'clonado' (en nuestro ejemplo: windows2003.img) con la utilidad que más os guste. Bien para Windows con 'Mount Image Pro' o 'filedisk' , o en Linux con 'loop', por ejemplo:

mount -o loop windows2003.img loop/


Ejemplo de montaje en Linux

Una vez montado el disco virtual, copio el fichero 'pagefile.sys' a nuestro disco 'C:' y a continuación extraigo del fichero 'pagefile.sys' los datos de texto a un formato más humano, para ello utilizo el siguiente comando:

strings pagefile.sys > pagefile.txt

NOTA: En windows, utilizamos el comando Strings de sysinternals y disponible desde aquí


Una vez que obtengo el fichero 'pagefile.txt' voy a realizar la siguiente consulta a este nuevo fichero, por ejemplo voy a consultar por la palabra '.DOC'

Para ello escribo (en Linux):

cat pagefile.txt | grep ".doc" y nos mostrara en pantalla las rutas de los ficheros DOC

Si esto mismo lo hago en Windows se utilizará el comando 'findstr' (disponible en todas sus versiones) y sería de la siguiente manera:

findstr ".xls" pagefile.txt


Ejemplo de busqueda de ficheros XLS

Vamos a ver otros ejemplos de forma gráfica, los comandos están al principio de cada ventana:

Buscando contraseñas:


Buscando ficheros con datos de navegación


Buscando conexiones al equipo:


Mirando la configuración del equipo:


Conclusiones:

El fichero de paginación es un arma muy potente para poder buscar información que a simple vista no se encuentra, ademas de proporcionar información muy valiosa en el momento que se produjo la incidencia en el equipo.

NOTA: El fichero 'windows2003.img' es un fichero de imágen descargado del reto forense organizado en 2006 por RedIris y UNAM-CERT de México

lunes, 22 de diciembre de 2008

La otra realidad

Muchos mitos han caído, entre ellos el famoso MD5. MD5 es uno de los algoritmos criptográficos diseñados por el profesor Ronald Rivest del MIT. Fue desarrollado en 1991 como reemplazo del algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad.

A pesar de su amplia difusión actual, la sucesión de problemas de seguridad detectados desde que, en 1996, Hans Dobbertin anunciase una colisión de hash plantea una serie de dudas acerca de su uso futuro.

una colisión de hash es una situación que se produce cuando dos entradas distintas a una función de hash producen la misma salida.

El tema de las colisiones en funciones hash (y en concreto MD5) no es ni mucho menos nuevo y tiene una importante repercusión en el mundo de la criptografía, dado que dichas funciones son usadas en firmas digitales.

Deciros que en el sistema judicial (por lo menos en España) es ampliamente reconocido el uso de la integridad para las evidencias utilizando MD5 y quizás la cuestión es plantear si debemos pasar a otro sistema mas robusto de huella (Hash).

Vamos a ver unos ejemplos de la colisión de Hash.

En el directorio nos encontramos con dos ficheros de extensión HTML (t1 y t2), si nos fijamos bien en los tamaños vemos que son iguales, pero si vemos el contenido comprobamos que es distinto.


Tamaños identicos


Contenido de t1.html


Contenido de t2.html

En este caso es normal pensar que su Hash es distinto dado que es diferente su contenido.

Vamos a comprobarlo ejecutando md5sum (es igual en Linux que Windows)



Comprobamos que el Hash es identico, cosa que no es verdad. ¿que ha ocurrido? muy facil, estos ficheros han sido sometidos a un proceso de colisiones Hash. Por lo tanto la prueba de la evidencia queda comprometida y si yo fuera jurista diria que la prueba es invalida.

Por lo tanto y volviendo al planteamiento inicial yo diria ¿debemos de seguir admitiendo la verificación de la integridad con MD5?

Existe un ejemplo muy bueno escrito en C# para Windows por Eduardo Díaz en CodeProject

El artículo describe la realización de un programa en C# para demostrar cómo se pueden explotar las colisiones encontradas en MD5 para crear dos archivos con el mismo valor de hash...

Se incluyen código fuente y demo compilada.

Otras referencias:

lunes, 15 de diciembre de 2008

Busqueda de ficheros y procesos con POWERSHELL

No lo negare. LLevo con retraso el estudio de PowerShell, me imagino que conforme se acercan las navidades le podré dedicar más tiempo, pero la verdad es que se me atraganta un poco el volver a estudiar un pseudolenguaje del tipo Bash para Windows.

No obstante en estos días me ha surgido un problemilla en servidor W2008 en el que he tenido que buscar ficheros y ver qué archivos han cambiado.
Si conoces las fechas del incidente y con la ayuda de la siguiente secuencia de comandos de PowerShell, podemos disponer de un listado de estos ficheros.

El siguiente Script se puede ejecutar en un sistema remoto y te pedirá la búsqueda de fechas (desde y hasta) y guardar los resultados en un fichero.

Aquí está la secuencia de comandos.

#Busca_ficheros.ps1

$1 = (read-Host "Fecha de inicio - dd/mm/aaaa")
$2 = (read-Host "Fecha Fin - dd/mm/aaaa")
$path = (Read-Host "Entra la ruta de destino e.j \\server1\c$\windows\")
$resultados = (Read-Host "Donde quieres guardar los resultados? e.j c:\temp\")
$inicio = [datetime]$1
$fin = [datetime] $2
$periodo = {$_.lastwritetime -gt $inicio -and $_.lastwritetime -lt $fin}
gci $path -Recurse | where {!$_.psiscontainer -and (.$periodo)} | Out-File -Width 255 $resultados


El siguiente script recupera los procesos de un host remoto.

Get-WmiObject win32_process -192.168.1.1 . | Select-Object CSName,Description,Processid,WS,Path | Sort-Object WS -Descending | Format-Table * -AutoSize

Y la salida sería algo como esto.




En el foro de www.powershellcommunity.org existe muchisima documentación al respecto y gracias a ello he aprendido a realizar diferentes scripts que iré poniendo en el blog.

viernes, 12 de diciembre de 2008

Escuela de reciclaje

No todas las basuras son iguales.

"Basura" es un término que utilizamos a menudo en nuestro lenguaje cotidiano, siempre aplicado a algo sin valor o desechable. Sin embargo, hay muchos tipos de basura y es conveniente aprender a distinguirlas.

El reciclado, es una de las alternativas utilizadas en la reducción del volumen de los residuos sólidos

En este post y en el siguiente vamos a ver tres cosas:

1.- Como 'parsear' la memoria en busca de procesos malignos (basura)
2.- Como extraer un proceso de la memoria y convertirlo en un EXE (reciclaje)
3.- Como dibujar esos procesos de memoria en un JPG.

En Mayo del 2005, Chris Betz desarrollo unas 'utilities' llamadas MEMPARSER las cuales permitían entre otras cosas los puntos que anteriormente he descrito. Actualmente Chris Betz comercializa esas herramientas en una suite muy mejorada que permite parsear cualquier versión de Windows.

Si queréis saber más sobre MEMPARSER os recomiendo la lectura del post de mi amigo juanito.

Para realizar el análisis, previamente hemos obtenido la memoria de un servidor w2003 comprometido con un malware, exactamente con el rootki FU como veremos más abajo de esta explicación.

El fichero obtenido en formato DD se llama WFU2003.vmem. (Este fichero contiene el estado de la memoria, procesos y programas en ejecución.)

También para analizarlo dispondremos de las utilidades del memparser en perl y compiladas para windows. Estas están disponibles en código fuente desde aquí. Si estáis interesados me podéis mandar un correo ya que las tengo compiladas en EXE y así os evitáis trabajo.

Una vez tenemos todo pasamos a trabajar.

PARSEANDO LA MEMORIA

La utilidad 'LSPROC.EXE' permite extraer del fichero, los procesos que se estaban ejecutando momentos antes de volcarse a disco. Esto es muy importante porque nos permite ver que procesos están abiertos y corriendo. Muy útil para analizar. Entre los datos obtenidos observamos los offset de inicio de los procesos y las fechas de creación de estos.



Si quiero saber que hace un determinado proceso utilizo la utilidad 'LSPD.EXE' , en este ejemplo me centro en el proceso CMD (tras probar antes con el svchost e inetinfo, sin éxito ninguno).

Para ejecutarlo nada mas sencillo que poner:
lspd.exe wfu2003.vmem

Y fijaros en el resultado: Este CMD realmente apunta a un path y ejecutable que no es el original de Windows. Es decir cualquier usuario que ejecute el CMD.EXE estará ejecutando realmente CMMD.EXE.



Una vez visto el ejecutable y donde reside, se procede a comparar, comprobando y utilizando los hash de un CMD.EXE de un sistema windows limpio con el CMMD.EXE de la supuesta máquina comprometida. Para ello voy a utilizar MD5SUM.EXE que se puede descargar desde aquí.

Estos son los resultados, aparentemente tanto el tamaño, como el HASH no coincide, todo apunta a que el fichero CMMD.EXE esta alterado o es otro tipo de programa.



EXTRAER UN PROCESO

Como este ejecutable es sospechoso de primer grado voy a proceder a extraerlo del fichero de memoria y convertirlo en un ejecutable para su posterior estudio.

Para ello se ejecuta el siguiente comando:

lspm wfu2003.vmem



Como podemos comprobar a extraido y volcado del fichero de memoria 'wfu2003.vmem' a otro fichero con extensión dmp, el cual procederemos a moverlo a una máquina virtual para su ejecución y análisis. Una vez en la máquina virtual procederemos a renombrarlo a .EXE.

En este caso lo mandamos a Virustotal con este resultado:



Esto significa que como sospechabamos el CMMD.EXE no solo ejecuta una shell de comandos, también es un rootkit y según el informe remitido se trata del rootkit FU. Este rootkit empieza a ser muy extendido dada la versatilidad de pasar inavertido dentro de otros programas.

Según Microsoft, los rootkits FU e Ispro se han convertido en los principales códigos maliciosos de los equipos basados en Windows XP.

¿Qué hace el antivirus?

La detección de un rootkit ya instalado en el sistema operativo requiere el uso de técnicas especiales. La mayoría de ellas aplican principios similares a los de los rootkits: solicitan examinar la memoria o el disco duro utilizando varios métodos distintos, uno de los cuales, como mínimo, está lo más cerca posible del sistema y comparan después los resultados.

Si algunos archivos o procesos aparecen en la última lectura pero no en las otras, hay muchas probabilidades de que haya un rootkit activo. Desafortunadamente, esta técnica es compleja y no ofrece resultados plenamente satisfactorios.

Por fortuna, un antivirus sigue siendo muy útil: puede tener problemas para detectar un rootkit una vez que éste ha empezado a trabajar, pero puede identificarlo fácilmente cuando llega al sistema a través de, por ejemplo, un virus o spyware, en cuyo caso puede impedir su ejecución e instalación. También en el caso de los rootkits, la solución es la misma: un antivirus actualizado.

En el siguiente post vamos a dibujar el mapa de los procesos de memoria en un fichero con formato JPG.

jueves, 11 de diciembre de 2008

La curiosidad mato al gato

Me compre hace tiempo el reproductor que comercializaba la cadena de música de Máxima FM, el cual muestro a continuación en la siguiente fotografia. Creo recordar que el precio rondaba los 50 Euros



Nada más ni nada menos que un reproductor MP3 con más de 50 canciones del estilo 'dance'. Buena música para ir escuchando en los viajes por Ave. Una vez insertado en mi Windows Vista pude comprobar que también permitia el almacenamiento. Así paso el tiempo hasta que en un momento de necesidad tuve que volcar todo el contenido de las canciones al disco duro y utilizar el reproductor de música como un 'vulgaris' pendrive de almacenamiento, dado que tenia que llevarme unas presentaciones y me había dejado los mios en Zaragoza.

Como tenía tiempo se me paso por la cabeza lo siguiente:

¿Que ocurre si 'recupero' ficheros borrados del dispositivo?, ¿y si intento quitarle el formato al dispositivo recuperando ficheros no-continuos del anterior formateo?, ¿saldrá algo?. Que curiosidad. Manos a la obra.

La utilidad seleccionada es 'Recover My files' de getdata, tras configurar el tipo de fichero que quiero que busque,y seleccionar recuperación completa por formateo, el resultado es este:


Opciones de la utilidad

-----------

Hojas de cálculo

-----------

Fotos privadas

-----------

Más fotos

-----------


Videos


¿Y vosotros habéis intentado recuperar los ficheros de esos 'pendrives' promocionales que nos regalan las empresas?. Sorpresa!! sorpresa!!, ah y tened cuidado con lo que dejais a los amigos...

miércoles, 10 de diciembre de 2008

Ladrones de inocencia

Internet es grandioso, eficaz y un gran sistema de comunicación que abre nuevas vías comerciales, de eso no hay duda, pero en ocasiones también se refleja la inmundicia humana y lo peor de la sociedad. Estoy hablando de la pornografía infantil.

Hace unos días denuncie unas páginas a la Guardia Civil. En estas páginas además de aparecer veladamente imágenes de menores, (o casi recién cumplidos los dieciocho) el autor decía en sus comentarios la incomprensión que la sociedad esta dando a este tema y que no entiende porque es malo enamorarse o tener relaciones con un menor. Vamos un asco.


QUIENES SON

Muchos pedófilos se organizan en internet en torno a lo que se denominan comunidades virtuales, en las que varios individuos comparten información, fotografías y vídeos utilizando herramientas gratuitas de las que se dispone en internet. Como es sabido los programas P2P y actualmente algunos hasta utilizan redes anónimas del tipo tor.

Algunas de estas comunidades estan formadas por 1 o 2 individuos, pero otras por más de 1000 miembros. El número de pedófilos que pueden estar organizándose en torno a estas herramientas, que les permiten exhibir sus fotografías de pornografía infantil, es ciertamente escalofriante.
Para comprobarlo solo hay que ver la cantidad de NewsGroup al respecto.


Toda esta lista esta denunciada por la Brigada de Investigación Tecnológica

Y cuando entras en algún foro te encuentras 'perlas' como esta:



La detección no es muy complicada, solo es cuestión de navegar y tener intuición. El problema es quitarlos de la circulación y en ocasiones hasta google (y por decir más, Blogspot) ha tenido (y tendrá) problemas por los contenidos 'inapropiados' que han sido denunciados por personas anónimas o por fuerzas del estado. Para denunciarlos solo hay que tener valor y fuerza. Fuerza para aguantar el tipo ante imágenes espeluznantes y valor para seguir haciéndolo.

No entro en detalles de como se busca esta información por no dar pistas a nadie en un blog público, pero existen multitud de herramientas que permiten la búsqueda y seguimiento de personas a través de sus direcciones de correo por multiples sitios web, foros y grupos de internet. Si alguno está interesado me puede mandar un correo.

Aquí os dejo algún ejemplo de este tipo.



En sus e-mails y foros solo intercambian "material" que involucra niños de entre 4 y doce años de edad; Se resalta la forma como intercambian ideas de como conquistar niños, cómo seducirlos e incluso de como "botarlos" porque ya no los quieren. No son pedófilos, son bestias sin sentimientos.



Cerrar un sitio web de estas características, dependerá de donde este ubicado el servidor. Por ejemplo en Rusia esta permitido o bien es muy complejo demostrar que se esta cometiendo un delito. Si le sumamos el lucrativo negocio de las mafias que ganan mucho dinero con ello, hace que seguir la pista sea una empresa muy difícil, escapando en muchas ocasiones de la justicia. De todas formas han salido muchas iniciativas por las que los grandes fabricantes y proveedores de servicio se han unido para evitar la expansión de estas actividades. Un ejemplo de ello es Microsoft y Google.

En España, estamos teniendo un buen resultado y prácticamente cada uno o dos meses 'caen' estos pajaritos que 'trapichean' con material pedofilo.

Algunas webs se han cerrado. Pero siempre quedan algunos, especialmente un tipo al que realmente le tengo ganas de que las fuerzas del estado le metan mano es a Dennist1000, su nick.
Este es un ejemplo de página que eliminaron hace muy poco.



COMO SE DETECTAN

La herramienta que más se utiliza por la Guardia Civil, se llama Hispalis., que consiste en rastrear e identificar fotografías e imágenes a través de internet.

Inicialmente fue creado por la firma Española 'Astabis Data Management', Hispalis cuenta con un avanzado sistema detector de huellas, si se les puede llamar así, las mismas que siempre se dejan al momento de crear, transferir y colocar un archivo en internet.

Actualmente ya son más de diez años de alimentar una base de datos con material pornográfico incautado, el cual asciende a 350,000 fotografías y vídeos en los que los niños, por desgracia, son los actores principales.

Una de las operaciones mas sonadas se llama 'Azahar' y arrojó sus primeros resultados en octubre de 2005, los cuales fueron más que halagüeños: 629 objetivos ubicados entre 8,670 usuarios de redes analizadas; en concreto, se detuvo a 24 personas en España y a más de 100 en otros 19 países, incluyendo cuatro pederastas en México. Esta noticia que fue un éxito en esa fecha, prácticamente se viene repitiendo cada cierto tiempo.

Entre las herramientas a utilizar también destaco 'Reveal' que esta desarrollada por una fundación estadounidense dedicada a la protección del menor y que se puede descargar de forma gratuita desde aquí .

Aunque no es una herramienta dedicada al análisis forense, la verdad, es que cumple a la perfección esta función.

La herramienta clasifica la busqueda según su base de datos. Para su clasificación se basa en categorias de su diccionario:

También los resultados son elocuentes y se acercan bastante a la realidad, la utilidad genera un HTML para exponer los resultados

Otra forma de analizarlo consiste buscando titulos utilizando expresiones regulares, metodo estupendo si utilizamos Linux

ambien (?i)[a@/]+\\?.?m+.?[b8]+.?[i:1!\|]+.?[e3€]+.?n+\b
anal (?i)\banal\b
credit (?i)\bc.?r.?[e3€].?d.?[i1!:\|].?[t\+]
discount (?i)\bd.?[i1!:\|].?[s235$].?c.?[oQ0].?[uv].?n.?[t\+]?
ejaculation (?i)ejaculation
enlargement (?i)enlargement
money (?i)\bm.?[oQ0].?n.?[e3€].?y
mortgage \b[Mm].?[OoQ0].?[Rr].?[Tt\+].?[Ggq].?[Aa@/][\\]?.?[Ggq].?[Ee3€]?
penis (?i)\bp+.?[e3€]+.?n+.?[i1!:\|]+.?[s5$]+\b
porno (?i)\bp.?[oQ0].?r.?n.?[oQ0]?
sex \b[Ss25$].?[Ee3€].?[Xx].?[Yy]?\b

También otra forma mas comoda es utilizando un clonado del disco y analizar la memoria del fichero de paginación. Esta solución es la que mejores resultados da en conjunción con alguna herramienta de recuperación de ficheros. Si ademas la combinamos con utilidades del tipo FTK podremos tener una linea base y timestamp de los ficheros con pornografía infantil.

Por ultimo dejar constancia de links donde podemos formular preguntas y denuncias de forma anónima.

Páginas Web de lucha contra pornografía infantil:

  1. Asociación Contra la Pornografía Infantil
  2. http://www.asociacion-acpi.org

  3. Protégeles
  4. http://www.protegeles.com


miércoles, 3 de diciembre de 2008

El baúl de los recuerdos - Prefetching

Vamos a ver una carpeta que también tiene un significado especial a la hora de encontrar información valiosa para el análisis forense informático, para ello vamos a hablar del...

Prefetching.

Cada vez que encendemos el equipo, Windows realiza un seguimiento de la forma en que se inicia el equipo y los programas que se abren habitualmente.

Windows guarda esta información en una serie de pequeños archivos en la carpeta Prefetch. La próxima vez que se encienda el equipo, Windows recurrirá a estos archivos para acelerar el proceso de inicio.

La carpeta Prefetch es una subcarpeta de la carpeta del sistema Windows. La carpeta Prefetch no requiere mantenimiento: no es necesario eliminar ni vaciar su contenido. Si eliminamos la carpeta, Windows/prefetch, los programas tardarán más en abrirse la próxima vez que encendamos el equipo.

Para que nos entendamos, Microsoft guarda en esta carpeta, parte del programa (y dlls) que hemos usado, para cargarlos en memoria la próxima vez que iniciemos, y para que nuestro acceso sea mas rápido la proxima vez. Esto forma parte de todo un proceso de Microsoft para "acelerar" el acceso/ejecución a ficheros/aplicaciones, llamado Enhanced Write Filter (EWF).

¿Como funciona el prefetching?

Una vez iniciada la máquina, el administrador de chache comienza a monitorizar las aplicaciones que el usuario ejecuta (o se inician de forma automática), con la siguiente frecuencia:

1.- A los 2 primeros minutos del proceso de arranque
2.- A los 60 segundos después de que todos los servicios de Win32 haya terminado la inicialización
3.- A los 30 segundos después del inicio del shell o entorno del usuario.

(También el administrador de cache supervisa los primeros 10 segundos de inicio de una aplicación.)

Una vez que monitoriza la información con la frecuencia anteriormente descrita, interviene el programador de tareas y realiza un llamamiento a la función 'NtQuerySystemInformation' solicitando la extracción de datos.

Después de realizar el post-procesado de datos extraídos anteriormente por la función, el programador de tareas escribe los datos en un archivo en la carpeta \Windows\prefetch asociandolo a un nombre.

El nombre del archivo es el nombre de la aplicación ejecutada seguida por un guión y la representación hexadecimal de un hash de la ruta de acceso del archivo.
El archivo tiene una extensión '. PF'

Un ejemplo sería NOTEPAD.EXE-AF43252301.PF.


Ejemplo de carpeta prefetch


'Cacheado' de aplicaciones en memoria

Cuando el sistema arranca o se inicia una aplicación, el administrador de caché lleva a cabo el Prefetching.

El Administrador de caché comprueba en el directorio 'prefetch'para ver si un archivo PF existe. Si es así, el administrador de caché realiza a continuación una llamada al sistema de metadatos de NTFS y este le indica el contenido del directorio 'prefecht' y abre cada uno de los archivos que precisa.

A continuación, llama al administrador de memoria para leer los datos de los ficheros PF y el código se vuelca sobre una zona de memoria,de esta forma tenemos 'cacheadas' las aplicaciones. El Administrador de memoria inicia todas las lecturas de forma asíncrona

Para minimizar aún más la búsqueda, cada tres días o menos, durante los períodos de inactividad del sistema, el programador de tareas organiza una lista de archivos y directorios en el orden en que se arranquen o inician las aplicaciones y almacena la lista en un archivo llamado \Windows\ Prefech\Layout.ini.


Como podréis comprobar esto da mucho juego para saber respuestas a preguntas como las siguientes:

-. ¿que aplicaciones tiene o tenia instaladas?, ¿Cuantas veces se ejecuta una aplicación?, ¿en que orden?.

Ni que decir tiene que además es muy útil para saber si un malware esta ejecutándose en el sistema. Para la solución de estas preguntas vamos a ver como funciona la siguiente herramienta.

BUSCANDO EN EL BAúL CON PREFECHT_INFO

Prefecht_info es un programa en línea de comandos y lo que hace es analizar el archivo PF que escojamos dando la siguiente información: fecha de ejecución, el número de veces que se ejecuta, así como una lista de directorios y archivos que son o han sido cargadas. El programa puede encontrarse aquí.

La ejecución del programa es muy sencillo, os dejo un ejemplo:



Como se puede observar contiene datos valiosos como las fechas de creación, acceso y modificación, así como el disco y ruta donde estaba instalado y sus librerias asociadas.




Análisis Forense en profundidad 2.0 - Nuevo Curso -

Buenas lectores, De nuevo y de la mano de @securizame llega una nueva entrega del curso "Análisis Forense en profundidad 2.0" ...