Estafa a las 3. Nicolai Prochenko SE01X02

12 11 2009

Son las 10 de la mañana, y en la antigua Yugoslavia hace un día frío y lluvioso. Nicolai Prochenko es un individuo que ha estado entrando y saliendo del trullo desde los 19 años. Se había educado en la llamada Universidad de la Vida, pero con un pésimo profesorado. Experto en timos a pequeña escala y en engaños personalizados. La mala educación y un pensamiento sobre el dinero siempre ha estado presente en su educación y en suvida. La llamada del dinero fácil. Un sueño que todos quisiésemos alcanzar. Ganar mucho dinero invirtiendo y trabajando lo menos posible. Fruto de ese sueño, y con la cantidad de 200 Kunas, fruto de su último timo (Una venta de entradas caducadas), se reunió con un personaje de los bajos fondos que tenía un negocio para Nicolai. Algo llamado “fraude bancario”.

Nicolai y su socio, se reunieron en el café Estafinski para dar forma a la “visión”. Nicolai estaba nervioso porque no conocía a su nuevo socio, pero había leído sobre él en algo llamado Internet…. Tras pedir dos Marraskinos, resolvieron presentarse…

Nicolai: Hola amigo, me he enterado de tus hazañas y me gustaría que me ayudases a conseguir mi sueño. Cómo te llamas?

Desconocido: Me llamo Albert Gonzalez y te puedo ayudar con tu sueño. Mínima inversón, máxima repercusión…

Nicolai: Me gusta esa frase. Qué necesito para ponerme a ello?

Albert: Por 150 Kunas, puedo pasarte un CD con un programa. Este programa lo hará todo por tí con sólo unos clics de ratón. Si le dedicas algo de tiempo, dominarás países….

Nicolai: Pero tengo un problema. No entiendo de ordenadores….

Albert: Pero sabes encenderlo no? Coger el ratón?

Nicolai: Sí, esas nociones las tengo….

Albert: Sabes realizar transferencias bancarias?

Nicolai: Tengo a una persona que podría ayudarme a conseguirlo….

Albert: Pues reunes todas las condiciones! Este es un timo bastante fácil. Sólo tienes que montar el programa que te adjunto en el CD, y él se encargará de realizar todas las acciones por ti. Lo único que tienes que hacer es construir una gran mentira, y enviarla por e-mail a todas las personas que puedas. Puedes coger notas mirando estos artículos . De seguro que te ayudarán en tu “visión”….

Nicolai: Albert, aquí tienes tus 150 Kunas.

Albert: Toma tu CD. Vas a ser un hombre rico….

Nicolai: Me voy corriendo al concesionario, que he visto un Mercedes descapotable que me encanta….

Las 13:00 Horas. Un rayo de luz acaricia el rostro de Nicolai. Se fue corriendo a casa ya que tenía trabajo por hacer. Tenía un ordenador que había robado de una tienda de PC’S mediante la técnica del sillanizaje. Es similar a la del coche, pero utilizando una silla. Llegó a casa, se encenció un cigarrillo, y conectó el equipo.

El manual de instrucciones del CD era muy claro, y hablaba de una forma que Nicolai podía entender. Las instrucciones eran claras. La conexión a Internet debía pasar por una serie de Proxys anónimos, y, para entornos de pruebas, realizar la conexión desde una señal que no fuese la propia. Nicolai no entendió esta última parte y conectó su equipo a una Red WIFI que ponía OPEN. Primer paso realizado…

Una vez realizado este paso, tenía que ejecutar algo que ponía SETUP.EXE. Una vez realizado este paso, el CD instaló varias cosas:

  • Un servidor Apache
  • Soporte para PHP
  • MySQL
  • PHPMyAdmin

Todo ello a un clic de ratón. El sueño estaba cada vez más cerca. Ahora llegaba la parte difícil. Instalar lo que le separa de su ansiado Mercedes y sus buenas vacaciones en las Bahamas. El gancho.

El gancho venía en una serie de ficheros con extensión PHP, y no era más que el panel de Administración de un BOT para administrar Malware a través de Internet. La ruta de instalación era clara. Tan sólo tenía que dirigirse al directorio .install y él se encargaría de realizar el resto…

InstallNicolai

Imagen 1.- Instalación Zeus BotNet

Una vez instalada la aplicación, ésta muestra el proceso de la misma, indicando si ha habido algún fallo en la instalación.

Captura

Imagen 2.- Instalación finalizada y completada

El siguiente punto del manual es claro. Ya tienes tu panel de control! Ya puedes soñar con ese Mercedes y con las Bahamas y con las Morenacas!! Entra a tu panel de control siguiendo la ruta indicada a continuación:

http://IP_DEL_MALO/Zeus/Web/in.php

Dibujo

Imagen 3.- Panel de administración Zeus

El panel de Administración estaba vacío, pero su sueño cobraba vida. Una vez realizado este paso, le tocaba configurar el paso siguiente. “La gran mentira”.

La gran mentira consistía en un fichero de configuración que posteriormente se incluiría como base de conocimiento a un Malware específico. El fichero de configuración, y una vez averiguada la dirección IP pública de Nicolai, presentaba el siguiente aspecto:

Config

Imagen 4.- Fichero de configuración Zbot

Una vez configurado el fichero, el manual indicaba que había una aplicación para “montar” la “gran mentira”. La aplicación constaba de un ejecutable, un fichero binario que contenía el código maligno, y un fichero de texto que contenía información sobre bancos y redes sociales. Esta información la utilizará después el Malware para enviar los datos seleccionados (Usuario, Password y firma electrónica) a la base de datos de Nicolai.

SantanderConfig

Imagen 5.- Inyección Web Malware Offline

Una vez modificado estos archivos de configuración, el montaje se hace muy rápido, gracias a la utilidad de montaje incorporada en el CD de Nicolai.

Builder

Imagen 6.- Builder Zbot Malware

Perfecto…. La “gran mentira” estaba montada. Ahora sólo hacía falta leerse los artículos anteriores y mandar correos y SPAM a diestro y siniestro.

Pasados unos meses, Nicolai gozaba de gran popularidad en la Red, y su sueño cobraba vida propia. Era un gran “administrador” y la gente le pedía muchos favores a cambio de dinero. Con el tiempo se dio cuenta de que “la gran mentira” podía “tumbar” a grandes corporaciones, gracias a que con el panel de administración podía crear grupos de trabajo, los cuales podían realizar una tarea en concreto.

zeus-cpanel

Imagn 7.- Panel de Administración Zeus 

La aplicación proporcionada en el CD, era capaz de decodificar los datos enviados por el Malware, y que guardaba celosamente tanto en su base de datos, como en un fichero binario a modo de Backup.

DecoderLogs

Imagen 8.- Decodificación de Logs con Zbot

Las capturas eran claras y decisivas en post de su sueño. Gracias a ellas tenía una gran base de datos con usuarios, passwords y firmas electrónicas. Todo ello junto a las Webs de acceso y direcciones IP y nombres de equipo de sus víctimas. Todo ello bien ordenado en sus correspondientes tablas.

CapturaClave

Imagen 9.- Captura de Claves en archivo Log

Había pasado un año desde que el proyecto “la gran mentira” empezó. Así que, nuestro amigo Nicolai, habiéndose convertido en un gran Administrador de este tipo de redes, se puso manos a la obra con “el plan B”.

El plan lo había planificado con un año de antelación, y era bastante simple. Se había dedicado a capturar durante un año completo usuarios y passwords de diferentes cuentas y sitios de Internet. Gracias a estas capturas, consiguió una base de datos bastante consistente de información. Un año después, Nicolai estaba preparado para dar el gran salto. Se había dedicado todo este tiempo a recopilar información en Internet sobre cada una de sus víctimas. Había cuentas de banco que se correspondían con las cuentas de correo, y éstas, a su vez, con redes sociales. Gracias a los conocimientos adquiridos, creó otra base de datos con ese conocimiento. Esta base de datos conectaba a cada usuario con su red social, correo electrónico, cuentas bancarias y mensajería instantánea. También le dió lugar a crear otra base de datos con los usuarios a los que no llegaba a conseguir gran cantidad de información. Esta base de datos la vendía al mejor postor, vendiendo también, cada cierto tiempo, actualizaciones sobre la misma. La “gran mentira” era todo un éxito.

Nicolai planificó cada detalle de sus actos para llevar a cabo “El plan B”. Gracias al dinero obtenido de ventas anteriores, llegó a contratar varios servidores alojados en países de “moral informática relajada” (Te lo copio Chema ;-) ). En cada uno de ellos, instaló una aplicación que había conseguido encargar a un programador amigo suyo. La aplicación tan sólo recibia un fichero de configuración con unos datos específicos, y ésta, a su vez, realizaba todo el trabajo.

Nicolai se había empeñado en realizar una gran compra por Internet, utilizando la base de datos que le había costado un año llenar. El plazo de acción era realizar el trabajo en 24 horas.

Así que una mañana, sobre las 13:35 horas, Nicolai estaba sentado en pijama sobre su equipo, con un cigarrillo en la comisura de los labios, y un vaso con Marraskinos en el otro. Configuró todos los servidores, actualizó todas las víctimas, y pulsó el botón START.

Fin del capítulo II

Saludetes!!

 

 





Estafa a las 3. Dónde está mi inversión? SE01X01

10 11 2009

Son las 3 de la tarde y el departamento de HelpDesk de la empresa Skynet recibe una llamada. Es el experto en IT Henry DansMerkt.

Henry DansMerkt: Hola buenas tardes. Es el departamento HelpDesk?

Técnico: Si señor Henry. Ha marcado los números correctos y este es el departamento de HelpDesk. Enhorabuena. En qué podemos ayudarle?

Henry DansMerkt: Puessss… La verdad es que no sé si es realmente un problema. El caso es que no encuentro un dinero para una inversión de IT. Este dinero estaba en una cuenta corriente y ahora no está.

Técnico: Señor Henry. Este problema tiene que ver con algún equipo? Verá, es que necesito saber si es un problema del equipo, para poder abrir un ticket de resolución. Los temas bancarios no los lleva el departamento de HelpDesk, así que no sé muy bien cómo ayudarle.

Henry DansMerkt: Verá, es que los números de cuenta los poseo únicamente yo, el departamento contable y el CEO de la empresa. He comunicado con ellos y me comentan que ellos no han realizado ningún tipo de acción sobre la cuenta mencionada. Todo este tipo de inversiones las hacemos siempre Online y nunca ha habido ningún problema. Así que tanto el CEO de la compañía y el jefe del departamento contable me han remitido a ustedes, por si el problema fuese del equipo corporativo.

Técnico: Ok. Vamos a realizar algún tipo de comprobación rutinaria. A qué tipo de banca online se refiere? Puede acceder a la página correctamente?

Henry DansMerkt: Las cuentas personales que utilizamos para este tipo de inversiones están alojadas en dos bancos. Uno es el Banco de Santander y el otro es Banesto. Y sí, acabo de probar a ingresar los datos en las cuentas y puedo acceder correctamente.

Técnico: Puede mandar alguna captura de su acceso a las cuentas?

Henry DansMerkt: Claro que puedo. Se las estoy enviando a través del correo electrónico. Un momento

Pasan unos 4 minutos….. (Tensa espera telefónica)

Henry DansMerkt: Le han llegado ya?

Técnico: Sí que me han llegado. Las estoy revisando

Henry1

Imagen 1.- Banca personal Henry

Henry2

Imagen 2.- Banca personal Henry

Técnico: Un momento por favor, estamos revisando el equipo en busca de Malware y monitorizando las conexiones. Manténgase a la espera por favor.

Henry DansMerkt: Ok

Técnico: Señor Henry. Hemos monitorizado el equipo y no vemos ninguna señal de Malware. Aparte, monitorizamos todo tipo de salida y entrada de datos mediante sistemas perimetrales de seguridad, y llevamos un control exhaustivo tanto de las políticas locales como del control de acceso a los recursos y ficheros de la compañía.

Henry DansMerkt: Ok. Pues muchas gracias. Ya me quedo mucho más tranquilo. Aunque no encuentre el dinero. Preguntaré al departamento contable y al CEO otra vez, no vaya a ser que se hayan olvidado de algo.

Técnico: OK. Pues doy por cerrado el Ticket. Muchas gracias por su llamada señor Henry y que pase un buen día.

Henry DansMerkt: Gracias chaval. Me iré a casa temprano hoy para seguir trabajando desde allí. Adiós!

Técnico: Oiga? Oiga? Señor Henry? Se encuentra ahí?

Henry DansMerkt: Sí sí, me encuentro aquí. Necesita algo?

Técnico: Ehhmmm… Verá, es que tengo su portátil aquí, ya sabe, el que me mandó la semana pasada para instalarle el nuevo sistema operativo de Microsoft. Windows 7. Recuerda?

Henry DansMerkt: Sí, sí, lo sé. Está terminado?

Técnico: No, no está terminado. Estamos incluyéndolo en el dominio y aplicando las políticas de seguridad. Recuerde que NO se debe trabajar con portátiles que no estén configurados por el departamento de IT. Fue idea suya… La pregunta es… DESDE QUÉ PORTÁTIL ESTÁ TRABAJANDO?

Henry DansMerkt: Ahhh, jajaja! Desde el portátil de mi compañero de piso, el cual amablemente me lo ha dejado hasta que me déis el corporativo. Lo tengo aquí ahora mismo.

Técnico: Puede encender el portátil por favor, y mandarme capturas de pantalla del inicio de sesión en la banca online? Es mera curiosidad y un trámite sin importancia….

Henry DansMerkt: Claro que sí, aunque no veo qué problema pudiese haber. Te mando las capturas en unos minutos.

Pasan unos 5 minutos. (Tensísima espera telefónica)

Henry DansMerkt: Te han llegado ya las capturas?

Técnico: Sí, ehhmmm… Espere, las estoy visualizando….

Henry3

Imagen 3.- Imagen Portátil “neocorporativo” del compañero de piso

Henry4

Imagen 4.- Imagen Portátil “neocorporativo” del compañero de piso

Técnico: Un momento por favor… (Sonido de fondo=on) ·$%##@@!!. Manuel! Llama corriendo a Javi de comunicaciones y que empiece a monitorizar tráfico en la red corporativa. Tenemos un ticket de nivel I. Ah! Y por favor, llama a Juanito Walker y a Juan Luigi “El drogata”, y dile que tenemos un caso para ellos. “Drogata???”…. Sí, es que el tio lo esnifa “todo”….(Sonido de fondo=off). Señor DansMerkt, mucho me temo que va a tener que dejar el portátil aquí. Lo necesitamos para cerrar la incidencia.

Henry DansMerkt: La incidencia no estaba cerrada?

Técnico: No, la hemos abierto de nuevo.

Henry DansMerkt: Y cómo trabajo yo ahora desde casa?

Técnico: Veremos si sigue trabajando mañana aquí…..

Henry DansMerkt: Cómo ha dicho?

Técnico: Nada nada…. He dicho que inmediatamente le mandamos un portátil corporativo y nos quedamos con el de su compañero de piso para analizarlo con más profundidad.

Henry DansMerkt: Pero me lo devolverán hoy no? Es que mi compañero lo necesita para el Facebook y el Twitter…

Técnico: Lo intentaremos señor Henry, lo intentaremos….

Fin capítulo I

Saludetes!! ;-)

 





Analizando Tráfico de Red III de III

11 10 2009

Para el análisis forense de tramas de Red, existen herramientas que son capaces de automatizar el proceso de extracción, siendo válidas para extraer “de una tirada” conjuntos de datos que viajan a través de un protocolo.

Una herramienta bastante potente para realizar este tipo de extracciones es Xplico. Esta herramienta, de momento sólo existe para sistemas operativos Linux. Hasta la fecha es la herramienta más interesante, ya que de momento, está realizando una muy buena labor de soporte para muchos protocolos. Para saber más sobre la misma, aconsejo leer el post de Sergio Hernando, que habla sobre ella.

Para Windows, la única herramienta que vale la pena, se llama NetWork Miner. Es una herramienta bastante interesante, ya que, además de la extracción de datos, es capaz de realizar tareas de fingerprinting sobre los paquetes de datos para averiguar, por ejemplo, el sistema operativo que envía o recibe paquetes. Su funcionamiento se basa en las bases de datos que utilizan diversas herramientas de auditoría, como por ejemplo, NMap. Un buen artículo sobre esta herramienta, lo tenemos en la Web SoyForense.

Lamentablemente, y utlizando esta herramienta con un fichero PCAP, en cuyo interior se encontraban datos relativos a conversaciones de Vídeo, audio y datos, transmitidos todos ellos a través de mensajería instantánea con Windows Live Messenger, ésta no ofrece ningún avance positivo.

netWorkMiner

Imagen 1.- Extracción de datos fallida con NetWork Miner

Después de la prueba fallida, lo siguiente es analizar “a pelo” cada paquete de la captura, para encontrar una huella, o pista que nos de esperanza para continuar.

Para ello, decido leerme, sin mucho éxito, parte del documento que tiene Microsoft sobre la implementación de RTP en Streaming de audio o vídeo.

Analizando la captura de datos, me encuentro con un paquete algo especial, con el formato siguiente:

RecipientID

Imagen 2.- RecipientID en Windows Live Messenger

Observando varios foros sobrre desarrollo de aplicaciones para mensajería instantánea, comprendo que este paquete es utilizado por Windows Live Messenger para establecer la conexión. Una vez que la conexión está establecida, envía regularmente un paquete de las mismas características para asegurarse de que la conexión sigue permanente.

Wireshark tiene, como añadido a la herramienta, opciones de traducción de paquetes. Esta capacidad, dota a la herramienta con un decodificador de paquetes. Con este tipo de opciones, podemos escoger un paquete, y decirle a Wireshark que lo decodifique según un protocolo establecido.

Nuevo intento, fallido, de decodificar todo protocolo UDP como si fuese RTP. Resultados cero.

Inspeccionando el tráfico UDP, me encuentro con que existen patrones que se repiten a la hora del envío de paquetes a través de Windows Live Messenger. En cada envío de paquetes, me encuentro con unos mismos valores para distintos paquete. Este tipo de patrón da a pensar que podemos estar ante algún tipo de Payload. Para ello, voy copiando en una tabla, todos los valores repetidos que me voy encontrando. La lista que obtengo es la siguiente:

  • 44
  • 48
  • 66
  • 4A

Buscando y rebuscando en internet, me encuentro con un post en un foro, el cual ya no existe, en el que se retrata este mismo payload. Pero lo más interesante es que un tipo, llamado Ramiro Polla (No es coña…), ya lleva tiempo con esta investigación y ha recreado un un paper y una herramienta que realiza toda esta labor.

Los payloads anteriormente descritos, se refieren a qué tipo de acción va a realizar Windows Live Messenger. Es decir, si va a realizar una conexión, enviar una trama de audio, enviar una trama de vídeo, etc…

Hablando de la herramienta, cabe decir que la mayor característica de la misma, es la capacidad de trabar “offline” con capturas de datos. Una vez que se carga la captura de datos en la herramienta, se procede a la extracción de paquetes de audio y vídeo.

WebCamRecorder

Imagen 3.- Añadido de capturas offline

Una vez que la herramienta ha realizado su trabajo, se puede proceder a exportar los datos, pudiéndose utilizar compresores de audio y vídeo, para que la captura final sea más pequeña.

imagenExtraida

Image 4.- Captura final y posibilidad de extracción de datos

Como nota final, vía Sergio Hernando me entero de que también existe una herramienta similar en Linux, llamada MSN Shadow. Leyendo el Blog del autor de la herramienta, me entero de que si queremos versión para Windows, tendremos que esperar un poco, ya que, según sus palabras:

So, to support my additional work on this project like a version for Windows, capture of file transfers and others improvements, I would like to ask for some donation if you can.
I would not like to stop providing this software in open source format, but I can not work for nothing!

Hasta un nuevo post!!

Saludetes!





Analizando tráfico de Red II de III

25 09 2009

Hola a tod@s! Seguimos con esta entrega dedicada al análisis forense de tramas de Red. En esta entrada nos vamos a centrar en protocolos que no están muy documentados.  La gran mayoría de analizadores de red ofrecen soporte a protocolos que están bien documentados y dan parte de soporte o ninguno a protocolos que no están documentados. Este tipo de problemas se pueden dar en algún tipo de investigación forense, y casi seguro que alguno de los lectores se habrá visto en algún caso parecido.  

En nuestro caso, vamos a centrarnos en un protocolo que no está muy documentado, pero que es ampliamente utilizado. Es el caso de la mensajería instatánea con Windows Live Messenger y derivados.

Los primeros atisbos de información que nos encontramos, los tenemos en la Web del Internet Engineering Task Force. En dicha Web, mantienen un borrador de un protocolo llamado Messenger Service . Leyendo este documento, tendremos una idea básica de cómo el protocolo de Windows Live Messenger trabaja a la hora de enviar y recibir información.

Más adelante (hablando de tiempo), Webs como Hypotetic.org o MSNPiki documentarían más este protocolo, realizando ingeniería inversa sobre el mismo.

Wireshark implementa un único filtro para filtrar la comunicación a través de Messenger llamado MSNMS. Gracias a este filtro, podremos trabajar sólo con este protocolo.

Al ser un protocolo que envía los mensajes en texto plano, es fácil extraer una conversación de Messenger aplicando como búsqueda la cadena “Text/Plain” en el filtro de búsqueda por paquetes que dispne Wireshark.

Conversación

Imagen 1.- Extracción conversación Messenger con Wireshark

Herramientas comerciales como MSN-Sniffer, pueden capturar este tráfico y parsearlo directamente a una salida más “humana”.

Lo malo de todo esto, es que no toda la información enviada a través de este cliente de mensajería se envía a través del protocolo MSNMS. El envío de mensajes de Voz, ficheros o vídeo se realiza a través de protocolos comunes como TCP o UDP. Y, en este caso, ni MSN-Sniffer ni ninguna otra herramienta (que yo conozca) es capaz de detectarlo y extraerlo.

En el caso del envío de ficheros a través de Messenger, y leyendo la valiosa información de la Web MSNPiki, nos encontramos con que primeramente se envía un número de identificador único (GUID), el cual se especifica para determinar que lo que se va a transmitir es un fichero. En el mismo paquete, se añade un identificador llamado APPID.

Base64FileTransfer

Imagen 2.- Envío de ficheros a través de Messenger

Si se observa con atención este paquete, en el contexto de este campo (AppID), aparecen una serie de caracteres codificados en Base64. Decodificando este texto nos daría el nombre del fichero que se está enviando.

DecodeBase64

Imagen 3.- Decodificando mensaje Base64

Una vez recibida esta información se empieza con el envío de datos. La transmisión de ficheros a través de Messenger es algo complicada, ya que se pueden enviar a través de TCP o UDP, y, en mi caso, no conozco ninguna herramienta que, a través de un archivo PCAP y en modo Offline, pueda reconstruir los ficheros enviados a través de este cliente de mensajería instantánea. Tanto el señor Maligno como Dani Kachakil tienen muy buenos artículos sobre cómo extraer ficheros enviados a través de Messenger. La idea básica es ir recopilando cada paquete (ya sea TCP o UDP), para después unir todas las tramas y formar el fichero extraído.

followTCP

Imagen 4.- Follow TCP transmisión de paquetes en Messenger

Como esto se complica cuando se transmiten varios ficheros simultáneamente, nuestro compañero Rodol, de informática64, se curró una herramienta muy chula hace tiempo que realizaba esto mismo. Capturar todos los paquetes transmitidos a través de messenger, para después reconstruir los ficheros realizando un fingerprinting de los mismos.

MessengerSniffer

Imagen 5.- Sniffer de Messenger con funciones de recomposición de ficheros

Esta herramienta, junto con muchas más, las damos en exclusiva a las personas que se apunten a los cursos FTSAI que impartimos en informática64.

Hasta la próxima entrega!

 





Analizando Tráfico de Red I de III

21 09 2009

Hola a tod@s!

En esta tanda de 4 artículos nos vamos a entretener en conocer cómo podremos analizar nuestra Red en busca de patrones. El análisis del tráfico de red, junto con su contenido, es esencial para conocer qué uso se le ha dado a la red en un momento determinado.

Imagináos un servidor infectado mediante un exploit lanzado de forma remota. O conocer a ciencia cierta que están robando información confidencial de la empresa. Gracias a la reconstrucción del tráfico de red, es posible que se puedan dar respuesta a un buen número de cuestiones.

Mi amigo Pedro, de Conexión Inversa, tiene un estupendo artículo sobre redes trampa de baja y alta interacción que recomiendo que leáis. Por lo que comentaba en el artículo, parece ser que nos deleitará con más series de éstos, dedicados al análisis forense de la Red.

En mi caso, yo me centraré más en la reconstrucción de ciertos tipos de datos capturados por la red y en última instancia recomendaciones para la automatización en este tipo de tareas.

Para ello, y en mi laboratorio de pruebas, he procedido a capturar tráfico de dos puntos en una LAN y guardarlos en un archivo PCAP. Las siglas PCAP (Packet Capture) corresponden a una API desarrollada para capturar tráfico de una red. En el laboratorio de pruebas, utilizaré el port para Windows WinPcaP. Posteriormente utilizaremos la herramienta Wireshark para la extracción de posibles datos.

Comenzamos!

Algo que puede que nos interese, en lo referente al análisis de la red, es la reconstrucción de la navegación Web, guardado en un determinado fichero de captura PCAP.

Para intentar reconstruir ese tráfico, Wireshark implementa varios filtros con los que podemos jugar. En un principio puede que nos interese todo el tráfico, pero gracias a los filtros, podremos centrarnos en ciertas partes del tráfico que más nos interese.

Para captura Web, Wireshark implementa el filtro HTTP. Gracias a este filtro, podremos extraer prácticamente todos los objetos enviados y recibidos mediante este protocolo.

httpFilter

Imagen 1.- Aplicando filtro http en Wireshark

¿Y cómo podemos extraer datos una vez aplicado este filtro?. Wireshark implementa varias formas de realizarlo con el protocolo HTTP.

Una de ellas es la capacidad de poder exportar un conjunto de bytes, utilizando únicamente para ello el botón derecho del ratón.

ExportDataWireshark

Imagen 2.- Exportar Bytes Wireshark

Otra forma de realizar esta exportación de datos, es utilizando el filtro http.content_type, el cual nos mostrará sólo los paquetes que contengan algún tipo de dato y hayan viajado a través de ese protocolo.

Contenido

Imagen 3.- Filtro http Wireshark

Como podéis observar en la imagen, el tipo de dato o recurso que viaja por HTTP no siempre es texto. De ahí que se deba analizar con cuidado, por si nos encontramos con el lanzamiento de un exploit, un ataque de denegación de servicio, aplicaciones, objetos comprimidos, etc…

Desde hace algún tiempo, Wireshark implementa una forma rápida de agrupar todos los objetos HTTP en una sola ventana, para que así nos resulte más fácil “ver” qué viaja por este protocolo. Para disfrutar de esta característica, debemos ir a File –> Export –> Objects –> HTTP

HTTPObject

Imagen 4.- HTTP Objects List

Otro filtro importante que tenemos a nivel de HTTP, es el filtro HTTP.Date. Este filtro, nos situará exactamente en la cabecera de HTTP que contenga el campo fecha. Esta acción nos puede ser muy útil para realizar un timeline de peticiones y poder reconstruir una sesión de navegación, por ejemplo.

HTTPDate

Imagen 5.- Filtro http.date

Visto lo visto. Wireshark puede reconstruir todo el tráfico de cualquier protocolo?. La respuesta es que NO. Wireshark permite capturar todo tipo de paquetes pero eso no quiere decir que pueda diseccionarlos todos. Existen protocolos que están docuentados o se basan en una RFC, y protocolos para los que no hay apenas documentación pública. Para este tipo de protocolos es en donde entra en juego la ingeniería inversa. En el siguiente artículo nos centraremos en reconstruir datos partiendo de protocolos que Wireshark no es capaz de entender.

Espero que esta primera aproximación al análisis forense de la Red os haya gustado. Hasta la próxima entrega!

Saludetes!

Referencias

http://en.wikipedia.org/wiki/Pcap

http://www.wireshark.org/docs/dfref/h/http.html

http://www.wireshark.org/docs/wsug_html_chunked/ChIOExportSection.html





Altenate Data Streams en Windows Vista III de III

16 09 2009

Alternate Data Streams en Windows Vista I

Alternate Data Streams en Windows Vista II

En el anterior artículo realizamos pruebas de ADS en Windows Vista y como respuesta deducimos que Windows Vista todavía tiene soporte para forks en su sistema de archivos NTFS. La prueba más fehaciente es la inclusión del parámetro /R en su comando DIR, el cual listará secuencias alternativas de datos en un fichero pasado como argumento.

El soporte, en este caso y bajo este sistema operativo, es limitado en funciones y mantenido a diversos programas locales como por ejemplo el bloc de notas  o la aplicación Paint. Este tipo de soporte, como vimos en el primer artículo, puede cambiar según la política interna de Microsoft con respecto a los forks. La explicación sobre este soporte se puede consultar en el siguiente boletín.

En las pruebas realizadas con ejecutables, nos encontramos con que el comando start, (En primera instancia), ya no soporta forks bajo el sistema operativo Windows Vista, debido a que el explorador de Windows, junto con un filtro llamado Fast I/O, deniegan la ejecución. En su lugar, añaden el parámetro /R al comando DIR para buscar secuencias alternativas.

Esto dejaria a los creadores de Malware en una posición extraña, al no poder usar este método de infección en posibles usuarios que utilicen Windows Vista.

Y digo dejaria, porque Windows Vista, al tener soporte su sistema de archivos a forks, éstos, si son lanzados de determinada manera, se ejecutan sin mayores problemas.

El mayor problema ahora, y según lo que he podido averiguar, reside en el Scripting y en sus motores de ejecución.

Lenguajes como Visual Basic Script, Perl o Python soportan la ejecución de scripts, incluso si están dentro de una secuencia alternativa.

Para ejecutar las pruebas he utilizado un script para cada uno de los motores.

Script en Python

import os                                        #Importamos el módulo OS
ruta = ‘C:\Windows\system32\calc.exe’      #Path de la aplicación
os.system(ruta)                              #Ejecución de la aplicacón

Script en Perl

system(“calc.exe”);

Script en VBS

msgbox(“http://windowstips.wordpress.com“)

Estos scripts, los he introducido en un fichero llamado p0c.txt. En la siguiente imagen se refleja este acto.

dir

Imagen 1.- Secuencias alternativas en un fichero

Para la primera ejecución utilizaré el motor de ejecución de scripts que trae Windows Vista. Este motor de scripts tiene un parámetro por el cual podremos indicarle con qué motor vamos a lanzar el script.

cscript

Imagen 2.- Ejecución de ADS a través motor de Scripting

En la segunda ejecución utilizaré el motor de ejecución de scripts de Python para lanzar un sencillo script que abra la calculadora de Windows.

python

Imagen 3.- Ejecución de ADS a través del motor de Python

En la tercera y última ejecución, utilizaremos el motor de ejecución de scripts de Perl para lanzar otro sencillo script que abra la calculadora de Windows.

perl

Imagen 4.- Ejecución de ADS a través del motor de Perl

Como se puede comprobar, la ventana de propagación de malware a través de esta técnica todavía está vigente en Windows Vista, con lo que tendremos que seguir protegiéndonos de la misma manera con la que nos protegíamos cuando teníamos Windows 2K/XP/2K3.

Saludetes!

Referencias

ADS Qué es y cómo funciona

The Dark Side NTFS





Windows Vista y Alternate Data Streams parte II de III

17 06 2009

Como comentamos en la primera parte de  estos tres artículos dedicados a los ADS (Alternate Data Streams) en Windows Vista, fácilmente se llega a la conclusión de que Vista sigue soportando de forma nativa los forks o ADS en su sistema de ficheros.
La primera prueba que haremos para verificar si Vista sigue soportando los ADS es sencilla, y no es más que intentar crear un ADS de la misma forma en que la hemos estado creando estos últimos años con XP/2K3.

Foto1

Imagen 1.- Creación de ADS en Windows Vista

En la imagen anterior se pueden apreciar varias cosas:

- El ADS se puede crear perfectamente y se puede visualizar de forma correcta con el comando MORE

- Tal y como se puede leer en el artículo Q101353 de Spectra, los dos puntos que hacen referencia a un ADS, pueden variar en un futuro. En Windows Vista esta convención sigue vigente, tal y como se muestra en la imagen anterior.

En ese mismo artículo se cita algo muy importante. Y es que algunos comandos soportan múltiples ADS y otros no.
En Windows XP, el comando START soporta de forma nativa este tipo de flujos de datos, pudiendo acceder de forma correcta a ellos. La sintaxis que se seguía y se sigue usando es la siguiente:

start RUTA_FICHERO:ADS

Si el intérprete de comandos se encuentra en la misma ruta en donde se encuentra el fichero a iniciar, se puede ejecutar el comando START de la siguiente manera:

start .\Fichero:ADS

Foto2

Imagen 2.- Error de ejecución en comando START bajo Windows Vista

En la imagen anterior nos encontramos con algo muy interesante, y es que el comando START, ejecutado en Windows Vista,  manda ejecutar el ADS, pero el explorador de Windows no encuentra una aplicación adecuada para poder abrir el fichero. Si realizamos la misma operación, pero analizando las llamadas que se realizan al sistema operativo, nos encontramos con que el comando es válido y que accede al ADS correctamente. El explorador de Windows es el que no puede encontrar una aplicación adecuada para abrir este tipo de fichero (En este caso el notepad). El resultado que obtiene el explorador de Windows para este evento es NAME INVALID.

Foto3

Imagen 3.- Evento NAME INVALID Process Monitor

FOTO4

Imagen 4.- Evento Process Monitor

En este caso, y para que Windows Vista ejecute la aplicación asociada a a este fichero, tendremos que invocar directamente a la aplicación que deseemos utilizar para visualizar este ADS. En nuestro caso utilizaremos el Notepad.

Foto5

Imagen 5.- Ejecución ADS en Windows Vista

Como se puede comprobar, la aplicación notepad sigue teniendo soporte para los forks en el sistema de ficheros. Se puede repetir este mismo proceso, pero con otro archivo, como una imagen por ejemplo. Así se puede comprobar qué aplicación soporta ADS y qué aplicación no.

foto6

Imagen 6.- Ejecución ADS en Windows Vista

Tal y como comenté en otro artículo dedicado a los ADS, muchos de los creadores de Malware utilizan este tipo de técnicas para dar “jugo” a sus creaciones. Entre todas ellas, los ADS se pueden utilizar para:

- Ocultación de datos
- BBDD
- Ejecutar ficheros binarios (EXE, MSI, BAT, COM, VBS)

Con respecto a Windows XP/2K3, Windows Vista ha cambiado su modelo de ejecutar archivos ejecutables dentro de un ADS.

Si introducimos un archivo ejecutable dentro de un ADS tal que así:

type p0C.exe > fichero.txt:malware.exe
start .\fichero.txt:malware.exe

Obtendremos un bonito error igual que el visto en la imagen número II. Si monitorizamos las llamadas al sistema, vemos que el sistema operativo es capaz de abrir el fichero, pero se encuentra con un error al tipear el comando START. Un resultado llamado FAST IO DISALLOWED.
Bajo mi punto de vista, y según lo que he podido averiguar, este error (FAST IO DISALLOWED) de acceso es causado por un filtro que maneja las operaciones de entrada y salida del sistema de ficheros. Aunque el fichero se puede abrir sin ningún problema, el filtro rechaza la operación, se genera la advertencia de nombre inválido (NAME INVALID) y posteriormente genera el error por pantalla.

Esta duda la dejo abierta, por si nos lee algún otro Forensic-Boy y nos quiere arrojar más luz sobre el asunto.

En una primera instancia, los resultados obtenidos nos dicen algo bueno para la seguridad del equipo. Y es que en Windows Vista no se pueden invocar archivos ejecutables a través de ADS. En la tercera y última parte, seguiremos con las pruebas (Esta vez con archivos ejecutables) y repasaremos las posibles vías de infección con malware ejecutable que se pueden presentar en Windows Vista y NTFS, utilizando forks.

Saludos a tod@s!

Referencias

Disallowing a Fast I/O Operation in a Preoperation Callback Routine

Fast I/O

Managed file system filter model and architecture (Patente) 

Malware y WordPress





Windows Vista y los Alternate Data Streams I parte

7 06 2009

Hola a tod@s!

En esta ocasión, y, tras haber leído en estos últimos días nuevos artículos que hablan sobre los flujos de datos en sistemas de archivos NTFS, me he decidido a escribir dos pequeñas entradas en el blog acerca de los flujos de datos en sistemas de archivos NTFS, pero esta vez realizando las pruebas en mi flamante Windows Vista. Los nuevos artículos que he leído no arrojan nada nuevo, realizando las mismas pruebas de hace 7 años,  y, en algunos casos, fomentan la desconfianza general sobre el sistema de archivos NTFS, dando a creer al usuario, en ciertos párrafos, que la mejor alternativa es “volver” a viejos sistemas de ficheros como FAT o FAT32.

Empezamos!

Al soportar Windows Vista casi íntegramente el formato NTFS, es lógico llegar a la conclusión de que Windows Vista soporta de forma nativa los Alternate Data Streams (En adelante ADS). El caso que nos ocupa en estos tres artículos es la forma en la que Windows Vista accede a esta característica.

Al contrario de lo que he leído estas últimas semanas en los artículos que referencian a ADS, sólo muestran inquietud en el formato de archivos NTFS, y, en especial, a pruebas realizadas en Windows 2000 y XP/2K3.

Microsoft adoptó la decisión de soportar este tipo de datos asociados (llamados forks) en el sistema de archivos NTFS, ya que en su día, multitud de sistemas de archivos dotaban de esta característica a sus sistemas de archivos. Hoy día, existen multitud de sistemas de ficheros que soportan de forma nativa esta característica.

Los forks, al igual que los atributos extendidos, se utilizaban antiguamente para mantener información adicional sobre un fichero o directorio, sin cambiar la estructura del mismo, es decir, sin modificar el fichero.

Sistemas de ficheros como HFS (Hierarquical File System), UFS (Unix File System), o UDF (Universal Disk Format) soportan estas características (forks o atributos extendidos).

Volviendo al tema de arquitectura de ficheros NTFS, el stream de datos se identifica a través de los “:” (sin comillas). Según Microsoft, en el sistema operativo, residen comandos que pueden o no soportar estos flujos de datos, y que en cierta manera depende de ellos si le dan soporte o no a ese comando en un futuro. Lo mismo pasaria en el caso contrario, en donde tuviésemos un comando que soporta de forma nativa estos flujos de datos y en un futuro no. Según Microsoft, la identificación de los dos puntos para relacionar el flujo de datos podría cambiar en un futuro.

En posteriores artículos veremos en qué manera ha cambiado Windows Vista en el soporte de ADS.

Referencias

Windows NT Supports Multiple Data Streams Inconsistently

How To Use NTFS Alternate Data Streams

Fork (filesystem)

The Data Fork and the Resource Fork

Universal Disk Format 

Hasta la próxima entrega!





Análisis de Malware Online. Anubis

23 01 2009

Hola a tod@s!

El análisis de Malware a nivel corporativo, cada día está tomando más importancia y protagonismo. Es de vital importancia conocer, en la medida de lo posible, hacia donde han ido a parar nuestros datos, en caso de intrusión.

International Secure Systems Lab se han hecho eco de esta problemática y han desarrollado un servicio on-line de análisis de Malware, llamado Anubis.

Anubis es un servicio on-line de análisis de Malware o “archivos sospechosos”, que según su propaganda, analiza los ejecutables por ti.

Entre las tareas que desarrolla Anubis se encuentran las siguientes:

  • Claves de registro que lee
  • Claves de registro que modifica
  • Análisis de la red
  • Firmado MD5 & SHA1 de los ficheros
  • Ficheros modificados
  • Actividad de disco

Las opciones de exportación de datos también son muy interesantes, pudiendo, en cualquier caso, exportar el fichero de salida a los siguientes formatos:

  • PDF
  • TXT
  • HTML 
  • XML

Como podéis observar, en una primera instancia, y para ser un servicio totalmente gratuito, nos ofrece muchas alternativas a las ya conocidas, como VirusTotal de Hispasec. El trabajo conjunto de estas dos herramientas, es ya un paso importante para un analista de Malware en su intento de conseguir información.

Leyendo el otro día la entrada de mi colega y amigo Pedro Sánchez, en la que explicaba cómo después de la investidura de Obama, han empezado a florecer en la Web diversas páginas con contenido “extraño y malvado”.

La página en cuestión ya no existe, y en su lugar aparece otra página un poco más…. Romántica… Ayer me descargué el malware y lo analicé con esta herramienta (ando un poco flojete después de las vacas…)

web

La cuestión es que aquí tenéis la información inicial del reporte, junto con su captura de red.

http://anubis.iseclab.org/?action=result&task_id=19382041103f6fdc4515f0b49783df698

Y si el Malware se encuentra en una Web al estilo de JavaScript u objetos realizados en Flash?

Pues los chicos han pensado en ello, y han desarrollado otra plataforma (en Alpha), que se llama Wepawet, un servicio de análisis on-line de Malware basado en Web.

Después de subir el ficherito, y tomarme un par de cubatas, se me ocurrió una idea que tal vez… no sé… Os lo cuento en otro post…

Saludos a tod@s!!

Referencias

http://iseclab.org/

http://anubis.iseclab.org

http://wepawet.iseclab.org/





Ceregumil concentrado II + GMAIL 1ª Parte

12 11 2008

Hola a tod@s!

Me tomo la libertad de plagiar el título del Post de mi compi Pedro Sánchez para hablaros de otra herramienta similar a la que os ofrece Pedro en su Blog.

Este caso es ligeramente diferente, pero sigue un mismo fin. El caso es que se presupone que puede haber información de cuentas de GMAIL en memoria RAM o almacenadas por el proceso. Como bien comenta Pedro, el proceso puede guardar, dependiendo de cómo esté de recursos la máquina en ese momento, la información en varios lugares. Nosotros intentaremos realizarlo desde la RAM. Para ello vamos a utilizar una herramienta de Spectra que, no sé por qué, ha pasado desapercibida durante mucho tiempo. La herramienta se llama User Mode Process Dumper, y sobre ella vamos a trabajar.

Esta herramienta tiene la capacidad de volcar al vuelo, y sin tener que matar al proceso, la memoria del proceso que le pasemos como parámetro. Vuelca incluso procesos de sistema!

Para ello, tenemos dentro de la herramienta, un ejecutable llamado Userdump.exe, el cual utilizaremos para este fin. La herramienta tiene soporte para 64 bits y plataformas basadas en Itanium, lo cual es un punto a su favor.

Y para los desarrolladores, esta herramienta tiene un instalador, el cual instala un driver en el sistema, para que pueda Hookear ciertas llamadas al kernel. Realizará estas funciones para dotar a la herramienta de volcar la memoria de un proceso cuando éste finalice de forma no planeada, forzosa, etc…

El funcionamiento de esta herramienta es bastante lógico y muy sencillo de utilizar. Para ello, no tendremos ni que utilizar la herramienta TaskList para visualizar los procesos por línea de comandos, ya que la herramienta viene programada, con el parámetro -p, para realizar esta función.

userdump1

Imagen 1.- Userdump mostrando procesos

Una vez que hayamos visualizado los procesos por línea de comandos, podremos extraer el contenido de la memoria del proceso que queramos, utilizando para ello la herramienta userdump.exe. El funcionamiento básico, como hemos dicho antes, es bastante sencillo de utilizar.

userdump

Imagen 2.- UserDump extrayendo memoria de un proceso determinado

Una vez extraído la memoria del proceso, podremos utilizar le herramienta de SysInternals-Spectra Strings para extraer el texto.

Strings iexplore.dmp > iexplore.txt

Una vez realizado ese cambio, podremos buscar, con la herramienta FindStr o Find texto específico o cadenas de texto específico.

strings

Imagen 3.- Resultado extracción Strings

En el próximo post veremos diferentes técnicas para extraer la misma información, pero automatizando las tareas.

Saludos!