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, 22 de mayo de 2009

Mapas de memoria

Hola lectores,

Hace tiempo en este post hable de como parsear la memoria y poder obtener datos de ella, en ese post finalizaba indicando que es posible tracear la memoria y obtener un mapa-dibujo detallado para seguimiento de esta.

Hoy quiero compartir otra de las utilidades que nos puede venir estupendo para poder 'dibujar' esos procesos de una forma cómoda.

PTFINDER

Las PTFinder son un conjunto de utilidades en perl desarrolladas por Andreas Schuster y que como dije anteriormente permite obtener los procesos de memoria y convertirlos o 'dibujarlos' a un fichero con formato JPG o GIF

Esta herramienta permite obtener y dibujar:

  • PID del proceso.
  • Nombre del ejecutable.
  • Offset dentro del fichero.
  • Fecha y hora de fin de ejecución del proceso

Antes de explicar su funcionamiento deberemos de disponer las siguientes herramientas:

Primero deberemos de disponer un volcado de memoria en formato dd, dmp o vmram (vmware). En mi caso dispongo del fichero '2K3FURootkit.dmp' y que pódeis descargar desde aquí para vuestro disfrute.

Este fichero contiene la imagen de la memoria RAM de un Windows 2003 con el rootkit FU corriendo y creando procesos en la memoria.

Segundo, deberemos de tener instalado Graphviz.

Graphviz es una aplicación que es capaz de representar información estructural como diagramas y gráficos de resumen redes.

Tercero, deberemos de disponer de las herramientas PTFinder disponibles desde aquí y un interprete en PERL como el de ActiveState para Windows

¿Como funciona?

El proceso es muy sencillo, como primer ejemplo vamos a ver como obtener los procesos de memoria, para ello pondremos el siguiente comando:

c:\Perl\bin\perl c:\forensics\ptfinder_w2003.pl --nothreads c:\forensics\2K3FURootkit.DMP

El cual nos mostrará la siguiente pantalla:


Procesos que había iniciados en el sistema operativo

En segundo paso vamos a 'pintar' estos procesos con el siguiente comando:

c:\forensics\ptfinder_w2003.plptfinder_w2003.pl --nothreads --dotfile Mifichero.dot 2K3FURootkit.DMP

(mifichero.dot es creado por ptfinder con el parámetro --dotfile. Este fichero .DOT contiene los parámetros de imagen, entre ellos la posición, altura, textos y dimensiones de las imágenes)


En tercer paso vamos a cargar el fichero 'Mifichero.dot' en la aplicación Graphwiz para convertirlo en una imagen con extensión JPG.



Una vez ejecutado este es el resultado:




Pantalla ampliada

Como se puede apreciar en la gráfica se hace un seguimiento de la ejecución de los procesos.

Conclusiones.

las PTFinder son un buen conjunto de herramientas que si bien dejan el análisis y la investigación a decisión del analista, permiten ayudar de una forma gráfica a ver los vínculos entre procesos y aplicaciones e inclusive permite de una forma sencilla analizar intrusiones, exploits y malware.

Referencias:

Paper
Presentación
Neoforensics

El paper y la presentación son publicados por Andreas Schuster

jueves, 21 de mayo de 2009

¡¡OLE !! tus metadatos...

En alguna de mis charlas muestro una curiosa herramienta que viene a ser algo parecido a ofuscar u ocultar información, podríamos decir que es una herramienta 'antiforensics' y que consiste en lo siguiente:

MergeStreams

Esta utilidad está disponible desde NTkernel.com e implementa un aspecto interesante de como se tratan los objetos OLE en documentos Microsoft Office, la idea es 'mezclar' o combinar una hoja de cálculo en un documento Word.

El uso es muy sencillo, dispone de una GUI que permite seleccionar el documento word y la hoja excel y a partir de estos datos en el propio documento word mezcla la hoja de cálculo.



El resultado es el mismo documento word.

Una vez meclado, comprobamos que:


  • El tamaño en disco del documento Word no ha variado y sigue siendo el mismo
  • Si abrimos el documento, vemos que el contenido es idéntico al original (no aparece nada de hoja de cálculo)
  • La cadena HASH si que ha cambiado, por lo que sabemos que ha habido modificaciones



A continuación vamos a ver la funcionalidad de MergeStreams:

1.- Eliminamos la hoja de cálculo que hemos utilizado para 'mezclar' (este paso no es necesario)


2.- Seleccionamos el documento 'DocumentoWord.doc' y lo renombramos a XLS 'DocumentoWord.xls'


3.- Abrimos el documento y vemos que se trata de una hoja de cálculo.















Si volvemos a renombrar a .DOC, podremos comprobar que sigue siendo un documento Word.

Esta utilidad demuestra un aspecto importante en el ámbito de la ofuscación o de fuga de información, dado que de esta forma te puedes llevar un documento u hoja de cálculo importante sin que nadie lo advierta.

¿Como lo detectamos?

La siguiente cuestión es como podemos saber de estos metadatos, para ello vamos a utilizar diversas utilidades entre ellas la del maligno en su web de FOCA Online, la de LibExtractor y una utilidad en local llamada TrID que permite la identificación de ficheros.

Estos son los resultados:



Vagamente TrID identifica que hay un componente MULTISTREAM (29%) embebido dentro del documento Word, pero no es capaz de mostrar de que tipo es, las demas herramientas no identifican el objeto OLE.

Para poder identificar este tipo de objetos suelo utilizar dos herramientas en local, una es 'oledmp.pl' de Harlan Carvey realizada en Perl y que permite ver los metadatos de objetos OLE. La otra quizas más sencilla y orientada al mundo Windows es OLEDeconstructor de SandersonsForensics

Aquí tenemos un resultado final de como identifica los objetos con OLEDeconstructor de nuestro fichero de ejemplo



Conclusiones:

Parece ser que el mundo de los documentos se ha construido a base de metadatos y lo mejor de todo es que no sabemos la información que se almacena o puede ser guardada de forma intencionada o no por un usuario (o automáticamente por la aplicación que lo genera. )
Herramientas como FOCA, Metagoolfied o libextractor, ayudan y permiten ver ese tipo de información, pero aun queda largo camino.

En un caso intencionado de 'antiforensics' (y pongo de ejemplo MergeStreams en este post) dudo mucho que la tecnología actual (antivirus, IDS's) detecte este tipo de fugas de información, salvo que sea por un avezado analista que tras una sospecha se dedique a analizar este tipo de ficheros.

Quizas para el 'malo' lo sencillo sea cifrar el fichero o utilizar esteganografía y de esta forma dificultar o imposibilitar el trabajo del analista

No obstante aquí queda esta información para el disfrute de todos y con lo visto hoy me planteo la siguiente pregunta que dejare para el pensamiento de los lectores:

¿Si hubiera incluido un virus de macro en la hoja de cálculo y la hubiera mezclado con el documento, lo detectarían los antivirus?

Eso es todo lectores ;-)

lunes, 18 de mayo de 2009

Curso de Análisis Forense para profesionales!!



Hola lectores,

El próximo Lunes empezamos (de nuevo) otra edición del curso de análisis forense informático. Como en otras ocasiones está pensado para responsables y técnicos de seguridad informática, para auditores de seguridad, responsables de sistemas, IT Pros y amantes de la seguridad informática.

En esta edición de 15 horas de duración, además del curso en si, veremos las últimas técnicas para la resolución de incidentes (Análisis de dispositivos móviles, memoria ram, BIOS, Registro de Windows, etc)

También combinare el curso con algunos invitados especiales para que nos 'ilustren' con una ponencia cada uno,en este arte del análisis forense.

Entre los invitados están:

  • Eduardo Abril que nos hablara de como implantar OSSEC en un entorno forense
  • Domingo Cardona que nos contará que es y como se monta un centro de respuesta ante incidentes
  • Florin Baras que nos hablará de Malware con Bitdefender

¡¡ No te lo pierdas !!, es barato y subvencionado por Caja Inmaculada

Más información aquí.

jueves, 7 de mayo de 2009

Otros ficheros

Hola lectores,

El otro día me encontré con la necesidad de saber si un ordenador había utilizado un PENDRIVE con objeto de una posible fuga de información.

Al parecer alguien había 'sustraido' información valiosa por medio de un disco extraible.

En todas las empresas hoy por hoy, podemos sufrir por este tipo de 'fuga de información' ya que es muy simple y al alcance de cualquiera el poder introducir en la empresa un 'pendrive' y llevarse datos y ficheros. Las soluciones actuales o son muy caras económicamente o hay que administrar con cuidado determinadas políticas de seguridad.

En el mundo de windows disponemos de Active Directory y sus GPO. En el caso de Linux es más complejo y hay que activar/desactivar a nivel de módulo el dispositivo de 'pendrive' por usb

Aun con todo, por muy robustas que sean las políticas de seguridad en una empresa, siempre esta 'el malo malisimo' que intentará obtener la información de la forma y el precio que sea (siempre que esta lo valga)

Otras formas de obtener información son muy variadas, desde mandarla por correo, hasta hacer una foto con el móvil.

DETECTANDO UN PENDRIVE POR USB

Aun sabiendo que hay muchas herramientas que permiten detectar por las entradas del registro si se ha conectado un disco o dispositivo, hay una alternativa mas que no hay que dejar pasar por alto. Estos son los archivos de registro de windows (que no el registro)

Los archivos de registro de la instalación de Windows están en distintas ubicaciones del disco duro. Estas ubicaciones dependen de la fase de instalación, post-instalación y configuración y se puede obtener muchísima información de los ficheros de 'log's' que genera.

En windows disponemos de estos ficheros:

C:\WINDOWS\PANTHER\setupact.logContiene información acerca de las acciones de instalación durante la instalación.
C:\WINDOWS\PANTHER\setuperr.logContiene información acerca de los errores de instalación durante la instalación.
C:\WINDOWS\PANTHER\miglog.xmlContiene información acerca de la estructura de directorios del usuario. Esta información incluye los identificadores de seguridad (SID).
C:\WINDOWS\INF\setupapi.dev.logContiene información acerca de los dispositivos Plug and Play y la instalación de controladores.
C:\WINDOWS\INF\setupapi.app.logContiene información acerca de la instalación de aplicaciones.
C:\WINDOWS\Panther\PostGatherPnPList.logContiene información acerca de la captura de dispositivos que están en el sistema después de la fase de configuración con conexión.
C:\WINDOWS\Panther\PreGatherPnPList.logContiene información acerca de la captura inicial de dispositivos que están en el sistema durante la fase de nivel inferior.

Yo particularmente voy a centrarme en el siguiente fichero:

SETUPAPI.LOG

Setupapi.log es un archivo de texto que contiene datos interesantes sobre las instalaciones. Entre otras puede contener los números de serie de los dispositivos conectados a la máquina Windows. Es decir se puede saber a que hora se introdujo y extrajo un dispositivo como un pendrive

Con este fichero podemos saber la fecha y hora que un dispositivo ha estado conectado al ordenador durante la instalación del sistema operativo o conectado en una fase posterior.

Normalmente en XP se haya en '%windir%'. y en vista en '%windir%\INF'

Vista tiene dos ficheros similares setupapi.app.log y setupapi.dev.log que también se encuentra en '%windir%\INF'.

Para saber como se interpreta el fichero disponemos de esta tabla de información

Message IDMessage Type
#EnnnError message.
#WnnnWarning message.
#InnnInformational message.
#TnnnTiming message.
#VnnnVerbose message.
#-nnnStatus message.

Y aquí tenéis unos pantallazos de 'evidencia'









En la anterior pantalla podemos deducir que el ordenador no tuvo actividad entre las 00:40 y las 07:43

En la siguiente pantalla vemos el ultimo tipo de conexión y que nombre tenia predeterminado en la máquina en su conexión de red.







Por último podemos ver cuando fue la ultima vez que alguien conecto un dispositivo USB






CONCLUSIONES:

No es que sea de lo más importante, ya que como dije, existen multitud de herramientas que pueden ayudar sobre este tema, pero tampoco viene mal saber que existen estos ficheros que como todo en la vida, pueden ayudar, y en este caso windows nos deja un rastro que nos puede esclarecer un poco más la actividad de un ordenador.

Analisis Forense - Motorola (III)

Hola lectores,

Hoy concluimos la ultima parte de los post's sobre análisis forense a un móvil motorola.

Hoy vamos a ver como obtener la agenda, registro de llamadas y SMS's por medio de comandos AT y todo con una utilidad gráfica P2Ktools.

Los motorolas permiten ser 'interrogados' por medio de una conexión que utilice los puertos COM, es decir podría valer una conexión con Hiperterminal para poder acceder a los datos del teléfono.

En nuestro caso vamos a utilizar el componente de Hyperterminal que dispone la utilidad P2Ktools.

LLAMADAS

En el siguiente vídeo comprobamos como se ven las llamadas entrantes y salientes desde el entorno gráfico para a continuación poner el móvil en modo FLASH y actuar con los comandos AT.

Los comandos y su explicación son los siguientes:

  • at+cpbs=? // Consulta los modos que dispone el móvil
  • at+cpbs=mt // Pone el móvil en modo mixto
  • at+cpbr=? // Muestra el tamaño de registros del índice
  • at+cpbr=1 // Muestra el primer registro de llamadas
  • at+cpbr=1,100 // Muestra las 100 primeras entradas de llamadas



SMS's

Para la lectura de los SMS's

  • at+cmgf=1 // Pone el móvil en modo texto
  • at+cmgl=? // Muestra los modos en que se puede consultar el móvil
  • at+cmgl="STO SENT" // Lista los SMS's envíados



Los SMS's pueden contener los siguientes parámetros:

  1. "REC UNREAD", Mensajes recibidos sin leer o nuevos mensajes
  2. "REC READ", Mensajes leidos.
  3. "STO UNSENT", Mensajes en la bandeja de salida.
  4. "STO SENT", Mensajes enviados.
  5. "ALL", Todos los mensajes.

CONCLUSIONES

Los móviles como cualquier otro sistema operativo, contienen una cantidad de información que también puede ser analizada con herramientas o bien propietarias de la marca y modelo o por otro lado con utilidades de fácil acceso.

Me dejo intencionadamente (por tiempo) otros parámetros de búsqueda, que son muy interesantes como ficheros PIN, temporales o archivos que revelan por donde se navego con el teléfono. Puntos interesantes pero que desvelaremos en próximos post con otros modelos y sistema operativo diferente al motorola.

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