Posts Tagged ‘troyano’

Plugin de Ayuda en Línea MSDN para OllyDbg / Immunity Debugger

Hola a todos. En esta ocasión voy a presentar un plugin para el depurador OllyDbg / Immunity Debugger que va a facilitar la tarea de realizar la ingeniería inversa de un binario de Windows.

¿Qué es OllyDbg?

OllyDbg es un clásico depurador de binarios a bajo nivel para el sistema operativo Windows. Según muchos, es la herramienta ideal para hacer ingeniería inversa de programas de los que no disponemos del código fuente (por ejemplo, malware), y también es muy utilizado en el mundo del cracking.

Una de las características más atractivas que tiene es la posibilidad de cargar plugins. La mayoría están orientados a ayudar en el desempacado de binarios protegidos y evitar la detección del depurador por parte del código malicioso que estemos analizando, aunque los hay para muchas otras tareas.

¿Qué es Immunity Debugger?

Luego de varios años sin actualizaciones, y tras múltiples exploits publicados que no han sido corregidos por el autor, la empresa Immunity decidió comprar el código fuente para actualizarlo y mejorarlo. Así nació Immunity Debugger, que parece estar destinado a reemplazar al viejo Olly, especialmente en el terreno del exploiting que es donde se están concentrando más las nuevas características y los nuevos plugins.

¿La pega? Que los viejos plugins de OllyDbg en general ya no funcionan más. Si se dispone del código fuente se pueden actualizar e incluso hacer que funcionen en ambos. Si no, la cosa está más complicada, aunque hay una herramienta que ayuda bastante.

El plugin que presento hoy funciona correctamente en ambos programas. :)

¿Para qué sirve este plugin?

OllyDbg ya tiene sus años, y aunque se sigue usando no siempre ha envejecido con gracia. ;) Uno de sus puntos flacos es el soporte de ayuda de Windows.

Me explico. Al analizar un binario en Windows normalmente veremos código ensamblador y llamadas a funciones de la Win32 API, que es la interfase de programación de bajo nivel en Windows. Las funciones de la API son muchas y es imposible memorizarlas todas, por lo que es imprescindible poder consultar la documentación de Microsoft para saber qué hace cada una, qué parámetros llevan, etc.

Ahora bien. OllyDbg ya permitía desde sus comienzos consultar la documentación de Microsoft gracias a un archivo llamado “WIN32.HLP“, que venía con la SDK de Windows NT, y contenía la documentación más completa y detallada… de aquel entonces. Pero ya pasaron varias versiones de Windows y unos cuantos años, Microsoft dejó de dar soporte a ese manual para dar paso a la documentación online de la MSDN (Microsoft Developer Network), y lo que ocurre ahora es que al consultar la ayuda desde el Olly muchas de las cosas que buscamos no aparecen. :(

Este plugin viene a llenar ese vacío. Al instalarlo, cuando OllyDbg intente acceder a WIN32.HLP para mostrar la documentación, el plugin lo intercepta y lanza el navegador web en la página correspondiente de la documentación online. :)

¿Cómo se instala este plugin?

Es simple, hay que descargar el archivo zip, extraer el plugin (OllyMSDN.dll) y copiarlo a la carpeta de instalación del depurador.

En OllyDbg esta carpeta suele ser “C:Program FilesOllyDbg” (en castellano C:Archivos de ProgramaOllyDbg”).

En Immunity Debugger la carpeta suele ser “C:Program FilesImmunity IncImmunity Debugger” (en castellano nuevamente reemplazar “Program Files” por “Archivos de Programa”).

El siguiente paso es cargar el depurador, y desde el menú “Help” ir a la opción “Select API help file”. Allí hay que, o bien seleccionar el viejo WIN32.HLP (aunque no se vaya a usar), o al menos un archivo cualquiera que se llame exactamente igual (el contenido da lo mismo). El nombre es importante, porque es la manera en que el plugin se da cuenta de que el usuario está intentando consultar la documentación de Microsoft y no, digamos, la ayuda del propio OllyDbg.

Una vez hecho esto, ya está completa la instalación.

¿Cómo se usa este plugin?

Se usa exactamente igual que el viejo archivo WIN32.HLP. Es decir:

Para acceder a la documentación, vamos al menú “Help” y seleccionamos la opción “Open API help file”.

Para ver la ayuda de una llamada API en concreto, hacemos click derecho sobre la línea de código ensamblador y seleccionamos la opción “Help on symbolic name”.

¿Dónde consigo este plugin?

Se puede comprar por el módico precio de… nah, mentira, es completamente gratuito! :)

Se descarga siguiendo este link: OllyMSDN.zip

El archivo zip contiene el binario precompilado para Windows y el código fuente, liberado bajo la licencia GPL v2. El fuente compila bajo Visual Studio 2008, no lo he probado con otros compiladores.

Bueno, eso es todo por hoy. Que les aproveche! :)


Sígueme en Twitter: @Mario_Vilas | Linkedin: http://es.linkedin.com/in/mariovilas

Share via email
Share on Facebook+1Share on Twitter

Análisis binarios con Mandiant Redline

Bueno, todos sabemos que hay en el mercado varias aplicaciones de nuestros queridos “Mandiant”, no lo digo con sarcasmos porque hay varias aplicaciones que me gustan.

Y bien, sacaron a la luz una aplicación llamada Redline, lo que hace es analizar la memoria, como si fuera “Volatility” pero con GUI.

El trabajo de Redline consiste en analizar la memoria y valorándola mostrar qué proceso tiene más posibilidad de ser malware y cuál menos, contando puntos MRI (Malware Risk Index), pues nada vamos a ver qué tal funciona.

La prueba fue realizada en una maquina infectada con Banker, según Kaspersky – Trojan-Banker.Win32.Banker.mq.

La maquina es de 2 cores y con 1GB de RAM. En más adelante podéis haceros una idea sobre las necesidades de la aplicación.

Bueno, descargamos y vemos que es un .msi, empezamos bien, por todos los santos, nos pide .NET 4.0, bueno que remedio, descargamos, instalamos.

Se instala en un periquete, algo bueno.

Al instalar nos muestra varias opciones de análisis, muy interesante tiene la opción de análisis sobre un “Saved memory File”, que parece a Volatility, elegí el análisis de la maquina local “Analyzing this Computer“. Pinchando ahí vemos que nos permite analizar muchas cositas interesantes como por ejemplo: Hooks, Drivers con sus Exports e Imports, Procesos con sus actividades, etc.

No vamos a jugar con tonterías y pinchamos en “Full Audit” y OK.

Es muy curioso, pero con las características de mi maquina, Redline acabo el análisis en unos 25-30 minutos, curioso la memoria casi no la toca, pero del procesador tira pero que muy bien. Vamos que con un 8008 vais listos =)

Bueno ya tenemos el análisis acabo, vamos a echar un vistazo. Tenemos una lista de procesos, algunos se marcan en rojo, pasos a seguir para el análisis, interesante, seguiremos los pasos.

Un review de los procesos con su valoración, pinchando en cada uno de ellos nos mostrara info más detallada del veredicto.

Vamos a ver porqué están marcados en rojo, pinchamos en uno y nos muestra los factores positivos y negativos por los que valora los procesos. Cuanto más factores negativos mas posibilidad a que lo marque en rojo como sospechoso, bueno buscamos un malware, nos interesan negativos. No puede ser ¡! nos marca un proceso svchost en rojo, porque, por solo 2 factores (indexación de ficheros index.dat).

Y los demás 3 svchost ni si quiera tienen factores negativos, 100% positivo, sin embargo los marca en rojo.

Según mi análisis, mi Banker abrió un iexplorer bajo svchost pero el svchost ni si quiera ha sido detectado, incluso mi iexplorer tenía una conexión establecida con una IP americana con el puerto 80 y por otro lado escuchaba en el puerto 1308 por UDP, pero solo marcó mi iexplorer en 50% sospechoso. El proceso oswin32.exe es nuestro Banker, y también lo marca en gris, jejejeje.

El siguiente paso del análisis que nos indica Redline es verificar las conexiones, vamos a ver, jejejeje mirad, mi iexplorer con sus conexiones pero esta en 50% de amenaza. También con doble clic sobre la conexión os llevara al proceso.

Podemos elegir alguno de los filtros de las conexiones: puertos en escucha, conexiones establecidas o todos.

Bueno, seguimos, el siguiente paso es un Review de las secciones de memoria y DLLs, un punto bastante interesante, hay varios filtros para ver qué es lo que nos interesa, por ejemplo: Mostrar secciones nombradas que se utilizan por menos de 4 procesos, o las mismas secciones pero las que se marcaron en rojo como desconfiados, otro filtros también bastante interesante es el que muestra las secciones de memoria inyectadas.

También una comodidad de Windows, haciendo doble click nos lleva al proceso, si pulsamos sobre las inyecciones que aparecen me lleva al proceso del propio Mandiant Redline :) Es decir, no confía ni si quiera en las inyecciones suyas, jajajajaja

Otro paso que nos dice a seguir Redline es revisar los handles desconfiados.

Aquí también hay filtros de “solo desconfiados” o todos.

Bueno, el siguiente paso son los Hooks, tenemos varios filtros de diferentes tipos de hooks, parece que confía en todos :)

Nada interesante, seguimos.

Y por fin nuestro último paso de nuestro análisis es “Drivers and Devices”, aquí no tenemos ningún filtro, es decir, todo a mano, es una información bastante interesante que nos proporciona. Pinchando en cada uno de ellos nos muestra la info completa sobre él, hasta las funciones que tiene, que importa y que exporta, strings, certificados, etc.

Bueno, hemos seguido los pasos, y parece que no nos ayudaron en nada, claro que si hubiéramos analizado alguno de los pasos anteriores más a fondo seguramente hubiéramos encontrado algo interesante.

Más cositas interesantes, podemos ver secciones de memoria, strings, puertos utilizados o handles de todo tipo por cada proceso, esto ya me gusta más.

Muy interesante en la parte de Detailed Sections tenemos todas las secciones del proceso, a la derecha podremos hacer búsquedas en cada uno de ellos y ver qué es lo que exporta, importa, etc.

Otra cosita muy interesante, los strings de cada proceso, podemos buscar patrones por ahí, por ejemplo yo encontré una keyword de Banco Popular :)

Otra cosa que vi, la pestaña Host, proporciona la información completa sobre los procesos, punto muy interesante son procesos en jerarquía, conexiones establecidas, drivers, hooks, información detallada del equipo y el SO, vamos lo mismo pero en genérico.

Algunos de los puntos más positivos que encontré son: la aplicacion nos permite crear un Agente portable directamente desde el menú de la aplicación, muy útil para un análisis externo y sin necesidad de instalarlo, permite guardar el análisis y seguir con el mismo en otro momento.

Bueno, resumiendo, la aplicación no está nada mal, pero es como utilizar Volatility con GUI o SysInternals TODO EN 1.

La interfaz gráfica es muy amigable y fácil de manejar. Para un análisis yo no lo aconsejaría para una persona que se basara solo en los veredictos de la aplicación ya que Redline da unos Falsos positivos brutales. Un claro ejemplo con los svchost, aparte marca su proceso también como sospechoso en un 24% :)

Podría mejorar el análisis, si mi Banker hubiera cerrado la conexión antes de que lanzara analizar, las conexiones no hubieran aparecido y mi iexplorer no lo hubiera marcado como 50% de sospechoso, pero bueno por otra parte no olvidemos que es un análisis sobre la memoria.

La veo útil en algunas ocasiones y cómoda para utilizar. Sin embargo la interfaz algunas veces en mi equipo tarda en reaccionar, parece que le faltan cores :)

Estoy seguro que la próxima versión será mucho más currada y arreglaran los cálculos de los factores positivo, negativos y de los veredictos.

A disfrutar.

Share via email
Share on Facebook+1Share on Twitter

Ataque dirigido Stuxnet

1. Botnet Stuxnet

Existen muchos tipos de ataque automatizado, por ejemplo: ataques masivos donde muchos sistemas son infectados, ataques aleatorios donde no importa que servidor se infecta, la cuestión es conseguir controlar muchos zoombies, también cabe destacar los ataques dirigidos, en los que hay un objetivo concreto, por ejemplo centrales nucleares, y se diseña un malware que infectará máquinas hasta hayarse en un sistema crítico y ejecutar la acción malévola.

La Botnet Stuxnet es un ataque masivo automático y dirigido, altamente peligroso ya que su rutina de propagación explota diversos 0days (vulnerabilidades no públicas) combinado con otras vulnerabilidades públicas altamente efectivas, y el objetivo de este ataque dirigido es espionaje industrial y sabotaje, contra un tipo de infraestructuras concretas de un país concreto, Irán.

1.1. Ataque dirigido a un país

Este gusano, se propagó por todo internet de forma no uniforme, infectando millones de computadoras. En la distribución de número de infecciones por país, se puede apreciar que el ataque iba dirigido a un país en concreto, Irán el cual recibió un 50% de las infecciones aproximadamente.

Según la wikipedia, hay datos no oficiales de que actualmente el malware se está orientando contra la China, en concreto seis millones de infecciones.

1.2. Ataque dirigido a un tipo de infraestructuras

Este software se ha ido propagando por la red de área global Internet y también por redes internas de empresas y organizaciónes hasta caer en sistemas SCADA. Las vulnerabilidades con las que va equipado este malware, hacen que pueda tener gran proliferación por redes locales, hasta llegar a los sistemas que se desea espiar y controlar.

Los sistemas SCADA son utilizados para controlar dispositivos e infraestructuras críticas, como estaciones espaciales, centrales nucleares, etc. Este malware, no sólo es capaz de espiar actividad realizada en estos sistemas, sino que también tiene la intencionalidad de causar daños para sabotear los dispositivos, infraestructuras, etc.

1.3. Conclusiones

Stuxnet, claramente se trata de un cyberataque contra Irán y China, originado probablemente por otros países rivales con intención de obtención de información industrial y sabotaje. Se cree que este malware puede estar diseñado para averiguar qué países cuentan con armamento nuclear, aunque no se puede validar 100% esta información.

En todo caso, por la complejidad en sus algoritmos de ocultación, propagación y su intencionalidad, parece haber sido desarrollado por algún tipo de organización y no un grupo de hackers.

Stuxnet demuestra que a día de hoy, la ciberguerra es posible y que conviene estar preparados.

Share via email
Share on Facebook+1Share on Twitter