Instalación Honeytrap
La instalación es sencilla, se resuelven algunas dependencias y nos descargamos el código por GIT. Cuando se compila puede que aparezca un error debido a que se declara una variable que luego no se usa, podemos omitir esa comprobación y compila sin problemas. Finalmente, editamos el fichero de configuración según nuestras necesidades.
Antes de lanzar la aplicación, como hace uso de ip_queue (IPQ) tenemos que añadir la siguiente regla en iptables:
$ sudo iptables -A INPUT -i eth0 -p tcp --syn -m state --state NEW -j QUEUE
$ honeytrap -C /opt/honeytrap/etc/honeytrap/honeytrap.conf -u nobody -g nogroup -t 5
Instalación OpenFPC
La instalación de OpenFPC también es sencilla. Tras resolver las dependencias, bien instalando de paquete o compilando de la fuente, y hacer algún que otro tweak por tratarse de Debian, configuramos OpenFPC para que escuche por la interfaz que queramos, habilitamos las sesiones y definimos contraseñas para MySQL, la GUI y la consola. Una vez esté en marcha, podemos comprobar que captura tráfico ejecutando alguno de los siguientes comandos:
$ openfpc -a status
$ openfpc-client -a status
Una vez tenemos todo el sistema preparado, vamos a ver cómo se produciría la captura del bot por parte de Honeytrap.
Veremos los pasos de forma didáctica y sencilla sobre cómo se produce la comunicación. Supongamos que han subido un fichero a un servidor web y consiguen ejecutar el código PHP. Cuando se ejecuta, éste hace una petición a nuestro servidor DNS para un dominio malicioso, quien resolverá a la dirección IP de nuestro Honeytrap.
Una vez le han dado la IP falsa, el bot establece la conexión con el supuesto servidor, después de que Honeytrap haya completado el saludo TCP, y le envía la información que haya sido definida en el código. Por supuesto, el bot se quedará esperando la respuesta del servidor, ya que éste no tiene ninguna funcionalidad y es posible que no funcione como se espera o que no haya mucha información que analizar. Más adelante veremos lo que ha capturado honeytrap y OpenFPC.
Para ver lo que ha capturado OpenFPC accedemos a la consola web y nos descargamos el PCAP de la conexión. Wireshark lo decodifica como tráfico IRC y vemos que el cliente envía los siguientes comandos:
PASS ro
USER ro|254 127.0.0.1 localhost :Linux remnux 3.0.0-30... (Utilizé una REMnux para levantar el servidor apache y dejar el malware)
NICK Pro|812
El servidor no le contesta, por lo que el bot se queda reconectando indefinidamente.
Con la información de que se trata de un bot IRC que envía NICK Pro|867 y la info que envía sobre el sistema podemos deducir que se trata de una variante de pBot (bueno, y el hecho de que el archivo lo he subido yo ;)). A partir de este punto, podríamos montar un servidor IRC para intentar controlar los bots que se conecten.
Por último, pBot tiene una vulnerabilidad que permite la ejecución de código remoto y existe un módulo de metasploit para aprovechar esta vulnerabilidad y autodestruir el bot. Quizá lo deje para una última entrega, para completar el ejemplo ilustrado. Al fin y al cabo, la idea es erradicar el código malicioso detectado en nuestra red.
Muy instructivo, esperando la siguiente entrega :)
Saludos.