En muchas ocasiones cuando nos encontramos frente un malware y tenemos que realizar un análisis, existen una gran cantidad de herramientas que podemos utilizar. Cada una de ellas cumplen funciones determinadas y nos permiten conocer información acerca del comportamiento de dicha amenaza y las actividades que realiza en un sistema infectado. Hoy vamos a ver cómo hacer para conocer dónde se intenta conectar un código malicioso sin siquiera contar con acceso a Internet, simplemente mediante la utilización de herramientas como ApateDNSFakeNet.

El principal momento para el uso de este estilo de herramientas es durante la recopilación de información. Si bien no será posible observar el comportamiento real de la amenaza, uno puede utilizar estos datos para conocer a qué sitios se intenta conectar, y qué información intenta obtener.

La primera de las aplicaciones que podemos utilizar para este cometido es ApateDNS, esta herramienta desarrollada por la gente de Mandiant, nos permite redirigir todas las consultas DNS (Domain Name Service) a través del puerto UDP 53 hacia dónde nosotros especifiquemos y de esta manera identificar los sitios a los cuáles se intenta conectar el código malicioso bajo análisis.

En otras palabras esta herramienta nos permite conocer de manera sencilla y efectiva dónde intenta conectarse un código malicioso. En esta oportunidad la utilizamos para encontrar los tres servidores a los que se conecta una  variante de Win32/Dorkbot.B (MD5: 69db964e52db5b5cecd3d6c4f58527f5).

Realizar un manejo seguro y eficiente dentro de nuestro laboratorio de análisis de malware permite evitar cualquier tipo de filtración o fuga de información, no solo de la amenaza que esté bajo estudio, sino también para evitar acciones evasivas por parte del cibercriminal detrás de esta botnet.

Además existen otros fines para los cuáles podríamos utilizar las funcionalidades de esta aplicación, por ejemplo, configurando la dirección de respuesta hacia dónde nosotros hemos montado algún servidor falso podemos ver puntualmente qué información enviará el código malicioso o el protocolo que intenta utilizar. Este tipo de enfoques puede ser útil si el objetivo principal del malware  es el robo de información.

Por otro lado, si lo que queremos es simular algún otro tipo de servicio también podemos utilizar FakeNet. Esta herramienta no cuenta con una interfaz gráfica pero nos va a permitir utilizar otras funcionalidades como por ejemplo la posibilidad de crear nuestros propios scripts en Python, un conocido lenguaje de programación para emular algún que otro servicio.

FakeNet es una aplicación que se puede ejecutar desde la línea de comando de Windows y nos permitirá conocer información acerca de los sitios web visitados por el código malicioso o las comunicaciones realizadas. Además, por defecto cuenta con un conjunto de archivos con los cuales emulará cualquier petición realizada por un programa.

Como es posible capturar toda la información, es importante conocer que podemos identificar el puerto, el password, y otros datos más que son utilizados para que un equipo infectado con esta variante de Dorkbot se conecte con el panel de control. En la siguiente imagen, podemos observar la contraseña del servidor IRC al que se conecta, el puerto y el nombre de usuario con el cual se intentó conectar el sistema infectado:

Como podrán imaginar, falta conocer a qué canal ingresa para recibir las órdenes del botmaster, y así seguir funcionando. Esta parte se puede realizar a través de distintos métodos. Sin embargo, uno de ellos sería utilizar otra de las funcionalidades de estas herramientas y armar un pequeño script en Python que simule ser un servidor IRC y  capture también el nombre del canal. Mediante unas pocas líneas de código esto se puede armar y así obtendremos todos los datos de conexión:

De esta manera es posible capturar uno de los últimos datos acerca de los servidores que utiliza el cibercriminal para controlar a los equipos infectados y conocer de qué manera está actuando. Además, FakeNet guarda una captura del tráfico de red para su posterior análisis, si bien no contiene toda la información real es una muy buena aproximación a cómo se comportará el código malicioso en un entorno legítimo.

Tal como han visto en el presente post, la selección de las herramientas nos puede ahorrar mucho trabajo al momento de realizar un análisis. Además, saber qué tipo de información necesitamos es de mucha ayuda para conocer qué sitios se están utilizando para el cibercrimen y así proceder a darlos de baja haciendo la correspondiente denuncia.

Si bien existen las circunstancias en que estas herramientas puedan no ser las ideales para el trabajo, durante las etapas de captura de información e identificación de un código maliciosos pueden ser muy útiles para el analista.

Pablo Ramos
Security Researcher