Mostrando entradas con la etiqueta análisis forense. Mostrar todas las entradas
Mostrando entradas con la etiqueta análisis forense. Mostrar todas las entradas

22 junio 2016

Evolve: una GUI web para Volatility





Una de las primeras tareas que hay que llevar a cabo al atender un incidente de seguridad en un sistema, es adquirir el contenido de la memoria RAM. Para ello, podemos utilizar herramientas como Dumpit o Ram capture. Si utilizamos la suite de herramientas para Windows que vienen en WIN-UFO, dentro de la distribución CAINE, en su formato Live (ya sea USB o CD), además contamos con una de las herramientas favoritas de cualquier analista forense: FTK Imager Lite.

Tan complejo que puede llegar a ser la adquisición de la memoria en Linux, y tan sencillo que se hace con FTK, en entornos Windows. Le damos a un botón y se extrae un dump de la memoria en un fichero.

A partir de ahora, toca trabajo de análisis en laboratorio y a destripar la imagen con una de las mejores herramientas que hay: Volatility.

Para ello, toca pasarle como parámetro a este script hecho en python, la imagen de memoria adquirida, el perfil que indicará el sistema operativo al que pertenece el dump, así como el comando o el script que queramos ejecutar sobre la memoria. 

En esta línea, una ejecución válida sería: "python vol.py pslist -f fichero.mem —profile Win2008R2SP1x64” que nos devolvería la lista de procesos que tenía en ejecución la máquina cuando le copiamos "el cerebro”. Volatility, al estar hecho en Python, permite ser ejecutado en multiplataforma, pero siempre bajo una línea de comandos. Esto está bien, en algunos casos, pero cuando requieres trabajo en grupo, o poder procesar varios scripts sobre una misma imagen, puede ser interesante contar con una interfaz web que permita preprocesar ciertos scripts sobre la imagen adquirida, así como mostrar y almacenar los resultados. 

Aquí es cuando llega, al fin, Evolve.

Su instalación y ejecución no puede ser más sencilla:

git clone https://github.com/JamesHabben/evolve
cd evolve
python setup.py install

Para determinados plugins es necesario disponer de ciertas librerías: 

pip install bottle
pip install yara
pip install distorm3
pip install maxminddb

En el caso de mi instalación, en una distribución CAINE 7, además tuve que ejecutar pip install distorm3 —upgrade

La ejecución de Evolve, necesita varios parámetros. Entre otros, el fichero con el volcado de memoria a analizar, el perfil de Volatility correspondiente a la versión de sistema operativo al que corresponde la memoria analizada, así como el puerto en el que escuchará el servidor web por el que se publicará la información analizada de la memoria.  

 python evolve.py -w 8000 -f /opt/imagen.mem —profile Win2008R2SP1x64 


Si nos conectamos vía web a dicho servicio se nos muestra algo como lo siguiente:



En el panel de la izquierda se puede ver la posibilidad de ejecución de los diferentes plugins, que según se va terminando su ejecución el botón se transforma de run a show. 

La información procesada queda en el mismo directorio donde se encuentra el dump de memoria, en un fichero con formato SQLite, en el que se genera una tabla por cada plugin ejecutado.

sqlite> .tables
AmCache   AtomScan  Auditpol  CmdScan   PSList    PSTree    YaraScan ApiHooks  Atoms  BigPools  Cmdline   PSScan    VerInfo 

Como digo, una herramienta más o incluso una ayuda para hacer más visual el resultado que interpreta una herramienta. Sin embargo, el trabajo real lo tiene que hacer el ojo y mente humanas, que son las que realmente entienden lo que ven.


Leer más...

01 abril 2016

Análisis forense: Lo que había, lo que hay,... y lo que habrá

El mundo del peritaje forense ha cambiado mucho en estos años. Todavía recuerdo cuando en los primeros juicios a los que me presentaba comentaba en el informe que las evidencias se habían extraído con un Helix y marcaba la integridad de las evidencias con MD5. Por aquel entonces no había mucho escrito sobre forense, y era muy complicado explicar las cosas a alto nivel.

Después, y como todo en esta profesión, se fue actualizando más y más el campo del peritaje hasta el día de hoy, en el que existen numerosas herramientas, procedimientos y aproximaciones para extraer una evidencia.

Y aquí es donde surgen nuevos problemas. Ya no vale con marcar las evidencias con MD5, porque tanto jueces como abogados te pueden tirar las mismas alegando colisiones. Con las herramientas pasa un poco lo mismo. Personalmente he visto cómo en determinados juicios, se han tirado evidencias porque han logrado demostrar que la solución utilizada para la extracción de las mismas no lo hacía correctamente.

Del peritaje forense nació el contra-peritaje, que consiste básicamente en desmontar – de una manera técnica y a bajo nivel– las evidencias presentadas en un caso. Y para desmontar las evidencias no suele valer un “Le pasamos esta herramienta gratuita y como podéis comprobar….”, porque en ciertos escenarios, esa evidencia no valdrá nada ante un abogado que realmente sepa de lo que está hablando.

Cualquier perito decente os recomendará sin duda la utilización de herramientas como Encase o FTK, y no porque sean más o menos caras, sino porque en determinados escenarios, gracias a la mera utilización de la misma tendréis el caso ganado. Pensad por un momento un caso en donde tengáis que extraer información de determinados ficheros alojados en un disco duro con un sistema operativo de cualquier tipo, en el que no sólo residen esos ficheros, sino que también se encontrarán ficheros de carácter personal como fotografías o vídeos.

Gracias a estas herramientas y/o frameworks, los peritos se pueden concentrar en la búsqueda sin importar el tipo de dato que se encuentre en el sistema operativo. Más de un caso se ha caído debido a que en la búsqueda de esa información, el perito se topó con directorios que se encontraban fuera del ámbito de actuación y que no debería ver y/o analizar.

Hay que aplicar la medida justa para extraer la evidencia, ni más, ni menos. El conocimiento del entorno tanto a alto como a bajo nivel, así como la elección – o la fabricación - de la herramienta determinarán una buena actuación, amén de la profesionalidad del perito a la hora de llevar el caso. Porque no olvidéis que os citarán como experto en la materia.

También es importante tener amigos. En este caso, y dado la fragilidad de este campo, se recomienda que los peritos pertenezcan a algún tipo de asociación. Y por asociación quiero decir algo serio que resuelva las dudas puntuales que pueda tener un profesional. Para el caso que nos ocupa, y aquí en España tenemos ANCITE, que brinda muchos servicios y ayudas a los profesionales que día a día se enfrentan a juicios.

Y después tenéis a gente como Pedro Sánchez, Lorenzo Martínez o un servidor para echaros un cable siempre que lo necesitéis y esté dentro de nuestra mano. Como sabéis, Securízame organiza todos los años un curso de análisis forense para profesionales del sector. Gracias a estos cursos se han podido ver y estudiar escenarios nunca vistos como por ejemplo análisis de servicios basados en SQL Server, Exchange o Active Directory, por citar algunos en los que he sido invitado como profesor.

Como cada año, y anticipándonos a nuevos escenarios, el curso de este año está liderado por grandes profesionales del sector como por ejemplo Sergi Alvarez (@trufae), el cual es uno de los desarrolladores principales de radare, herramienta ampliamente utilizada en forenses de tipo avanzado y en donde se requiere un nivel de detalle importante en cuando a la presentación de evidencias.

También estará José Antonio Guasch (@secbydefault), el cual es uno de los editores de este humilde blog y reconocido profesional que ha sido invitado por Securizame para hablar a bajo nivel de navegadores, así como las buenas prácticas a la hora de montar un laboratorio forense, junto con Lorenzo Martínez (@lawwait).

El incombustible Pedro Sánchez (@conexioninversa) participará esta vez enseñándonos todo lo relacionado con Incident Response, disciplina que cada vez más se está demandando en clientes finales.

El gran Toni de la Fuente (@ToniBlyx) ha sido invitado para que nos enseñe cómo enfrentarnos a casos forenses en donde la información resida en la nube, algo que ya forma parte de nuestra rutina diaria.

La parte de Yago (@YJesus), editor también de este blog y creador de herramientas como unhide, es la de Backdooring, ocultación y búsqueda de tramas, no sólo en el sistema, sino también en red.

Por mi parte (@tr1ana) yo he sido invitado para dar la parte de OS en Windows. Pero no me voy a centrar este año en registro o ficheros. Este año toca centrarnos en servicios como Cortana (Sí, Cortana!), la interfaz Metro o la integración de aplicaciones con el escritorio. También dedicaré un apartado especial al análisis de memoria RAM, pero esta vez Volatility se quedará en el cajón y lo haremos mediante herramientas nativas de Microsoft, como son WinDBG o SysInternals.

En la URL del curso tenéis tanto el temario como horarios y profesores implicados en el mismo. Por mi parte, deciros que os veo en unas semanas para seguir explorando esta maravillosa disciplina.


Juan Garrido
MVP Enterprise Security
Leer más...

21 marzo 2016

Security Onion: Distribución GNU/Linux para análisis de red




Muchas veces nos toca analizar el tráfico de red intercambiado entre una máquina e Internet, o incluso comprobar si un equipo tiene alguna variedad de malware que lleve a cabo actividad de red, ya sea para atacar a otras máquinas o para comunicarse con el C&C de una botnet.

En esas situaciones, o simplemente en un despliegue preventivo de sondas IDS, la distribución Linux opensource Security Onion,  de la que hablo en este post, puede servir de gran utilidad. 

Básicamente, incorpora de forma preinstalada, diversas herramientas ampliamente conocidas, un IDS como Snort y/o Suricata (nos da a elegir qué herramienta deseamos usar), GUIs para monitorizar los eventos de forma automática (Squert, Sguil), herramientas específicas para análisis de PCAPs (Wireshark, NetworkMiner) y herramientas populares de análisis forense de red como (BroXplico). De algunas de ellas hemos hablado ampliamente en SbD en vidas pasadas.



En muchas ocasiones, pensamos que puede resultarnos interesante montar y elegir qué herramientas queremos habilitar para nuestro despliegue de sondas, y generalmente cuando me preguntan o en diversas formaciones, recomiendo hacer siempre una instalación mínima e instalar las herramientas justas y necesarias para cada caso. 

Sin embargo, a veces la configuración de determinadas herramientas como Bro, o la integración con PF_RING, para entornos de grandes necesidades de tráfico, pueden resultar problemáticas, y se agradece tener un punto de partida desde el cuál empezar con varias herramientas ya integradas, pudiendo deshabilitar aquello que no nos interese, dejando el resto.

En estos casos, es cuando Security Onion me ha resultado de gran utilidad, puesto que en pocos minutos ya trae todo lo necesario y con un único wizard se configura la mayoría de los productos. 


Está basada en Ubuntu y viene con entorno gráfico, así como varias herramientas que se pueden gestionar vía web. 

Una de las herramientas más interesantes que trae es ELSA (Enterprise Log Search and Archive), que permite hacer la vida cómoda al analista, de forma gráfica, cuando tiene que interactuar con Bro.


Con esta solución, se puede llegar a hacer un buen NSM (o sistema de gestión de red) permitiendo configurar un nodo como servidor y el resto como sondas, de manera que se pueda consultar toda la información recopilada desde un mismo punto centralizado.   

Por buscarle una pega, en la última versión de Security Onion, han eliminado de la lista de herramientas una de las interfaces para Snort que más me gustan, que es Snorby. Aun así, supongo que puede seguirse instalando manualmente.

Y si ya tengo un despliegue de sondas hecho, pero me interesan algunas de Security Onion ¿Qué hago?

Bueno pues otra de las ventajas que tiene Security Onion, es que no es necesario que instales la distribución entera y partas de ella, sino que puedes incorporar únicamente los repositorios al sources.list de otra distribución basada en Debian/Ubuntu e instales aquellos paquetes que te interesan, o todos juntos.

Para el nuevo curso de Análisis Forense Digital en Profundidad que vamos a dar en Securízame, en el módulo I, en la parte en la que daré pautas sobre cómo construir un Laboratorio Forense, demostraré cómo incorporar y configurar las herramientas de Security Onion en una distribución específica para forense como es Caine, de la que ya hemos hablado en SbD.

Bajo estas líneas, os dejo una lista de videos de Security Onion, en el que hay un How-to de cómo hacer la instalación, configuración y parte de la operación. 


Leer más...

04 noviembre 2014

Moloch, el wireshark via web de AOL para forenses de red

No es la primera vez que una de las compañías grandes publica una herramienta que, al parecer lleva utilizando durante mucho tiempo, y que posteriormente deja a disposición de todo el mundo.

Hoy os hablamos de Moloch, herramienta via web para análisis de tráfico de red (open source), que nos llega por parte del gigante de las telecomunicaciones, AOL.


A grandes rasgos, ¿qué nos aporta frente al conocido por todos Wireshark?

  • Se utiliza y gestiona vía web
  • Está muy enfocado al análisis forense, por lo que hay disponibles plugins muy concretos para dichos menesteres (como por ejemplo, Geolocalización de tramas, reglas de Yara...)
  • Facilidad para la búsqueda e indexado de información dentro de las capturas de red
  • Posibilidad de crear GUIs propias debido a que hay disponible una API para todo el mostrado de información
  • Para el análisis en tiempo real, es posible disponer de una arquitectura distribuida sobre la que mantener sus componentes (bases de datos, indexados, visor de eventos...) y almacenar capturas de tráfico para su posible investigación futura.
Sobre los componentes de esta herramienta, tendremos los siguientes:
  1. capture - el elemento (escrito en C) que nos permitirá capturar tráfico directamente desde la fuente por cada interfaz de red de la que nos interese obtener información.
  2. viewer - aplicación en node.js que se ejecuta por cada máquina en red y que mantiene la interfaz web y la transferencia de ficheros PCAP.
  3. elasticsearch - tecnología de base de datos que nos facilitará la tarea de búsqueda de información.
Ejemplo simple de arquitectura para Moloch

Interfaz de la versión 0.8.0 de Moloch

Gracias a la interfaz, tendremos diferentes visualizaciones que nos facilitarán la tarea en la investigación, como es el caso del modo "Connections", el cual mediante un grafo nos visualizará relaciones entre los elementos involucrados, o el visor "SPI View" con el que podemos filtrar la información en base a multitud de criterios y elementos procesados.

Visualizador de conexiones según búsqueda realizada en base de datos de tráfico en Moloch

Vista SPI con filtrado e indexado de información almacenada en capturas de tráfico

Sin duda una herramienta a tener en cuenta, que nos permitirá llevar el análisis de tráfico a un nuevo nivel, y nos dará más visibilidad en nuestras tareas diarias en las que necesitemos investigar actividad de red de una manera ágil e intuitiva.

Si quieres probar la herramienta de manera online a modo de demo, podrás acceder a la siguiente URL:
utilizando moloch/moloch como credenciales.

Leer más...

02 enero 2014

Curso de Análisis Forense Digital en profundidad





En 2013, Pedro Sánchez de Conexión Inversa, Juan Garrido y yo impartimos dos ediciones de cursos presenciales de Análisis Forense para INTECO en León. Por otra parte, también el año pasado, participé como profesor en el curso online de especialización en seguridad informática para Ciberdefensa organizado por Criptored. Ambas experiencias, unidas a la multitud de correos que me enviáis y/o que me preguntáis en los diferentes eventos a los que asisto, me dio que pensar que estaría bien organizar un Curso Online de Análisis Forense Digital. 

Para ello, me armé de papel y boli para diseñar los contenidos del curso, y propuse a varios profesionales del sector especializados en Análisis Forense, para que cada uno preparásemos un módulo de 6 horas de duración. Así es para mí honor contar con cracks de la talla de Álvaro Andrade, Jaime Andrés Restrepo DragonJAR, Yago Jesus, Pedro Sánchez, Juan Garrido, Giovanni Cruz y Luis Delgado.

La idea es que el curso conste de una parte legal y operativa, imprescindible para aquellos que nos dedicamos al peritaje, Análisis Forense de sistemas operativos Windows, Linux, IOS y Android, así como un módulo de Análisis Forense en red y antiforensics, y otro que tiene que ver con Reversing y Rootkits

De esta manera, ha quedado un planning de 48 horas, a razón de 6 semanales, que entendemos que hace que sea un plan de formación asimilable para los asistentes.

En la web de Securízame una página explicando los detalles del curso. Ahí podéis echar un vistazo al temario, horario, costes, calendario, etc…

Como precisamente el público que puede estar interesado es de diferentes países, se hace imprescindible que el mismo se imparta en formato online. Ahora bien, aunque ya tenemos establecido un calendario del mismo, como el curso está abierto a todo el Mundo de habla hispana, y a priori no podemos saber cuántos asistentes vamos a tener, ni su procedencia, preferimos esperar a tener completa la fase de pre-registro antes de definir las horas a las que se impartirá el curso. 


Si queréis leer de forma off-line los detalles del curso, descargad este PDF. Para todos aquellos que me preguntáis por un curso de Análisis Forense, creo que esta es una buena oportunidad  en el que he logrado juntar a varios expertos para que cada uno hable de aquello de lo que más sabe.
Leer más...

23 noviembre 2013

DEFT, distribución linux para análisis forense


Hace unos meses, nuestro compañero Yago hablaba de la distribución CAINE basada en linux, y hoy os hablamos de Deft, otra reputada distribución que recopila herramientas de análisis forense y que alcanza ya su versión 8.

No se enfoca únicamente al típico análisis forense de discos duros, si no que tendremos la posibilidad también de realizar forenses de red e incluso de dispositivos móviles. Deft v8 está basada en Ubuntu 12.10, y posee un kernel versión 3.5.0-30. Como cualquier tipo de livecd actual, se nos ofrece la opción de instalar la distribución en nuestro disco duro.

Dentro del menú principal de la distribución, nos encontramos las siguientes categorías de herramientas incluidas:

Menú de herramientas de DEFT 8
  • Analysis - Herramientas de análisis de ficheros de diferentes tipos
  • Antimalware - Búsqueda de rootkits, virus, malware, así como PDFs con código malicioso.
  • Data recovery - Software para recuperación de ficheros
  • Hashing - Scripts que permiten la realización de cálculo de hashes de determinados procesos (SHA1, SHA256, MD5...)
  • Imaging - Aplicaciones que podemos utilizar para realizar los clonados y adquisición de imágenes de discos duros u otras fuentes.
  • Mobile Forensics - Análisis de Blackberry, Android, iPhone, así como información sobre las típicas bases de datos de dispositivos móviles en SQLite utilizadas por las aplicaciones.
  • Network Forensics - Herramientas para procesamiento de información almacenada en capturas de red
  • OSINT - Aplicaciones que facilitan la obtención de información asociada a usuarios y su actividad.
  • Password recovery - Recuperación de contraseñas de BIOS, ficheros comprimidos, ofimáticos, fuerza bruta, etc.
  • Reporting tools - Por último, dentro de esta sección encontraremos herramientas que nos facilitarán las tareas de generación de informes y obtención de evidencias que nos servirán para documentar el análisis forense. Captura de pantalla, recopilación de notas, registro de actividad del escritorio, etc.

Dentro de estas secciones, encontraréis muchísimas herramientas que evitarán tener que recopilarlas por cuenta propia. El listado completo de paquetes lo tenéis en este enlace. De esta versión última 8, todavía no existe un manual, pero podéis echar un vistazo al manual para la versión 7, si bien su uso es bastante simple y cada herramienta lleva su man asociado.

Por último, destacar la inclusión dentro de esta versión 8 de DART 2, una suite para gestión y respuesta ante incidentes desde sistemas operativos Windows, que incluye un lanzador de aplicaciones a herramientas para este sistema operativo.

Ejecutando DART en sistema operativo Windows

Podréis descargar la distribución en diferentes formatos (imagen ISO, máquina virtual y versión para pendrives USB, entre otros) teniendo disponibles varios mirrors. Sin duda, una livecd que no debe faltar también en nuestro arsenal de cds/usbs para llevar siempre encima.

[+] DEFT Linux
Leer más...

05 noviembre 2013

Análisis forense preliminar de Snapchat

Mucho se ha hablado en este blog sobre las aplicaciones de mensajería para los smartphones y de los fallos de seguridad de las mismas.

No hace mucho tiempo leí este artículo sobre la aplicación de la que os voy a hablar a continuación, esta aplicación y cuyo nombre está en el título del Post es SNAPCHAT.

Podría deciros que SNAPCHAT no es más que otra aplicación de mensajería instantánea, pero no es así, el gancho que tiene dicha aplicación es que permite a los usuarios enviar imágenes, videos cortos o mensajes a través de sus smartphones. El remitente elige el tiempo que desea que su mensaje sea visible para la otra persona, con un mínimo de 10 segundos. Y después es eliminada del mensaje, vamos que desaparece. Pero...¿Desaparece totalmente?

Bien, pues ya os hacéis una idea de lo que hace la aplicación, no obstante en el artículo que menciono en los párrafos superiores, su uso entre adolescentes es para casos de sexting, así que como disponía de algo de tiempo libre me dispuse a instalarla en mi smartphone y ver si realmente cumplía su objetivo, pero eso sí, iba a ir un poco más allá en mi investigación.

Tras una primera prueba he de decir que realmente la aplicación cumple su objetivo, recibes una foto (es la prueba que hice) y al tiempo estipulado por el remitente de la misma ésta se borra.

Pues bien, aquí es donde entra mi curiosidad, y me acordé del principio de transferencia de Locard, que viene a decir en resumen "cada contacto deja un rastro", así que me puse manos a la obra.

He decir que la "mini" investigación está realizada sobre un terminal Android rooteado.

En primer lugar fué localizar la aplicación en el terminal, por regla general las aplicaciones que se instalan en terminales Android se almacenan en el directorio data o datadata (según versión).


Ya tenía localizada el directorio de la aplicación, así que para ver los datos que contenía de forma más cómoda me la descargué a un directorio de mi equipo:


Como podéis observar, he desplegado todo el contenido de los directorios para que os hagáis una idea de lo que contiene.


Mi primera intención, y en la consola antes de descargarla a mi equipo, fué dirigirme al directorio Files a ver si hay se almacenaba una copia de la imagen recibida, pero...Mi gozo en un pozo.

Mi siguiente paso fué abrir una de las bases de datos, las de google anaytics no me interesaban, así que abrí tcspahn.db. Tras indagar en la base de datos, la cual como podréis ver en la siguiente imagen, tiene unas cuantas tablas, personalmente me llamaron la atención las tablas "StoryImageFiles" y "StoryImageThumbnailFiles", pues dicho y hecho a por ellas :)

La primera tabla "StoryImageFiles" no contiene datos, al menos en mis pruebas, ya que son eliminados de la misma, pero la siguiente "StoryImageThumbnailsFiles" si como podéis ver:


No hay que ser un hacha, nos está diciendo en qué directorio hay almacenada una miniatura de la imagen, pues ya tenemos la evidencia :) (Volved a mirar la captura de los directorios), y he aquí la imagen que me remití en mis pruebas, las zapatillas de mi niña :) :


Comentar, que la miniatura se guarda con la extensión jpg.no-media así que hay que eliminar el no-media para que sea legible su visualización.

Mi investigación no quedo ahí, me propuse indagar algo más, el resto de tablas que componen la BBDD podemos encontrar información de números de teléfonos añadidos a la aplicación, quién te ha mandado un mensaje, a quién se lo has mandado, campos TIMESTAMP etc... y además, podríamos obtener información EXIF de la imagen recuperada. Además, en los ficheros XML, se puede ver la información de la cuenta de correo que se ha utilizado para crear la cuenta, aunque el resto de datos esté cifrada.

No he realizado pruebas con los videos ni ninguna otra, así que animo a otros investigadores a realizar sus propias pruebas, y quien sabe, quizás algun investigador con más conocimientos es capaz de obtener más datos.

Jesús Angosto (@jdangosto)
Leer más...

25 octubre 2013

Pcap Forensics I

Muchas veces, cuando toca analizar tráfico de red, uno se puede sentir profundamente abrumado por tal cantidad de trazas, esto suele verse acentuado cuando se trata de logs especialmente grandes donde intervienen múltiples IPs.

En esos casos, viene bien hacer un primer análisis de esas IPs buscando información del proveedor y su procedencia geográfica.

En el post de hoy vamos a ver una primera aproximación al análisis de este tipo de datos empleando un script en Perl para parsear un fichero en formato pcap, y obtener los siguientes datos:

  • Hostname de la IP
  • País
  • Ciudad
El script es este:



Haremos uso de la base de datos de Max Mind 'Geo Lite' que tan buen servicio nos presta siempre y que además tiene una versión gratuita plenamente funcional.

Una vez descargada la bd 'GeoLiteCity.dat', que es la que contiene más información, simplemente tenemos que ejecutar el script contra un fichero pcap (muestra descargada de un repositorio público de ficheros pcap)

$ perl geopcap.pl anon_sid_12719_2003581.pcap

210.233.108.255,,JP,
210.85.29.241,210-85-29-241.cm.dynamic.apol.com.tw,TW,Taipei
210.233.108.255,,JP,
210.233.108.255,,JP,
210.85.29.241,210-85-29-241.cm.dynamic.apol.com.tw,TW,Taipei
210.233.108.255,,JP,
210.85.29.241,210-85-29-241.cm.dynamic.apol.com.tw,TW,Taipei
210.85.29.241,210-85-29-241.cm.dynamic.apol.com.tw,TW,Taipei
210.233.108.255,,JP,

Como podemos ver, el script devuelve la información en formato CSV, útil si se desea importar en ficheros excel para realizar un análisis más directo.

El script intenta resolver todas las IPs, averiguar su código de país y la ciudad.
Leer más...

16 septiembre 2013

RadioGraPhy 2.0

Hace algún tiempo presenté en sociedad RadioGraPhy, una herramienta que llevaba un tiempo usando de forma privada para hacer investigaciones forenses.

Esta herramienta es útil a la hora de 'radiografiar' un sistema Windows y extraer la máxima información posible.

En esta ocasión presento la versión V 2.0 que trae como novedad la posibilidad de extraer una copia de todos los binarios en ejecución y un backup del visor de eventos.

La idea es ejecutarla en un sistema sospechoso y llevarte la información para analizarla en el lab.

Se le ha añadido a la versión 'cli' el flag -c (no tiene mucho sentido añadir esta funcionalidad el frontend gráfico) que ejecuta la tarea de capturar esas evidencias.


Esto generará una carpeta llamada 'Evidences' y dentro de ella 'Eventlog' y 'Processes' 

Dentro de 'Eventlog' estará el backup del visor de eventos y dentro de 'Processes' una copia de los binarios que se estaban ejecutando en el sistema (de momento no los asociados a servicios)

Tampoco está de más recordar la lista de funcionalidades de la versión 1.0

RadioGraPhy obtiene los siguientes datos:

  • Las claves del registro asociadas al auto-arranque de procesos
  • Las claves del registro asociadas a la configuración de IE
  • Las cuentas de usuario del sistema
  • Los ficheros en directorios 'startup'
  • Los servicios del sistema
  • El contenido del fichero 'hosts'
  • Los 'task' del scheduler de windows
  • Los drivers o módulos cargados en el Kernel de Windows
  • Carpetas compartidas por NetBios
  • Ventanas ocultas (cmd y IE)
  • La lista de procesos activos en el sistema y el path del ejecutable
  • Información relacionada con la red (puertos abiertos, conexiones, etc)
La herramienta la he liberado totalmente 'Open Source' y se puede descargar desde aquí
Leer más...

16 julio 2013

Monitorizar ficheros y carpetas en Windows y Linux

En muchas ocasiones resulta interesante tener la capacidad de poder monitorizar ciertas carpetas de cara a saber la actividad que se produce en ellas en un momento determinado.

Bien sea porque estamos ejecutando un programa del que no tenemos su código fuente y queremos saber 'que toca' (ejemplo típico cuando analizas malware), o bien porque simplemente queremos saber en tiempo real cuando un fichero es accedido, creado o alterado.

Después de buscar soluciones, encontré una que permite hacerlo de forma multiplataforma (windows / linux), su nombre: fsmonitor

fsmonitor es en realidad una librería en Python y una suerte de ejemplos que la acompañan.

En Linux, se basa en inotify para monitorizar, y en Windows emplea ReadDirectoryChangesW

Viene con dos ejemplos / utilidades que permiten hacer exactamente lo que dice el título del post: monitorizar ficheros y carpetas

El primer ejemplo es en modo gráfico:


Como podemos ver, estamos monitorizando la papelera en un sistema Windows mientras hacemos un 'vaciar papelera'. Cabe señalar que fsmonitor, en Windows, detecta como modificación un acceso al fichero, es decir, la alerta se genera con la misma descripción tanto ante un acceso (ver contenido) como si se altera, en Linux si discrimina entre una cosa u otra.

Veamos un ejemplo por línea de comandos en Linux:

# python dirwatch.py /tmp

create /tmp holamundo
attrib /tmp holamundo
modify /tmp holamundo
access /tmp holamundo

Bonus: Cómo hacer que Windows actualice la fecha de acceso a ficheros

Durante las pruebas con fsmonitor, descubrí que algunos sistemas Windows no actualizan la fecha de acceso a los ficheros, en principio pensé que era un fallo de fsmonitor, luego descubrí que simplemente ese campo no se actualizaba. Se supone que es una forma de optimizar el rendimiento

El efecto final es que fsmonitor era incapaz de alertar cuando un fichero era accedido

Indagando, encontré una solución: emplear el comando fsutil para hacer que Windows guarde esa información.

(desde un cmd.exe) Primero ejecutamos:

fsutil behavior query disablelastaccess

Si obtenemos:

disablelastaccess = 1

Significa que tenemos deshabilitada esa opción. Debemos activarla ejecutando:

fsutil behavior set disablelastaccess 0

Y luego re-iniciando Windows
Leer más...

11 julio 2013

Análisis Forense en Linux: Analizando la memoria con Volatility



Como indicaba en un post anterior, una de las cosas que conté en el curso de Análisis Forense que dictamos Conexión Inversa  y Securízame, cuya experiencia relató genialmente Pedro Sánchez, fue el análisis de la memoria de un sistema Linux. Para ello, primero adquiríamos una imagen de la misma, sin alterar la evidencia, con LIME, en RAW. 

Ahora es cuando toca, con ayuda del cincel y el martillo extraer una bonita estatua del bloque de piedra de la sucesión de 1s y 0s que es la memoria en crudo.

La ventaja de trabajar directamente contra la memoria es que es independiente de los rootkits que puede tener la máquina. Me explico: Si nos conectamos por consola al equipo comprometido y ejecutamos un ps o un netstat, si el sistema operativo ha pasado por hábiles manos, puede que veamos todo, excepto lo que el atacante quiera (ocultación de procesos o de sockets abiertos mediante rootkits). Sin embargo, si le extraemos el cerebro completo, es decir la memoria, leeremos directamente de éste lo que la máquina sabe, pero no nos quiere contar por interfaz de comandos.

Para ello, una de las mejores herramientas que hay es Volatility, que además de estar disponible tanto para Windows como para Linux, nos permite realizar montones de operaciones sobre la memoria adquirida. Entre otras, puedes extraer la tabla de conexiones, entradas ARP, ficheros abiertos, módulos cargados, procesos existentes, etc,…. que había en el momento del volcado de memoria.

Los parámetros que tenemos que pasar a Volatility son, obviamente, la imagen de memoria sobre la que vamos a trabajar, la operación a realizar (ver conexiones, procesos, etc,…) y un perfil que contiene el formato o la estructura de memoria del sistema operativo del que tenemos la imagen de la memoria. Y aquí,… con el clero hemos topado! Cuando hablamos de una imagen de memoria de un sistema operativo Windows, no hay ningún problema, puesto que Volatility trae incorporados los perfiles para Windows, dependiendo de la versión del mismo, el Service Pack aplicado, si es de 32 o 64 bits, etc,… Pero en el caso de Linux, donde cada distribución añade el kernel que quiere, lo compila con los módulos que quiere y versiona como quiere,… es imposible que Volatility disponga de todos ellos.

Así pues, nos tocará crear un perfil basado en la estructura de memoria del sistema objetivo. Para contaminar lo mínimo posible la evidencia (en este caso nada), aprovecharemos la máquina que hemos instalado anteriormente para crear el módulo de LIME, y que tiene el mismo kernel que la que queremos analizar, y crearemos el perfil Volatility aquí. Para ello:

1.-) Instalaremos paquetes con dependencias que sean necesarias. En el caso de CentOS, tuve que instalar kernel-devel, make, gcc, gcc-c++,….

2.-) Descargamos libdwarf, y compilamos a mano e instalamos “warfdump”

3.-) Descargamos Volatility for Linux con "svn checkout http://volatility.googlecode.com/svn/trunk/tools/linux volatility-linux-profile"

4.-) Al ejecutar un make, nos generará un fichero llamado "module.dwarf"

5.-) Para generar el perfil (que no es más que un zip), ejecutamos "zip module.dwarf /boot/System.map-`uname-r`", conteniendo las estructuras del kernel y los mapas de símbolos necesarios para entender correctamente la estructura de la ristra de 1s y 0s que hay en el fichero de la memoria.

6.-) En la máquina en la que vayamos a hacer el análisis forense y tengamos Volatility, copiaremos este fichero .zip a /usr/local/lib/python2.7/dist-packages/volatility/plugins/overlays/linux/

7.-) Ejecutamos "vol.py --info | grep -i linux" y nos aparecerá el perfil creado para Linux (y los que tuviéramos de antes) así como una lista de los comandos que podemos utilizar

Así ejecutaremos vol.py –f --profile y veremos qué secretos escondía la máquina en su memoria.
Por poner un ejemplo de la salida de uno de los comandos existentes, aquí podemos ver  la lista de sockets abiertos:

root@lawcaine:/tmp# vol.py -f mem.raw --profile CentOSx64 linux_netstat
Volatile Systems Volatility Framework 2.3_beta
UNIX /dev/log
TCP      0.0.0.0:22    0.0.0.0:0     LISTEN              sshd/940  
TCP      :::22    :::0     LISTEN              sshd/940  
TCP      0.0.0.0:0     0.0.0.0:0     CLOSE             httpd/1000 
TCP      :::80    :::0     LISTEN             httpd/1000 
TCP      0.0.0.0:0     0.0.0.0:0     CLOSE             httpd/1072 
TCP      :::80    :::0     LISTEN             httpd/1072 
TCP      0.0.0.0:0     0.0.0.0:0     CLOSE             httpd/1073 
TCP      :::80    :::0     LISTEN             httpd/1073 
TCP      0.0.0.0:0     0.0.0.0:0     CLOSE             httpd/1074 
TCP      :::80    :::0     LISTEN             httpd/1074 
TCP      0.0.0.0:0     0.0.0.0:0     CLOSE             httpd/1075 
TCP      :::80    :::0     LISTEN             httpd/1075 
TCP      0.0.0.0:0     0.0.0.0:0     CLOSE             httpd/1076 
TCP      :::80    :::0     LISTEN             httpd/1076 
TCP      0.0.0.0:0     0.0.0.0:0     CLOSE             httpd/1077 
TCP      :::80    :::0     LISTEN             httpd/1077 
TCP      0.0.0.0:0     0.0.0.0:0     CLOSE             httpd/1078 
TCP      :::80    :::0     LISTEN             httpd/1078 
TCP      0.0.0.0:0     0.0.0.0:0     CLOSE             httpd/1079 
TCP      :::80    :::0     LISTEN             httpd/1079 


Volatility en Linux dispone de un montón de comandos que permiten analizar la situación real de la máquina, en base al análisis de la memoria extraída, sin tener que confiar en una interfaz que puede haber sido preparada maliciosamente, por parte de un atacante experimentado.   
Leer más...

09 julio 2013

Libro: Peritaje Informático y Tecnológico


Cada día son más las noticias del campo de la seguridad informática que invaden los medios de comunicación. Escándalos como el reciente Prism de la NSA, robo de datos en las empresas, incumplimiento de legislaciones, normas o estándares de tipo informático o telemático, valoración de bienes por su destrucción total o daño, redes de pornografía, campañas de phising... Este tipo de delitos y escenarios precisa de una figura como es la de perito informático y tecnológico.

Rafael López Rivera, autor del libro "Peritaje Informático  Tecnológico - Un enfoque teórico-práctico" (ISBN 978-84-6160-895-9), nos ofrece una visión general acerca de la profesión del perito telemático. Describe a lo largo de seis bloques temáticos aspectos como la labor del peritaje y la profesión del perito y sus tipos (forense-tecnológico, de gestión, tasador, auditor y mediador) describiendo sus ámbitos de actuación, tareas y metodologías empleadas en cada especialización; RFC 3227, ISO/IEC 27037, ISO 9001, PMI, COBIT... 

Nos guía acerca de la normativa legal que afecta a los peritos en su labor profesional, tratando puntos como la Ley de Enjuiciamiento Civil (LEC) y la Ley de Enjuiciamiento Criminal (LECrim) destacando el papel de la prueba pericial y los procesos y tratamientos por los que debe pasar.

La forma de obtención, recopilación, tratamiento y almacenamiento de las evidencias (según RFC 3227 e ISO/IEC 27037) encontradas durante la labor pericial así como del mantenimiento de la cadena de custodia son explicadas en profundidad debido a su importancia de forma comprensible y amena para casi cualquier profano en la materia.

Personalmente la parte por la que por sí sola recomiendo su adquisición es el bloque de temas dedicados a la elaboración del informe pericial, una labor nada desdeñable, ya que se unen la rigidez estructural de la norma UNE 197001:2011 con la adecuación al caso de estudio y el nivel de detalle subjetivo del perito a la hora de redactar el informe, para la cual aporta en base a su experiencia profesional  abundantes consejos y ejemplos, proponiendo una guía acerca del contenido mínimo de los puntos a tratar.

El bloque temático dedicado a la seguridad de la información explica, entre otras cosas objetivos, medios de protección, contenido de las políticas de seguridad, normativas como la ISO/IEC 17799, la ISO/IEC 15408 y presenta brevemente el Esquema Nacional de Seguridad y la LOPD.

En cuanto al estilo del libro posee una escritura clara y alejada del uso masivo de tecnicismos de la jerga informática o jurídica (no debemos olvidar que este tipo de actuaciones empiezan o terminan en los juzgados) destacando también la utilización frecuente de esquemas, gráficos e ilustraciones que refuerzan los puntos importantes de los temas tratados.

Sea para adquirir/afianzar conocimientos en materia de peritaje, obtener una visión general de la profesión o como manual de consulta recomiendo hacerle un hueco en nuestra biblioteca.

Podréis encontrar este libro en Amazon.es

Artículo cortesía de John Marie

Leer más...

28 junio 2013

Análisis forense en Linux: Adquisición de memoria




Esta semana he tenido el placer de impartir, junto a Pedro Sánchez de Conexión Inversa, un curso de Análisis Forense en una importante compañía española situada en León. Fundamentalmente, me he centrado en la interacción con servidores Linux, por lo que posiblemente publique más de un post relacionado con el estado del arte en esta materia.

En el caso de hoy, quiero exponer una de las fases fundamentales e iniciales del análisis forense, debido a la mayor volatilidad de la misma: La adquisición o dumpeado de la memoria, utilizando técnicas que contaminen lo menos posible (tendiendo a un 0%) la evidencia original.

Me he encontrado la situación, que en el caso de llevar a cabo esta tarea en sistemas operativos Windows, es relativamente sencillo por la existencia de herramientas, libres y comerciales, debido al dominio absoluto de dicho sistema operativo en el parque de ordenadores mundial. 

Sin embargo, en Linux, aparte de existir contadas herramientas libres, mantenidas y actualizadas, y debido igualmente a que cada kernel montado por cada distribución Linux es diferente, es necesario realizar un montón de procesos previos para poder hacer el volcado de la memoria, que "mancharían" el sistema. 

Una de las herramientas más utilizadas es Lime (Linux Memory Extractor), de la que ya habló Alex hace tiempo en SbD, cuyo funcionamiento implica cargarse como módulo al kernel y permite de una forma bastante cómoda, volcar el contenido completo de la memoria física de la máquina en RAW, en un fichero o abrir un socket en un puerto TCP para recoger desde una máquina remota el contenido de la memoria.

Como podéis imaginar, la instalación de este módulo, depende concretamente del kernel que se esté ejecutando en la máquina "víctima" y es necesario compilarlo ad-hoc, lo que implica, entre otros pasos, la instalación de paquetes como kernel-headers, kernel-devel, svn (para bajar la última versión de lime), etc,… por supuesto con todas las dependencias que se necesiten. 

En un caso que queramos hacer un forense "casero", puede ser aceptable (aunque no recomendable) hacerlo en el propio servidor, pero, como hemos dicho anteriormente, el objetivo que ha de tener el analista forense es evitar la contaminación de la máquina objetivo, puesto que instalar todo esto puede inutilizar cierta información existente en los sistemas de ficheros, relativa a archivos borrados, que con suerte y paciencia sería posible que se recuperasen.

La solución más limpia que se me ocurrió para hacer esta "cross-compilation", fue instalar en una máquina nueva (puede ser virtual), que corra exactamente el mismo kernel (ojo a la versión y arquitectura 32 bits o 64 bits) y utilizarla como infraestructura auxiliar para compilar el deseado módulo.  Para ello, con una instalación mínima, sobre la que resolveremos las dependencias necesarias, descargaremos Lime: 

svn checkout http://lime-forensics.googlecode.com/svn/trunk lime
cd lime/src; make

El fichero resultante tendrá el formato "lime-`uname -r`.ko". A partir de aquí, lo más limpio, sería copiar en un disco externo USB (o un pendrive) formateado con un sistema de ficheros entendible/montable por el servidor en cuestión, y una vez montado, insertarlo en el kernel objetivo. Para ello, y dependiendo de dónde queramos dejar el volcado de la memoria, en el dispositivo USB o levantando un socket en un puerto predefinido, cargaremos el .ko de una forma u otra.

En el caso de querer volcar la memoria a un fichero en un sistema de archivos del dispositivo USB, la carga del módulo sería algo así como: 

cd /mnt/aux/lime; insmod lime-*.ko “path=/mnt/aux/memoria.dd format=lime”

Y en caso de abrir un socket (ojo con el cortafuegos interno de la máquina, que no prohiba el acceso a dicho puerto desde la máquina remota), lo haríamos de la siguiente manera:

cd /mnt/aux/lime; insmod lime-*.ko “path=tcp: format=lime” - donde puerto es el que deseemos y en el que no exista servicio escuchando en la máquina actualmente -


En el campo formato, tanto el valor "lime" como "raw", serían válidos para el análisis de la memoria con herramientas como Volatility, pero eso, en Linux, es otra historia de la que hablaré en otra entrada.


Leer más...

19 abril 2013

Jornadas de Análisis Forense en Tarragona





Disclaimer: Estimado lector, si has llegado a este artículo buscando ayuda con relación a algún análisis forense, formación relativa al tema o a una asociación existente, yo, Lorenzo Martínez, a título personal, te quiero hacer saber que ya no me encuentro en la ANTPJI. Por ello, si piensas que puede darte ciertas garantías que yo pertenezca a la misma, te ruego que leas el post relacionado con ANCITE, Asociación Nacional de Ciberseguridad y Pericia Tecnológica.

------------------------------------------------------------------------------------------------------------------------------

Fue hace escasamente un par de meses, cuando se celebró el curso de perito telemático forense en la UDIMA en Madrid, organizado por la ANTPJI. Agradezco a todos aquellos que rápidamente os apuntasteis y pudisteis optar a una plaza. Lamentablemente el aforo era de unas 120 personas y se llenó en seguida. En esa ocasión, intenté coordinar las ponencias y cubrir un temario que pudiera ser de utilidad para peritos informáticos forenses. Por ello quiero agradecer, primero que nada, a todos aquellos profesores y amigos, a los que lié para que participasen dando una charla. Todos los profesores sois compañeros y amigos, pero quiero expresar públicamente mi agradecimiento a Juan Garrido "Silverhack" (calificado por las encuestas de los asistentes como mejor ponente en ese evento), Marc Rivero y Luis Delgado por haberme apoyado y estado ahí, como se suele decir, a las duras y a las maduras.

En esta ocasión, y para los que no tuvisteis oportunidad de asistir a la edición de Madrid, el buen amigo, y socio de la ANTPJI, sobradamente conocido en el sector de la seguridad y el análisis forense, Pedro Sánchez ha decidido liderar la organización de un evento con charlas sobre análisis forense con el apoyo de la Universidad Rovira i Virgili, en Reus - Tarragona. Las fechas que debéis reservar en vuestra agenda desde ya mismo son el 10 y 11 de Mayo de  2013.



El objetivo de estas jornadas es enseñar a los asistentes las diversas actividades que se llevan a cabo a lo largo de un análisis forense, de manera que pueda ser un buen punto de apoyo a la hora de ser perito informático judicial. 

En este caso, el plantel de ponentes que Pedro ha seleccionado, entre los que me encuentro yo mismo, promete un evento bastante interesante: Juan Antonio Calles, David Barroso, Simón Roses, Juan Garrido "Silverhack", Marc Rivero, el propio Pedro Sánchez, etc,…

En los siguientes enlaces, podéis ver la lista completa de ponentes y la agenda inicial de las presentaciones.

Si sois de Cataluña o alrededores, y tenéis inquietud por el mundo de la informática forense, podéis asistir a este curso que tiene un coste de 70 euros para socios de la ANTPJI y Universitarios, así como de 140 euros para profesionales.

Por experiencias de otras ediciones, como las de Valencia o Madrid, el aforo se completó bastante rápido y hasta los ponentes teníamos que permanecer de pie casi todo el evento, por lo que os aconsejo que si os vais a apuntar, no lo dejéis para última hora y lo hagáis cuanto antes.

Nos vemos en Reus - Tarragona!
Leer más...