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, 27 de marzo de 2009

Protocolo de actuación

He realizado un protocolo de actuación que quiero compartir con ustedes, de momento ha sido validado por dos partes y el Juzgado de instrucción donde se ha inscrito el caso que os comento a continuación.

El caso es el siguiente:

Hay empresas que proporcionan uno o varios servicios para oficinas. Desde la limpieza de lavabos hasta secretaría telefónica para organizar agendas y visitas, El precio de este servicio es compartido por las empresas que están en el edificio o planta.

Dos empresas bien distintas comparten los trabajos de secretaría y tras un tiempo y sin saber muy bien como, aparecen publicados en 'San google' datos confidenciales de estas empresas (las agendas, datos de clientes, facturas, visitas, llamadas de teléfono, citas, etc.). Todo apunta a un fallo intencionado o no del servicio prestado de 'secretaría'

El problema viene dado cuando se constata que clientes de una empresa han sido visitados por la otra.(¡¡vaya lio!!) Estas tres empresas se culpan mutamente. Ni que decir tiene que todas cumplen contractualmente con la LOPD.

Los motivos pueden ser variados:

Robo de información por parte del servicio de secretaria
Fuga de información por error
Intrusión no autorizada
Troyanos

El caso es que llegan a interponerse denuncias y aquí es donde entra el protocolo de actuación

Primero, deciden poner a disposición del juzgado el ordenador donde se ubica la información publicada, para que posteriormente sea el propio juzgado quien determine la designación de un perito para la revisión del ordenador. Por lo tanto hay que llevar el ordenador al juzgado.

La cuestión se complica dado que todos desconfían de todos y nadie quiere que se toque el ordenador.

Una de las tres partes y después de muchas llamadas de teléfono, visitas y demás, me pide que establezca un protocolo para 'mover' el ordenador al juzgado, previa validación y aceptación de las otras dos partes (cosa que me agrada, dado que aceptaron las tres este protocolo)

Particularmente no estoy muy ducho en leyes y normas pero utilice la técnica del 'sentido común'

Aquí teneis el protocolo, por si puede servir de ayuda.

Hasta aquí fue aceptado por las tres partes y por el juzgado. En siguientes post os diré cual será el siguiente paso y como acabara esta historia interminable...

martes, 24 de marzo de 2009

Detectando 'timestamp' (I)


Hola lectores,

Hablando con mis compañeros sobre hackers, troyanos y demás fauna vírica, nos surgío la duda de como el troyano 'conficker' es capaz de alterar (entre otras cosas) las propiedades de una carpeta o fichero.

Parece ser que este malware al igual que algunos hackers es capaz de modificar todos los atributos de un archivo o carpeta, como fechas de acceso, creación y escritura, con el objetivo de pasar desapercibido por parte del administrador o usuario del sistema infectado

De todas las cosas que este malware hace, hay una que me hizo pensar especialmente en una característica que tiene que ver en como funciona la estructura de disco y ficheros en windows.

TABLA MAESTRA DE FICHEROS - MTF

Por regla general los ficheros que se almacenan en disco con sistema de ficheros NTFS se registran en la tabla maestra de ficheros, comunmente conocida como MTF.

La MFT es, en esencia, una tabla de base de datos relacional, que contiene atributos sobre los diferentes archivos. Digamos que actúa como punto de inicio de un volumen NTFS - una especie de "tabla de contenidos". También sería análogo a la tabla de asignación de archivos en una partición FAT

Cuando cualquier archivo o directorio se crea en el volumen NTFS, se crea un registro dentro de la MFT.
El tamaño de cada registro en la MFT parece ser una cuestión de cierta controversia, por lo que yo he observado es que cada registro es igual al tamaño del clúster del volumen, siendo un mínimo de 1024 bytes y un máximo de 4096. Sin embargo, algunas fuentes dicen que el tamaño de cada MFT registro es fijo, ya sea en 1024 o 2048 bytes.

El sistema utiliza estos registros de MFT para almacenar información sobre el archivo o directorio, esta información es lo que entendemos como atributos.

Como no tengo ningún conficker (¡¡ ni lo quiero !!) me he propuesto ver si se puede saber si un fichero ha sido alterado en su atributo de fecha ( timestamp).

Para ello me he surtido de un conjunto de utilidades llamado 'FileOPS' (también se puede hacer con perl y powershell) que entre otras cosas permite cambiar el atributo de fechas de uno o varios ficheros, en la siguiente pantalla podemos ver como he modificado un fichero llamado 'CONFIDENCIAL.TXT y le he puesto que la fecha de acceso, modificación y creación pertenecen al 12 de febrero del 2010.

Por su puesto todas las operaciones que se realicen con este fichero tendrán como partida el año 2010, si un hacker o malware hubiera puesto las fechas de instalación del sistema operativo, hubiera pasado a simple vista desapercibido.

Para su comprobar el almacenamiento en el registro del MTF, voy abrir el disco con un editor hexadecimal, para ello voy a utilizar el programa 'HxD' que se puede descargar desde aquí (cualquier editor hexadecimal es valido).

Si nos fijamos en la siguiente pantalla y una vez posicionados en el $MTF (nombre reservado por windows para la tabla maestra de ficheros) vemos que la entrada 'a pelo' del fichero contiene la fecha original de cuando se creo, es decir el día 24 de Marzo de 2009, por lo tanto windows (MTF) si que almacena la fecha original del fichero, aunque por otro lado nos miente en su visualización.

Si esto mismo lo hacemos utilizando la herramienta forense por excelencia EnCase, vemos que en su lectura del MTF también detecta la fecha correcta y no la que se visualiza.

CONCLUSIONES

Como dijo una vez mi amigo Juanito (del diario de juanito), toda intrusión, todo roce, hasta un apreton de manos deja un rastro. En nuestro caso a Windows le ocurre lo mismo.

Al final realmente disponemos de las fechas originales en los registro MTF, el problema es que hay muy pocas herramientas forenses (de código abierto) que hagan una comparativa en un entorno 'vivo' o 'encendido'. Excepcionalmente este problema lo tiene solucionado las herramientas especificas y profesionales como EnCase que si se encargan de realizar este tipo de verificaciones.

En siguientes post veremos como automatizar este proceso y detectar las fechas originales de creación de un fichero. Para ello utilizaremos perl y PowerShell

jueves, 19 de marzo de 2009

Forensics WMIC: ¡¡ Este es mi Kung fu !!

Hola lectores,

En una empresa he tenido que automatizar varios servidores windows 2003 para realizar un análisis preventivo forense. El motivo no es otro más que estar prevenidos ante una intrusión en base a alertas y motorización.

Como partíamos de que la empresa quería algo rápido y no quiere productos en los que haya que invertir excesivo tiempo o dinero, les propuse utilizar Scripts con WMIC.

WMIC es un conjunto de extensiones perteneciente al modelo de drivers de Windows y que viene preinstalado en el sistema operativo. Es funcional a partir de Windows 2000 y esta presente en toda la gama superior.

Dispone de un set de utilidades en entorno gráfico, descargables desde aqui

La ventaja de WMIC es que se puede utilizar de una forma muy cómoda desde la linea de comandos o utilizando cualquier lenguaje de programación conocido. WMIC
es más intuitivo que WMI, en gran parte debido a los alias. Los alias son subcomandos que interactuan con el sistema operativo.

También es capaz de generar los resultados en distintos tipos de ficheros, entre ellos los más comunes, XLS, CSV, HTM, etc.

La base de su funcionamiento es la siguiente:

wmic [global_switch] [options] [format]

Mejor lo vemos con un ejemplo:

Si quiero sacar una lista de recursos compartidos en formato tabla pondríamos el siguiente comando:

wmic share list /format:table

Siendo este el resultado:



EMPEZAMOS

Entrando en el caso que nos ocupa, me propuse automatizar el proceso, desarrolle un simple (pero efectivo) script en BAT, que a diversas horas o en determinados eventos, el servidor ejecuta este script y que a su vez devuelve un resultado en HTML, quedando publicado en la intranet web.

La idea por supuesto es obtener información para posteriormente analizarla.

Básicamente este es el script, que por su puesto es mejorable y que también se podría haber realizado con otras utilidades como las 'pstools'.



Vamos a analizar algunas lineas de su contenido:

'Computersystem' y 'registry' muestran la información de la máquina y fecha de instalación del registro, nota muy importante para un timeline de análisis forense.

'Process' muestra los procesos y el ejecutable que lo contiene, si le añadimos 'creationdate' tendremos la fecha de creación del proceso

'Startup' enseñará las aplicaciones que se ejecutan automáticamente al inicio del sistema o inicio de sesión del usuario

'RDtoggle' indica si esta activado el acceso remoto por terminal server

'logon' y 'group' muestra los usuarios que han realizado 'login' y los grupos actualmente creados'

'job' las tareas programadas

'netlogin' y 'netuse' muestra los usuarios que han realizado login, pero le añado las fechas de incio y fin de sesión. También muy importante.

'nteventlog' me indica entre otras cosas la fecha de ultimo acceso y modificación de el fichero de eventos de seguridad, asi si esta activo o no.

'sysdriver' me permite ver que drivers están instalados, el path donde se encuentran y si estan activos o no, importante para la detección de rootkits.

Al final de todas las lineas estamos especificando que genere un fichero HTML que presenta el siguiente resultado y que se publica en la intranet










Bien, partiendo de esta información, ya podemos poner toda la imaginación al poder, ya que no solo podemos capturar información, si no que podemos interactuar con las aplicaciones que estén instaladas en los servidores, por ejemplo podemos finalizar un proceso con este comando:

wmic process where name="ashserv.exe" call terminate

O podemos iniciar una aplicación:

wmic process call create "C:\snort.exe"

O podemos especificar como queremos que se ejecute el antivirus

wmic service where caption="avast! Antivirus" call changestartmode "Disabled"

Si ademas de todo ello, lo combinamos con NETCAT o First Response de MANDIANT, podemos enviar los resultados a otro ordenador o dispositivo para su posterior análisis

CONCLUSIONES

Aunque es más práctico de utilizar scripts basados en vbscripts o Powershell y WMIC es algo complicado de comprender (y dado que no existe apenas documentación clara al respecto) a cambio, diré que es rápido y efectivo, no hay que instalar ningún producto, dado que interactua con el sistema y las aplicaciones instaladas, permite la ejecución remota y se exporta en multitud de formatos. En combinación con otras herramientas, como las de Sysinternals, se convierte en una potente utilidad.

También puede ser utilizado para auditar sistemas en los que no se nos permite instalar ningún software que no este aprobado por los administradores

viernes, 13 de marzo de 2009

¡¡ Atraco limpio a la memoria !!


Hola lectores.

Hace días atrás, dando un curso explique a los alumnos la manera de obtener los datos de la memoria de un equipo sin tocarlo ni acceder fisicamente a el.

Esto suscito muchas controversias a raíz de si es 'legal' de cara a una evidencia la forma de acceso y obtención de estos datos.

Este proceso que voy a explicar es solo una prueba de concepto ya publicada por la universidad de Michigan para obtener datos volatiles (netstat, variables, etc.) y en la que he añadido en mi caso la obtención de un volcado de memoria

También comentar que para la obtención de datos de la memoría debería de estar autorizado por el propietario de la máquina a la que se va a acceder.

POC

La prueba consiste en explotar una vulnerabilidad en una máquina y extraer el contenido de su memoria.

Para apoyarme en ese ejemplo reproduje lo siguiente:

He utilizado como víctima un Windows XP SP2 virtualizado (con vmware) y con el navegador IE7 abierto en una sesión de FaceBook. Este Windows tiene el defecto de no estar actualizado con el parche MS09-002 'Memory Corruption Exploit' clasificado como crítico por Microsoft. Para más información en la web de Microsoft aquí.

En la máquina atacante he utilizado Metasploit y la utilidad MDD.exe de Mantech (Podría haber seleccionado cualquiera de las existentes). Está utilidad esta liberada bajo licencia GPL y permite obtener volcados de memoria a disco con los sistemas operativos Windows 2000, Windows XP, Windows 2003 Server y Windows 2008 Server.

Metasploit es un proyecto open source de seguridad informática que proporciona información acerca de vulnerabilidades de seguridad y ayuda en tests de penetración y en el desarrollo de firmas para Sistemas de Detección de Intrusos. Su subproyecto más conocido es el Metasploit Framework, una herramienta para desarrollar y ejecutar exploits contra una máquina remota

Los pasos que he seguido son los siguientes:

Primero he ejecutado el framework de metasploit utilizando mertepreter.

El meterpreter es un conjunto de plugins avanzados que tienen como característica fundamental su que todo es cargado en la memoria del sistema sin crear ningún proceso adicional y permite la inyección dinámica de dll’s.

En este caso y dando por sentado que sabeis manejarse con Metasploit, solo hay que seleccionar el payload de la familia meterpreter y en caso necesario modificar las opciones del payload elegido.

Para el curso y su práctica he utilizado una simple shell (windows/meterpreter/shell_reverse_tcp).

Una vez seleccionado lo lanzamos con este resultado...


Despues de lanzar el exploit y recibir la conexión reversa, nos limitamos ha subir el fichero MDD.exe al equipo de la vitima



Luego ejecutamos el MDD.EXE y creamos una copia de la memoria al fichero copiadeldisco.dd



Por último nos descargamos a nuestra máquina el fichero resultante



Como se puede apreciar el proceso es sencillo e ilegal si no disponemos del consentimiento del usuario. La acción por el uso de Metasploit(u otra herramienta de hacking) es ilegal y penada por nuestras leyes (España) desde el punto de vista que 'atacamos' una máquina que no es de nuestra propiedad.

En la prueba indicar que el uso de Metasploit puede dejar (cosa que en mi caso no ocurrio) la memoria corrupta o la máquina en un estado 'variablemente raro' por lo que se recomienda el reinicio de esta.

Una vez disponemos del fichero podemos analizarlo tal y como comente en los post anteriores con las distintas herramientas de analisis de memoria como por ejemplo del framework volatility

lunes, 9 de marzo de 2009

Videos de las demos del Asegur@it

Hola lectores,

He puesto las demos en formato vídeo, de la ultima conferencia en la que estuve como ponente. Estoy hablando del ultimo asegur@it que se realizó en Zaragoza y que fue organizado por Microsoft e Informática64.

En estas charlas mostré las siguientes demos:

1.- Análisis forense utilizando las utilidades de memparser

Convertida en herramienta comercial (y también disponible en formato OpenSource), es hoy por hoy, una de las utilidades más impresionantes para el análisis de ficheros de volcado de memoria.

Entre sus cualidades destaca la posibilidad de extraer un ejecutable de un 'dump' de memoria a disco.

Analisis de memoria



2.- Análisis de malware con el honeypot ULISES.

Ulises es una herramienta diseñada y escrita (y ahora renovada) hace tiempo por este humilde servidor. Hace un año empece a desarrollarla en visual C++ y como características os diré que se basa en las api's VIX de VMWARE.

Esta aplicación permite de forma automatizada lanzar conexiones a aplicaciones web; Si las aplicaciones estuvieran infectadas con algún tipo de malware se descargarían a la máquina virtual y esta a su vez utiliza un rootkit (benigno) que registra las acciones de este malware, de forma que se sabría que acciones hace el programa maligno y de esta forma analizarlo.

Es una utilidad pensada para ISP's o empresas con un numero alto de dominios a proteger

La versión completa la publicare en el Spanish Honeynet Project

http://www.honeynet.org.es/es/

Ejemplo del funcionamiento del rootkit



Automatización en la búsqueda de malware

Regripper en acción

Como complemento a la entrada escrita por Javi en su blog de neosysforensics os quiero aportar tambien mi experiencia en la utilización de esta herramienta.

Hace muchos, muchos años atrás, asistí a un curso de SANS en EEUU en el que actuaba como ponente una de las personas que más ha marcado mi profesión. Estoy hablando de Harlan Carvey.

Harlan Carvey es un profesional de la seguridad que con sus experiencias y conocimientos ha ocupado un puesto privilegiado en este sector de analisis forense informático y respuesta ante incidentes.

Harlan, me pareció una persona de apariencia reservada y con unas ganas de enseñar increíbles, la forma con la que expone es muy sencilla y llega a todos los publicos.

Harlan actualmente trabaja para IBM pero su experiencia es tan larga que no cabria en este post. Como reseña decir que es el autor del libro "Windows Forensic Analysis" y también autor de 'regripper' una utilisima herramienta diseñada en Perl para el análisis del registro de Windows y que he utilizado múltiples veces con resultados excepcionales.

De esta herramienta quiero hablar ya que es otra de las indispensables en nuestra caja de herramientas.

Repasando lo que escribi en este anterior post, recordamos que los ficheros que aparecen en \windows\system32\config, son
  1. Default
  2. Sam
  3. Security
  4. software
  5. System
Estos ficheros, aparte del “ntuser.dat”, son denominados ficheros hive, es decir, ficheros en los que se acumula la información del registro en forma de cadenas, claves y valores. Todos estos ficheros son guardados regularmente durante el apagado del sistema, salvando la configuración del registro de la máquina.

Precisamente una de las causas más comunes que nos impidan arrancar nuestro sistema, es la corrupción de estos ficheros hive; por diversas causas, tales como un fallo hardware, cortes de alimentación, etc.

Tambien en un analisis forense es de obligado repaso el analizar estos ficheros ya que nos puede determinar una intrusión, fuga de información o ataques por troyanos.


¡¡REGRIPPER EN ACCION!!

RegRipper es una herramienta que se puede llevar en un Pendrive y que permite abrir secciones de registro y analizarlas, dando como resultado un fichero de texto. Se puede descargar desde la web 'http://regripper.net/'

Como sabemos, los ficheros del registro están bloqueados en una sesión normal, y deberemos de copiar los ficheros o ejecutar RegRipper desde un live-cd.

Usar RegRipper es fácil. Tras ejecutar la interfaz gráfica, tienes que elegir primero el fichero de registro. Luego, tras especificar la ruta de guardado del informe y el tipo de plugin adecuado, el botón Rip It comenzará la lectura.

Vamos a ver algún ejemplo tras copiar con HELIX3 de un Windows 2003 Server los ficheros 'hive' SAM, SYSTEM y SOFTWARE y tras ejecutar Regripper el resultado que nos ofrece.



En esta pantalla nos da información relativa a la máquina, versiones del SO y licencias:



En esta siguiente aparece las aplicaciones que tiene instalado el sistema operativo:



En esta otra nos muestra los perfiles que están creados y como algo muy importante las fechas de ultima modificación, punto interesante para nuestra 'time line':



Ni que decir tiene que podemos obtener información de sus direcciones IP's y los dispositivos que se conetarón por USB:





También es muy util el 'plugin' SAM ya que nos desvelará los usuarios que estan creados en el sistema.



Futuro:

O mejor dicho presente, ahora, gracias a Brendan Dolan-Gavitt's, regripper se puede utilizar dentro del framework de Volatility y poder lanzarlo contra una imagen de memoria. Desde aquí podemos ver algún ejemplo.

También de momento solo se puede utilizar desde en línea de comandos y solo parece funcionar en Linux

Conclusiones:

RegRipper es un programa apto pensado para usuarios avanzados, quienes valorarán su función de análisis rápido. Si bien se limita a la lectura e interpretación por parte del analista, su uso requiere extremar precauciones y, sobre todo, conocer la ruta de los ficheros a analizar.

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" ...