"Security & Pure Forensics"

.

ATAQUES EN RED, INTRUSIONES, MALWARE Y APTs

Te lo contamos como nos lo hemos encontrado. Duro, sin ayuda y con muchas ganas de solucionarlo.

CIBERGUERRA, CIBERATAQUES, CIBERDEFENSA...

Todas las anecdotas, medidas de contención y un montón de soluciones.

ACOSO, FRAUDE, ROBO, PORNOGRAFIA INFANTIL, FUGA DE DATOS

Los mejores casos en Conexión Inversa.

ATAQUES EN RED, INTRUSIONES, MALWARE Y APTs

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

martes, 9 de diciembre de 2014

+1 FORMACIÓN "Curso Experto en Peritaje Informático"

Hola lectores,

Este pasado fin de semana fue movido debido a que tuve que dar una conferencia y taller en el magnifico y bien presentado evento de INCIBE.

Tanto la conferencia y taller fueron un éxito de afluencia de personas (la verdad que me sorprendió), viendo como se interesaban sobre esta magnifica materia del análisis forense informático.

Recuerdo que hace unos años (2004) esto del "Análisis forense" era de frikis y "raros" que nos dedicábamos a destripar las cosas con objeto de aprender "que había pasado". Muchos hemos conseguido trazarnos una profesión en esta materia.

Lo más importante para iniciarse es la formación y como viene siendo habitual suelo poner en el blog los cursos que vamos impartiendo por si es de interés para el lector.

En esta ocasión El Colegio de Ingenieros Informáticos de Murcia va a sacar un curso de:

"EXPERTO EN PERITAJE INFORMATICO"

Se celebrará en el Centro Europeo de Empresas de la Innovación de Murcia. Edificio CEEIM, durante los días 23,24, 30 y 31 de enero de 2015. Los profesores son Lorenzo Martínez Rodríguez y yo mismo.

Son cuatro sesiones formativas presenciales de cuatro horas (viernes de 16:00 a 21:00; sábados de 9:00 a 14:00).

El temario es el siguiente:

1.- Análisis forense en Windows .  Gestión remota de incidentes y análisis • Análisis Forense a entornos Windows (artefactos) • Análisis Forense a la memoria (artefactos) • Líneas de tiempo • Análisis al sistema de archivos • Recuperación avanzada de ficheros y modelado de datos • Metadatos • Recuperación de elementos clave • Cómo descubrir malware pasivo en el sistema • Caso práctico de un ataque APT.

2.- Análisis forense en Linux • Análisis Forense a entornos Linux • Distribuciones Live Forenses • Forense de la memoria RAM • Análisis forense de sistemas de ficheros • Análisis de la memoria SWAP • Líneas de tiempo • Recuperación avanzada de ficheros • Recuperación de elementos clave • Cómo descubrir malware pasivo en el sistema • Caso práctico: escenario de un ataque.

3.- Análisis forense en dispositivos IOS • Arquitectura interna y modelo de seguridad • Sistema de ficheros yaffs2 y ext2/ext3/ext4 • Android Debug Bridge • Adquisición de evidencias 

4.- Análisis forense en dispositivos Android• Arquitectura interna y modelo de seguridad • IOS Data Protection • Sistema de ficheros HFS+ • Backup iTunes y jailbreak • Estructura interna IOS • Adquisición de evidencias • PRACTICA: Análisis forense en iOS.

Para más información aquí. El formulario de inscripción aquí.

Es un curso de lo más interesante por la temática que se imparte.

jueves, 23 de octubre de 2014

INSTALANDO NUESTRO SERVIDOR DE HASHES NSRL

Hola lectores,

No son pocas las veces que he dudado de la legitimidad de una serie de ficheros en un sistema comprometido. Máxime cuando todo apunta a una infección por algún tipo de malware y que desemboca en alguna suerte de rootkit que modifica ciertos aspectos del sistema operativo.

Me ocurrió en el pasado con el comando NETSTAT.EXE, el cual estaba modificado y filtraba las conexiones que iniciaba el pirata informático contra diversos servidores de su propiedad. También me ha ocurrido con DLL's y también con el propio CMD.EXE.

La solución pasa por comprobar si los hashes de estos ficheros son buenos o malos, comparándolos con alguna instalación base que ya este montada o bien desde el propio repositorio de DVD de instalación de Windows. Esto como podéis imaginar no deja de ser un gran engorro.

Para solventar esta situación me he decidido a montar un servidor de hases NSRL en línea para realizar consultas por internet.

NSRL

La Biblioteca de Software de Referencia Nacional (NSRL), es un proyecto del Instituto Nacional de Estándares y Tecnología (NIST), que mantiene un repositorio de software conocido, de los archivos y firmas de archivo para su uso por la policía y otras organizaciones que participan en las investigaciones forenses relacionadas con la informática. El proyecto es apoyado por el Departamento de Justicia de Estados Unidos y el Instituto Nacional de Justicia así como la Oficina Federal de Investigaciones (FBI), el Servicio de Aduanas de los Estados Unidos y los proveedores y fabricantes de software.

Normalmente este repositorio contiene los metadatos de los ficheros de diversos sistemas operativos y desde su base de datos permite la búsqueda por HASH o por nombre de ficheros. Este punto es interesante dada que la colección de software original se mantiene con el fin de proporcionar repetibilidad de los valores hash calculados, lo que garantiza la admisibilidad de estos datos ante un juicio.

Otra de las anécdotas es que el conjunto de datos de referencia se encuentra en la versión 2.42 y contiene más de 33,9 millones de valores hash únicos. Este conjunto de datos está disponible sin coste alguno para el público (tiene un coste anual de 120$ si deseas que te los envíen en soporte DVD, cada tres meses), y como curiosidad el contenido se revisa trimestralmente.

Por lo tanto disponer de esta base de datos 'en linea' nos permite:

  • Determinar si un archivo ha sido alterado.
  • Si se ha cambiado de nombre o se pretende ocultarlo
  • Si un archivo es lo que pretende ser.
  • Si un archivo falta cuando debería encontrarse.


El NSRL puede ahorrar a un analista cientos de horas en una investigación. Un solo ordenador o unidad de disco duro puede contener entre 15.000 y 50.000 archivos individuales, cada uno de los cuales deben ser examinados desde un punto de vista probatorio. Si varios equipos, unidades de disco, pendrives u otros medios de comunicación están involucrados, las horas del personal podrían llegar a los miles y tomar meses para terminar un indicio. Por ello es necesario disponer de algún tipo de validación o datos que podamos comparar.

REQUISITOS

Para nuestro servidor de Hashes es necesario disponer de los siguientes elementos:

Un mínimo conjunto de set de hashes. Yo he empleado este que contiene los sistemas operativos mas utilizados.

  • Windows XP Professional 
  • Windows 7 Ultimate 32bit 
  • Windows 7 Ultimate 64bit 
  • Windows 8 Pro 32bit 
  • Vista Ultimate 32bit 
  • Vista Ultimate 64bit 
Estos se descargan directamente del NIST. (punto 1)

1.- http://www.nsrl.nist.gov/RDS/rds_2.45/rds_245m.zip (2,4 Gb)
2.- Una distribución de Linux (En mi caso Ubuntu 14.04)
3.- La utilidad nsrllookup - http://rjhansen.github.io/nsrllookup/
4.- El servidor propiamente dicho - https://github.com/rjhansen/nsrlsvr

INSTALANDO EL SERVIDOR

Desde el servidor Ubuntu (instalación limpia) instalamos los compiladores.

apt-get install buid-essential

Descomprimimos el directorio "RJHANSEN-NSRLSVR"

unzip ./rjhansen-nsrlsvr*.zip

Entramos en el directorio y ejecutamos el script ./configure

A continuación completamos con  "make && make install"con lo que se instalarán las aplicaciones siguientes:

  • Nsrlsvr, Servidor de  hashes
  • Nsrlupdate, Limpia la BD y carga un nuevo RDS
  • Nsrlappend, Añade nuevas hashes a una BD existente

Una vez iniciado estos pasos voy a indicar que quiero utilizar el set de datos descargado anteriormente:

/usr/local/bin/nsrlupdate /home/armada/nsrlsvr/rds_241m.zip

Tras un tiempo considerable (media hora) en cargar la Base de datos procedo a ejecutar el servidor.


El cual estará a la escucha en el puerto 9120.



UTILIZANDO EL SERVICIO

Bueno, ya disponemos del servidor, ahora necesitamos una serie de herramientas en modo comando que nos permita escribir procesos automatizados en batch o powershell y que ejecutaremos desde el cliente o máquina sospechosa. Para ello vamos a utilizar MD5DEEP y NSRLLOKUP .

http://md5deep.sourceforge.net/   ---  MD5DEEP
http://rjhansen.github.io/nsrllookup/   ---  NSRLLOKUP

md5deep, es un conjunto de programas para calcular MD5 , SHA-1 , SHA-256 , entre otros y que es muy similar a MD5SUM o MD5. 

nsrllookup permite interactuar desde la consola con NSRLSVR con objeto de enviar y devolver información acerca de las huellas. Veamos un ejemplo.

Desde una máquina (windows) comprometida procedemos a poner el siguiente comando:

md5deep64.exe -r c:\evil | nsrllookup.exe -s 192.168.163.132

Donde C:\EVIL contiene ficheros con posible malware. El parámetro -s y la dirección IP, le indica cual es el servidor de Hashes.


Por defecto, el servidor devuelve los hashes de los archivos que NO se encuentran en la base de datos del NSRL. Si por el contrario deseamos los hashes de los archivos que SI se encuentran en el NSRL, sólo tenemos  que añadir el flag -k. Por ejemplo:

C:\> md5deep -r * | nsrllookup -s 192.168.163.132 -k               
e97295de2a9fde547feab4fe41df16ca            mspaint.exe          
eee470f2a771fc0b543bdeef74fceca0            msiexec.exe          
                                                                                                    

Una vez realizadas estas operaciones podemos disponer de un posible indicio de actividad maliciosa basada  en la reputación. Por otro lado es una manera sencilla de no tener que ir con un montón de cd/dvds con una línea base del sistema operativo.

También hay que decir que este proceso de lectura de Hashes consume mucha ram y tiene picos muy altos de CPU, sobre todo cuando se realizan múltiples consultas o bien es muy grande la búsqueda a realizar, por  lo cual es recomendable disponer de un ordenador moderno y unos 8 Gbytes de RAM para que funcione bien.

SLEUTHKIT

Otra forma más mundana es instalar las utilidades forenses de sleuthkit y utilizar HFIND para la búsqueda de estos hashes.

Primero creamos el indice de huellas

hfind -i nsrl-md5 NSRLFile.txt

Un vez creado podemos buscar una determinada huella.

hfind NSRLFile.txt 76b1f4de1522c20b67acc132937cf82e
76b1f4de1522c20b67acc132937cf82e Hash Not Found

O tener una combinación de ambas (ambas huellas separadas por un espacio)

hfind NSRLFile.txt 392126E756571EBF112CB1C1CDEDF926 fc0b4a626881d7c5980d757214db2d25


Por ultimo comentar que esta base de datos NSRL es adaptada por muchos fabricantes en sus propios productos como por ejemplo EnCase y AccesData y que desde la propia web del NIST (http://www.nsrl.nist.gov/),  proporcionan un enlace para poder buscar de forma manual los Hashes.


jueves, 21 de agosto de 2014

Lo que no debes de perderte...Reversing & Exploiting avanzado


Hola lectores,

Como dice el título, hay cosas que uno que se dedica a esta profesión no debe de perderse, más si te dedicas o interesa la seguridad informática.

Nuestro amigo Lorenzo de Securizame (y de Security By Defautl) nos ha preparado un Septiembre-Octubre de auténtica locura formativa, reuniendo a los grandes para dar un curso de "Reversing & Exploiting avanzado".

Tras el éxito en diferentes cursos, este no deja indiferente a nadie por el plantel de profesores que imparten esta materia.

Lo dicho recomendable al 100%. Aquí os dejo información del curso.

martes, 8 de julio de 2014

Consideraciones forenses en 32 y 64 bits


Hola lectores,

Desde mediados de los años 90 casi todos los ordenadores que se han vendido, han sido con equipos con arquitectura de 32 bits, y en su mayoría han venido preinstalado con Windows. Después del lanzamiento de Windows 7, las ventas de equipos con Windows de 64 bits han aumentado considerablemente.

El precio de un ordenador con arquitectura de 64 bits ha disminuido tanto que son casi tan baratos como equipos de 32 bits. Y la gente preferirá equipos de 64 bits ya que puede manejar mucho más memoria (RAM). 
  
Un equipo de 32 bits con Windows de 32 bits (valga la redundancia) puede usar un máximo de 3 a 4 GB (RAM) de memoria, sobre todo en torno a 3 GB, debido a que una gran parte del espacio de direcciones es usado por las tarjetas de vídeo y otros dispositivos tales como tarjetas de red, tarjetas de sonido, etc. Con los ordenadores de 64 bits se  puede manejar mucha más memoria RAM como por ejemplo 192 GB.

En el momento de evolución de Windows 32 a 64 muchas cosas se han ido adaptando en la arquitectura del sistema operativo, muchas de ellas evidentemente no se ven por su implantación y otras están a simple vista como las carpetas del sistema operativo.

SYSTEM32 vs SysWOW64

Lo que voy a decir puede llevar a la confusión, pero son definiciones dadas por el propio Microsoft.

Aunque parezca lo contrario, la carpeta System32 está destinada a archivos de 64 bits y la carpeta SysWOW64 está diseñada para archivos de 32 bits. Aunque esto puede no parecer lógico, tiene que ver con la compatibilidad de los programas y programadores de aplicaciones.
Cuando se ejecuta una aplicación de 32 bits en un entorno de 64 bits, se produce un redireccionamiento de forma transparente siempre y cuando la aplicación intente acceder al directorio SYSTEM32 o al registro de windows. Este redireccionamiento lo implementa una capa de compatibilidad llamada WOW64.

WOW64 es una abreviatura de "Windows on Windows 64-bit" (se puede leer como "Windows de 32 bits en Windows de 64-bit"). Es un emulador que permite a las aplicaciones basadas en Windows de 32 bits se ejecuten sin problemas en Windows de 64 bits. 

Para implementar esto, WOW64 intercepta todas las llamadas al sistema de las claves de registro abiertas y reescribe la ruta para que apunte a dos ramas del registro, como son, HKLM\Software y HKEY_CLASSES_ROOT.

Bajo cada una de estas ramas, WOW64 crea una clave llamada Wow6432Node. En esta clave se almacena la información de configuración de 32 bits Todas las demás partes del Registro son compartidos entre las aplicaciones de 32 bits y de 64 bits (por ejemplo, HKLM y SYSTEM).

Es muy importante que un archivo compilado a 32 bits o 64 bits se instale en la carpeta de sistema correcto. De lo contrario, el programa que necesita el archivo no será capaz de cargar el archivo y probablemente no funcione como se espera. 

DOS VERSIONES, DOS CARPETAS Y UNA EJECUCIÓN TRANSPARENTE

A modo de recordatorio:

Nombre de la carpetaBITSDescripción
System3264Carpeta del sistema de Windows (directorio del sistema) para archivos de 64 bits
SysWOW6432Carpeta del sistema de Windows (directorio del sistema) para archivos de 32 bits
Archivos de programa64Carpeta para los archivos de programa de 64 bits
Archivos de programa (x86)32Carpeta para los archivos de programa de 32 bits

¿PERO ESTO ES UN PROBLEMA DESDE EL ÁMBITO FORENSE?

Puede que sí, puede que no. Veamos un caso concreto:

Supongamos que tenemos un malware de nombre 'malware.exe' y que tiene el siguiente hash:

d41d8cd98f00b204e9800998ecf8427e

Ahora vamos a copiar el fichero a las carpetas SYSTEM32 y SysWOW64.

Una vez copiados calculamos sus huellas y efectivamente vemos que coinciden, pero he aquí el problema:

¿Que ocurre si copiamos un fichero del mismo nombre y con diferente tamaño?. EL hash debería de ser identico.

Veamos los resultados...


Es el mismo HASH...¿como es posible?.

Efectivamente tenemos un mismo hash en diferentes directorios y con diferentes ficheros. ¿Es problema de colisiones MD5?. De ninguna manera, eso debido a que el programa md5sum de 32 bits intentó leer el archivo del directorio 'Win32\malware.exe', el sistema operativo 'se percata' y de forma transparente redirigió a 'C:\Windows\SysWOW64\malware.exe' obteniendo el mismo resultado.

Es decir, pogamos el caso de un malware diseñado para un entorno de 32 bits que se ejecuta en un sistema de 64 bits, esto implicaría que parte de los cambios que se van a producir en el registro se van a realizar en sobre la clave 'HKLM\SOFTWARE\Wow6432Node'. Esto además permitiria falsear la búsqueda en aquellas herramientas forenses de 32 bits en un entorno de 64. Lo cual a su vez falsearía las evidencias en un informe.

Por lo tanto una revisión 'normal' por medio de un análisis forense o bien utilizando indicadores de contenido (IOCs) se saltaría este paso dado que tengamos claro que ocurre una redirección, es decir, tenemos que tener en cuenta que hay que revisar ambos directorios y utilizar herramientas que soporten ambas arquitecturas y por su puesto  la siguiente clave (entre otras) 

'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run'

Por lo tanto es indispensable la revisión de estas carpetas y sus contenidos.

¿ESTAMOS PERDIDOS?. ¿PODEMOS ANALIZAR Y AUTOMATIZAR EL PROCESO?.

¡¡Por su puesto que tiene solución!!. Una buena herramienta para este análisis es utilizar la herramienta REGRIPPER, ya que analiza claramente estas carpetas y verifica las ramas del registro anteriormente mencionadas. Por otro lado otra herramienta como Registry Browser permite ver las diferencias en las modificaciones del registro contemplando los métodos de redirecciones.

Lo dicho, no os olvideis de revisar el sistema dependiendo de la arquitectura.

miércoles, 5 de marzo de 2014

WINDBG y KD (INTRODUCCION FORENSE)



INTRODUCCIÓN AL DEPURADOR DE WINDOWS



Hola lectores,

Vamos a ponernos en situación en un caso forense que tuve bastante complicado de resolver por la situación crítica de ese servidor.

Disponemos de un controlador de dominio (comprometido) el cual no se puede apagar. Este servidor se encuentra inestable y dependiendo de las acciones del administrador de dominio da una pantalla azul matando el proceso Winlogon y reiniciando la máquina la cual deja sin servicio a cerca de 1.000 usuarios.

Para ilustrar este caso quiero comentar con todos mi experiencia utilizando el depurador de Windows.

¿QUE ES WINDBG?

Es una aplicación distribuida en la web de Microsoft. Se puede utilizar para depurar en modo de usuario las aplicaciones, los controladores y el sistema operativo en modo kernel .

WinDbg se puede utilizar para la depuración de volcados de memoria y también tiene la capacidad de cargar de forma automática lo que se llama 'mapa de símbolos' traduciendo fechas, horas, CRCs  haciendo coincidir diversos criterios. Otra de las ventajas es que pueden relacionarse con el código fuente del binario.

INSTALANDO WINDBG

WINDOWS 8

Windbg se distribuye en un paquete de software llamado "Windows Driver Kit (WDK)." disponible desde http://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx

La instalación te preguntará si deseas instalar de forma local o descargar el kit de desarrollo para otro equipo. Lo suyo es instalarlo en local.




Desactiva todas las opciones excepto las que están marcadas en la imagen anterior.


WINDOWS 7

Para Windows 7,  Microsoft ofrece WinDBG como parte del paquete de "Herramientas de depuración para Windows" que se incluye en el SDK de Windows y Net Framework .

Una vez ejecutado el programa de instalación aparece la siguiente pantalla:


Al igual que en Windows 8, solo seleccionaremos las opciones marcadas en la pantalla anterior.

Una vez instalado procederemos a instalar los símbolos.

SÍMBOLOS

WinDBG realmente no necesita mucha configuración. Los símbolos son básicamente, los archivos especiales que se generan con el programa binario en tiempo de compilación y que proporciona información de depuración, tales como nombres de funciones y variables. Esto nos puede ayudar a desmitificar muchas de las funcionalidades de una aplicación al depurar. Muchos de los componentes de Microsoft son recopilados con símbolos que se distribuyen a través de un servidor de símbolos de Microsoft. 

Para configurar WinDBG y  para utilizar el servidor de símbolos vamos a crearnos una carpeta de nombre "símbolos" y a continuación nos descargamos el ejecutable desde http://msdn.microsoft.com/en-us/windows/hardware/gg463028


Una vez descargado y ejecutado (tomad vuestro tiempo, ya que tarda) nos encontraremos que la carpeta "símbolos" contiene miles de ficheros con extensión "pdb". Una vez instalado procederemos a configurar WINDBG

LO QUE NECESITAMOS SABER

LA INTERFAZ WINDBG

Al ejecutar WinDBG por primera vez te darás cuenta de su simplicidad. En un principio no va hacer nada, salvo que la conectemos a un proceso, para ello seleccionamos desde el menú la opción "Attach to a Process" y la conectamos a cualquier proceso apareciendo la ventana "comandos".


Una vez realizado este paso nos vamos al menú "File --> Search Symbol Path" y añadimos la siguiente ruta:

SRV*C:\carpetadeSimbolos*http://msdl.microsoft.com/download/symbols



Llegados a este punto ya tenemos configurado nuestro depurador de Windows y dispuestos a utilizarlo.


DEPURACIÓN DE UN PROCESO

Tenemos dos formas de depurar un proceso; en local y remoto.

En local es tan simple como realizar el paso anterior de "Attach to a Process" o "Open Executable" y esto nos mostrará la ventana de comando. Como consideración, hay que tener en cuenta lo siguiente:

Puede ir lento el sistema.
Puede fallar la aplicación (Habría que marcar la opción "no intrusive").
Es recomendable para aplicaciones que no requieren conectividad y trabajan en local.
Puede dar errores si se trata del malware a analizar.

En remoto sería lo siguiente:

Lo primero es tener una sesión de WINDBG con alguna depuración en local y a continuación en la ventana de comando hay que poner:

.server tcp:port=5006

Habilitando el acceso remoto

Una vez puesto tendremos que permitir el acceso remoto a este puerto.



Ahora ya podemos conectarnos remotamente.


Otra forma de conectarnos puede ser desde la consola de esta forma: 


MÓDULOS

Los módulos son partes del programa (en depuración) que se cargan con la ejecución del programa original. Muchas veces es mejor utilizar o depurar un módulo para saber como funciona el programa.

En el siguiente ejemplo podemos ver cómo carga los módulos del programa iCloud de Apple.


Y podemos conseguir la dirección de la carga de un módulo específico mediante el comando "lmf m":

0:005> lmf m kernel32
77550000 77624000 kernel32 C: \ Windows \ system32 \ kernel32.dll

Dirección de inicio y dirección final del nombre del módulo

PUNTOS DE INTERRUPCIÓN

Un 'breakpoint' es un marcador que se le pone a una instrucción de código o programa para decirle que en el momento de la ejecución ha de pararse en ese punto.

Una vez que se alcanza el punto de interrupción, el programa se detiene y podemos empezar a investigar y depurar el programa. Los puntos de interrupción se pueden configurar en el software y en la  CPU (hardware), vamos a echar un vistazo a los dos:

INTERRUPCIÓN POR SOFTWARE

Cuando se alcanza el punto de interrupción, el depurador se carga en la dirección actual de la memoria, recuperando la instrucción almacenada y la presenta al usuario. Los breakpoints por software se establecen dentro de WinDBG utilizando los comandos  pb , bm , o bu . pb (para Break Point) .

INTERRUPCION POR HARDWARE

En la mayoría de CPUs hay registros de depuración especiales que se pueden utilizar para almacenar las direcciones de los puntos de interrupción (por ejemplo, leer, escribir, ejecutar). 

Cuando la CPU llega a una dirección de memoria definida en el registro de depuración y se cumplen las condiciones de acceso, el programa pondrá la ejecución en pausa para ello se puede utilizar los comandos "ba".

COMANDOS

Hay una multitud de comandos para utilizar en el depurador. En el siguiente link tenemos una lista muy documentada de cada uno de ellos:


En nuestro caso vamos a comprobar alguno del estilo 'VOLATILITY' en el que podemos leer diversas claves del registro.

ACCEDIENDO AL REGISTRO DE WINDOWS

En mi caso y ejemplo, voy a realizar un análisis de un fichero que contiene un volcado de memoria, para ello lo selecciono y el 'debugger' prepara el entorno para su utilización con KD.


A continuación y como ejemplo puedo pedirle que me muestre la lista de ficheros HIVE que están en memoria. para ello utilizamos el comando "reg hivelist"

Lista de ficheros SYSTEM, DEFAULT, SAM, CONFIG

Si queremos ver las claves del registro de un fichero en concreto ponemos  "reg openkeys"

Claves del registro

Y para ver el valor o datos que contiene una clave o subclave ponemos "reg querykey"

Valores de una clave


Una vez que ya nos hemos familiarizado con el entorno, es momento de analizar el sistema, pero esto ya lo haremos en otro post.

jueves, 23 de enero de 2014

ADQUISICIÓN DE FICHEROS BLOQUEADOS


Hola lectores,

Uno de los problemas que nos encontramos a la hora de realizar un análisis forense en la obtención o adquisición de discos y archivos, es encontrarnos con ficheros bloqueados o abiertos por una aplicación o dependiendo del caso por el propio sistema operativo.

Las soluciones son sencillas cuando hay que hacer un clonado y podemos apagar el dispositivo a copiar, pero no lo es tanto cuando el equipo debe de estar encendido. Por ejemplo en Windows un motivo fundamental para la realización de un buen análisis consiste en la obtención de ficheros HIVE y los registros de ‘log’ del sistema.


Ambos proporcionan datos muy valiosos y pueden esclarecer tanto lo que hizo un usuario y que ocurrió en el sistema. El problema radica cuando se copian, dado que al ser ficheros utilizados por el sistema este los bloquea.

Bloqueo en la copia de NTUSER.DAT



UTILIDADES AL RESCATE


Para la adquisición de estos ficheros en un sistema ‘vivo’ existen varias herramientas que recomiendo encarecidamente.


Hemos hablado mucho y muy bien en anteriores post sobre ella. Esta utilidad permite recuperar (entre otras cosas) cualquier fichero del sistema, incluido la $MFT, $JOURNAL, NTUSER.DAT, etc.



Es una utilidad muy útil para equipos individuales pero se convierte en tediosa cuando tenemos que automatizar procesos en múltiples ficheros o diferentes unidades de disco.


Ofrece un enfoque más sencillo y más seguro. Se trata de una herramienta basada en la consola. Es de código abierto y copia archivos NTFS mediante el acceso a disco en bajo nivel, por encima de todas las restricciones habituales. Si el archivo está bloqueado por una aplicación y Windows no tiene los permisos necesarios, no hay problema: RawCopy lo copiará independientemente.



Lo importante de utilizar esta herramienta es no equivocarse con la sintaxis exacta. El parámetro de origen debe incluir una ruta completa (no relativa), el destino no puede incluir un nombre de archivo, debe ser sólo una ruta y como de costumbre con programas de la consola, si los parámetros de origen o de destino contiene espacios, entonces hay que poner comillas.

Por último y no por ello la más importante tenemos a HDD Raw Copy Tool.


Esta herramienta crea una copia sector por sector de todas las áreas del disco duro (MBR, registros de arranque, todas las particiones, así como espacios intermedios) sin preocuparse del sistema operativo ni particiones (incluyendo las ocultas). 

Además, HDD Raw Copy puede crear una copia exacta (dd) o imagen comprimida de la totalidad de los dispositivos de disco.

Entre sus usos se puede encontrar:
  • Recuperación de datos: permite realizar una copia de la unidad dañada e intentar la recuperación con la copia.
  • Recuperación de datos: permite copiar un disco duro dañado y omitir los sectores defectuosos.
  • Migración: migrar completamente de un disco duro a otro.
  • Copia de seguridad final: Hacer una copia exacta del disco duro para usos futuros.
  • Copia de seguridad: crear una imagen de un USB y copiar / restaurar en cualquier momento.
  • Duplicar / Clonar / Guardar imagen completa de todo tipo en cualquier dispositivo.
Todas estas utilidades mencionadas son muy útiles de emplear y muy recomendables.

martes, 7 de enero de 2014

Artefactos Forenses (II) Prefetch y Windows 8



Cada vez que encendemos el ordenador, Windows realiza un seguimiento de la forma en que se inicia el equipo y los programas que se abren o utilizan habitualmente. Para ello el sistema guarda esta información en una serie de archivos en la carpeta Prefetch  de modo que la próxima vez que se encienda el equipo, Windows iniciará estos archivos para acelerar el proceso de inicio.

Podríamos decir que es una super-cache de datos, librerías y aplicaciones.

No es necesario eliminar ni vaciar su contenido. Si vaciamos la carpeta los programas tardarán más en abrirse la próxima vez que encienda el equipo.

Esta carpeta ha sido reconocida como un artefacto útil en la comunidad forense y hay algunas herramientas existentes para analizar los ficheros 'pf'. Las características que ofrece entre otras, son la última fecha de ejecución de un programa y el número de veces que se ha ejecutado. 


Ejemplo de Winprefetchview de nirsoft.com


Pero hay más que eso, ¡Mucho más! El archivo 'pf' también registra información sobre el disco, el número de serie  y la marca de tiempo de creación de la unidad. Esta información se almacena para todos los volúmenes y es muy útil para encontrar números de serie de las unidades externas utilizadas para poner en marcha las aplicaciones o para descubrir los archivos que han sido abiertos desde el propio dispositivo o disco duro externo.

El funcionamiento básicamente consiste en que el servicio "Programador de tareas" (que se ejecuta bajo 'svchost') se utiliza (entre otras cosas) para grabar páginas de memoria que son utilizadas con frecuencia por las aplicaciones, así de esta forma cuando se pone en marcha un programa, durante los primeros diez segundos, esta es monitorizada por el "Windows cache manager" y el resultado de esta información se escriben en un archivo PF cuyo nombre tendrá la nomenclatura "programa.extension-HASH.pf".

El hash es un número de 32 bits, representado en hexadecimal y se ve como por ejemplo "WRITE.EXE-A606B53C.pf". Este hash se calcula a partir de la ruta completa de la aplicación que será de la forma:

\\Device\\HarddiskVolume1\\WINDOWS\\system32\\WRITE.EXE

Por lo tanto desde el punto de vista forense una aplicación ejecutada en el sistema operativo deja rastro.

LAYOUT.INI

El resultado del procesado del programador de tareas se almacena en un archivo de nombre 'Layout.ini' en el mismo directorio Prefetch, y este fichero a su vez es utilizado por el desfragmentador de disco, dándole instrucciones para reordenar los archivos en posiciones secuenciales en el disco. Por lo tanto si desaparece este archivo nos vamos a encontrar que no funciona correctamente el defragmentador.



Ejemplo del fichero Layout.ini


ESTRUCTURA

Y observando los offset y cabeceras con un editor nos encontramos con la siguiente estructura:


Por otro lado la clave del registro que se identifica con prefetch es:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

WINDOWS 8

Windows 8 aún utiliza el mismo algoritmo para el cálculo del hash y la estructura del archivo de PF es aún la misma. El único cambio parece ser la adición de siete nuevas marcas de tiempo. Esto se debe a que ahora en el archivo se almacena la fecha y hora de las últimas ocho veces que se ejecuta la aplicación.

ESTRUCTURA


¿EN QUE PODEMOS UTILIZAR PREFETCH?

Particularmente es muy útil para temas de propiedad intelectual, con este sistema y diversas aplicaciones como la de nirsoft, podemos saber si una persona ha instalado y utilizado un determinado programa. Tuve un caso concreto de copias piratas con AUTOCAD y aunque la empresa negaba la existencia, las evidencias del directorio prefetch fueron muy claras a ese respecto. Evidentemente esto es solo una parte.

Otro caso concreto fue la utilización de prefetch para descubrir fugas de datos o ficheros que se han abierto desde dispositivos externos y ya por último, aunque algo más burdo es posible descubrir la utilización de malware y/o programas espías, así como documentos eliminados que hubieran estado en cualquier dispositivo.





Ejemplo de  descubrimiento del troyano VANQUISH

Por lo tanto en un análisis forense es muy aconsejable la utilización de esta carpeta para la búsqueda de evidencias.

Referencias:

http://www.forensicswiki.org/wiki/Windows_Prefetch_File_Format
https://googledrive.com/host/0B3fBvzttpiiSbl9XZGZzQ05hZkU/Windows%20Prefetch%20File%20(PF)%20format.pdf

jueves, 2 de enero de 2014

¡TRES, DOS, UNO...A FORMARSE!


Hola lectores,

Tiempo atrás hablando con Lorenzo de Securizame sobre la ola que viene de ciberespías, ataques en red, peritajes especialmente enrevesados y fraude a patadas, llegamos a la conclusión de quien no este 'al día' y evolucione en las nuevas técnicas y metodologías en seguridad informática, quedará fuera del mercado laboral.

Sois muchos los que me preguntáis como se puede empezar en esta materia y que se necesita para la realización de un buen análisis forense. Dependiendo del caso os he mandado algún correo y referencias para empezar, continuar o especializarse.

La formación es algo que debemos de valorar constantemente como una inversión y no como un gasto. Las empresas que durante los años venideros quieran disponer de recursos de primer nivel tendrán que invertir en especialización o futuro formando a su cuadro técnico y así estar posicionadas para la carrera.

En este sentido Lorenzo ha ido trabajando en montar un curso desde el punto de vista antes mencionado, es decir pensado en la especialización y en los alumnos.

Para ello ha congregado y conjurado a un elenco de especialistas profesionales como Álvaro AndradeJaime Andrés Restrepo DragonJARYago Jesús, Juan GarridoGiovanni CruzLuis Delgado y un humilde servidor.

En la web de Securízame hay una página explicando los detalles del curso con el temario, horario, costes, calendario, etc…

¡¡Espero que nos veamos!!

viernes, 20 de diciembre de 2013

Artefactos forenses (I)

ARTEFACTOS DEL SISTEMA


Hola lectores,

Son muchas las ocasiones que cuando uno hace un análisis forense y no encuentra 'pistas' o evidencias tiene que pelear con los rastros que dejan las aplicaciones o el propio sistema operativo.

Con objeto de revisar las nuevas características desde el punto de vista forense que nos ofrece Windows 7 y Windows 8 voy a escribir unos cuantos post sobre este tema.

¿Os habéis preguntado alguna vez que es un artefacto en Windows?

Al igual que las versiones anteriores de Windows, la versión 7 y 8 dispone de mecanismos que dejan rastro de la actividad de los usuarios, de los programas que se utilizan, los accesos, conexiones y aplicaciones, si han navegado, descargado o ejecutado algún programa.

Estos elementos son comúnmente llamado "artefactos". Veamos en esta primera parte algunos interesantes.

Lista de artefactos:
  • Logs o ficheros de sistema
  • Tabla maestra de archivos MFT 
  • El registro de Windows
  • El visor de Eventos
  • Los ficheros Prefetch
  • Los accesos directos
  • La papelera
  • Metadatos en imágenes y documentos
  • Ficheros de hibernación y memoria
  • Copias de seguridad 
  • Volume Shadow
Empezamos con los artefactos de sistema, espero que os sea de ayuda.

ARTEFACTOS DE SISTEMA

En la siguiente tabla podemos ver una serie de ficheros propios del sistema operativo y la función que desempeñan.


REGISTROS VARIOS SOBRE LA INSTALACIÓN



%WINDIR%\setupact.log


Contiene información acerca de las acciones de instalación durante la misma.

EVIDENCIAS: Podemos ver fechas de instalación, propiedades de programas instalados, rutas de acceso, copias legales, discos de instalación...


%WINDIR%\setuperr.log

Contiene información acerca de los errores de instalación durante la misma.

EVIDENCIAS: Fallos de programas, rutas de red inaccesibles, rutas a volcados de memoria...


%WINDIR%\WindowsUpdate.log

Registra toda la información de transacción sobre la actualización del sistema y aplicaciones.

EVIDENCIAS: Tipos de hotfix instalados, fechas de instalación, elementos por actualizar...




%WINDIR%\Debug\mrt.log

Resultados del programa de eliminación de software malintencionado de Windows.

EVIDENCIAS: Fechas, Versión del motor, firmas y resumen de actividad.


%WINDIR%\security\logs\scecomp.old

Componentes de Windows que no han podido ser instalados.

EVIDENCIAS: DLL's no registradas, fechas, intentos de escritura,rutas de acceso...



%WINDIR%\SoftwareDistribution\ReportingEvents.log


Contiene eventos relacionados con la actualización.

EVIDENCIAS: Agentes de instalación, descargas incompletas o finalizadas, fechas, tipos de paquetes, rutas...




%WINDIR%\Logs\CBS\CBS.log


Ficheros pertenecientes a ‘Windows Resource Protection’ y que no se han podido restaurar.

EVIDENCIAS: Proveedor de almacenamiento, PID de procesos, fechas, rutas...



%AppData%\Local\Microsoft\Websetup (Windows 8)

Contiene detalles de la fase de instalación web de Windows 8

EVIDENCIAS: URLs de acceso, fases de instalación, fechas de creación, paquetes de programas...



%AppData%\setupapi.log 

Contiene información de unidades, services pack y hotfixes.

EVIDENCIAS: Unidades locales y extraibles, programas de instalación, programas instalados, actualizaciones de seguridad, reconocimiento de dispositivos conectados...


%SYSTEMROOT%\$Windows.~BT\Sources\Panther\*.log,xml
%WINDIR%\PANTHER\*.log,xml

Contiene información de acciones, errores y estructuras de SID cuando se actualiza desde una versión anterior de windows.

EVIDENCIAS: Fechas, rutas, errores , medio de instalación, dispositivos, versiones, reinicio, dispositivos PnP...



%WINDIR%\INF\setupapi.dev.log

Contiene información de unidades Plug and Play y la instalación de drivers.

EVIDENCIAS: Versión de SO, Kernel, Service Pack, arquitectura, modo de inicio, fechas, rutas, lista de drivers, dispositivos conectados, dispositivos iniciados o parados...


%WINDIR%\INF\setupapi.app.log

Contiene información del registro de instalación de las aplicaciones.

EVIDENCIAS: Fechas, rutas, sistema operativo, versiones, ficheros, firma digital, dispositivos...



%WINDIR%\Performance\Winsat\winsat.log

Contiene trazas de utilización de la   aplicación WINSAT que miden el rendimiento del sistema.

EVIDENCIA: Fechas, valores sobre la tarjeta gráfica, CPU, velocidades, puertos USB...





*.INI

Contiene configuraciones de programas

EVIDENCIA: Rutas, secciones, parámetros de usuarios...


%WINDIR%\Memory.dmp

Contiene información sobre los volcados de memoria.

EVIDENCIA: Rutas, programas, accesos, direcciones de memoria, listado de usuarios, contraseñas, conexiones...


EL.CFG
Pid.txt

Estos archivos se usan para automatizar la página de entrada de la clave de producto en el programa de instalación de Windows.

EVIDENCIA:Contiene el código de producto y la versión instalada



LOG DE EVENTOS DE WINDOWS


%WINDIR%\System32\config
%WINDIR%\System32\winevt\Logs


Contiene los logs de Windows accesibles desde el visor de eventos.

EVIDENCIAS: Casi todas. Entradas, fechas, accesos, permisos, programas, usuario, etc...


MICROSOFT SECURITY ESSENTIALS


%PROGRAMDATA%\Microsoft\Microsoft Antimalware\Support

%PROGRAMDATA%\Microsoft\Microsoft Security Client\Support



Logs del motor de antimalware

EVIDENCIAS: Fechas, versión del motor, programas analizados, actividad del malware...