NGR Bot 1.1.0.0 – Configurando nuestro -IRC C&C- para el análisis

Durante estas semanas he estado realizando un análisis al malware NGRBot, del cual podéis encontrar bastante documentación haciendo una simple búsqueda en Google por el nombre del bot. Os aconsejo para situaros pegarle un vistazo por ejemplo el siguiente paper: http://secniche.org/released/VB_AKS_RB_RJE_NGR_BOT.pdf.

En esta entrada lo que me gustaría es mostrar los pasos a seguir para poder configurar el servidor IRC de manera que podamos controlar a nuestro bot, y llevar a cabo nuestro análisis. Un ejemplo del entorno de análisis sería por un lado la máquina virtual “remnux” como máquina de interacción y por otro una máquina virtual con Windows XP como máquina de infección. A nivel de red, será necesario que las dos máquinas tengan visibilidad entre ellas y estén completamente aisladas (Host-Only) del resto del mundo, todo en un entorno controlado.

Una vez tenemos nuestro entorno montado ejecutamos en la máquina Windows XP el malware NGRBot veremos cómo realiza una serie de peticiones DNS, que deberemos resolverle desde nuestra máquina “remnux”, por ejemplo con el script fakedns. Una vez resolvemos las peticiones DNS veremos cómo realiza intentos de conexión tcp a un determinado puerto (depende de como haya configurado el creador la muestra), que ya sabemos que son intentos de conexión al servidor de IRC. Levantamos nuestro servidor IRC en remnux (lleva por defecto inspircd) en el puerto que toque.

Para cambiar el puerto y ajustarlo al que necesita el bot, editamos la siguiente opción:

$ vi /etc/inspircd/inspircd.conf
...
<bind address="" port="6666-6667" type="clients">
...

Una vez configurado arrancamos el servidor IRC:

$ ircd start 

Después de esto, el bot se conectará a nuestro servidor de IRC; el canal al que se conecte dependerá de la configuración del creador de la muestra. Nosotros podremos verlo en el tráfico de red o con el comando /list en el servidor IRC. En nuestro caso es el canal #Chan. Nos conectamos al canal y veremos a nuestro bot con un nombre como {ESP|XPa}qqqacug, que le indica al atacante que es un equipo con idioma Español, sistema operativo Windows XP y que la cuenta es administrador (la «a» final antes de «}»).

Llegados a este punto ya hemos conseguido que el bot se conecte a un servidor IRC nuestro, pero si ejecutamos comandos que vemos en diferentes análisis observamos que estos no funcionan. Esto sucede porque existen varias cosas que son necesarias para que el bot empieze a hablarnos y darnos información de la máquina. Veamos qué necesitamos configurar en nuestro IRC C&C:

1. Deberemos ser OPER del IRC. Ajustaremos en nuestro fichero de configuración del irc desde dónde es posible la conexión para ser operador (comando oper). En esta sección podréis ver el password y user con el que se puede ser oper; los privilegios los marca el campo type.

<oper name="root"
 password="malware"
 host="*@localhost *@remnux *@0::ffff:127.0.0.1 *@10.0.0.2 *@0::ffff:10.0.0.2"
 type="NetAdmin">

Para hacernos oper (en este caso) deberemos ejecutar una vez conectados:

/oper root malware

2. Después tendremos que fijar en el IRC el virtualhost (http://wiki.inspircd.org/Virtual_Host) con el comando sethost para el bot (http://wiki.inspircd.org/Modules/2.0/chghost).

Activamos en nuestro fichero de configuración del servidor IRC (inspircd.conf) el comando CHGHOST añadiendo el módulo:

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# CHGHOST module: Adds the /CHGHOST command
<module name="m_chghost.so">

Ejemplo:

/chghost {ESP|XPa}iajehck sethost

Nuestra muestra tiene como virtualhost la cadena sethost, pero podría haber sido cualquier otra.

3. Deberemos identificar el carácter o prefijo que debe tener cada uno de los comandos. La aplicación para crear la muestra de malware pone por defecto el carácter “!”, pero es modificable por el creador.

Después de estos sencillos pasos si lanzamos comandos en el canal irc recibiremos respuesta de nuestro bot y tendremos el control (ojo que tiene un comando de mute para el bot).

Espero que este pequeño post os ayude a realizar vuestros análisis de este ejemplar :-)

[Sobre el autor]