miércoles, 4 de abril de 2012

BestFakeDNS para Metasploit

En los anteriores dos posts [1] [2] veíamos como mejorar algunas de las funcionalidades del módulo "fakedns" de Metasploit de una forma sencilla, modificando tan solo un par de lineas del script.

Sin embargo, estas soluciones rápidas, aunque bastante funcionales, pueden no funcionar perfectamente en cualquier circunstancia. Por ello, he publicado mi propia versión del "fakedns" a la que he llamado bestfakedns, y que puede ser descargada de AQUÍ.

Esta versión está basada en el fakedns original de Metasploit, pero se le han añadido la siguiente nueva funcionalidad:
  • Control de Acción (TARGETACTION): Ya no necesitamos modificar el código si queremos que funcione de la manera original o como lo hacíamos en los posts anteriores. Ahora tenemos un parametro que podemos definir como "BYPASS" o "FAKE" y que determina como empleará el módulo la lista que le pasamos.
  • Control de Errores: Se ha añadido el control de errores que ya mencionamos en los anteriores posts, para evitar que el módulo casque. Además ahora muestra un mensaje notificando que se ha intentado resolver un nombre inexistente.
  • Lista múltiple: Se pueden configurar varios nombres de hosts en la lista, tanto en BYPASS como en FAKE.
  • Wildcard: Es posible definir nombres de hosts con wildcards, por ejemplo *.pentester.es
Si por ejemplo quisiéramos capturar todas las conexiones a cualquier nombre del dominio pentester.es, las que vayan a www.yahoo.com y ninguna más, podríamos hacerlo de la siguiente forma:

msf > use auxiliary/server/bestfakedns
msf  auxiliary(bestfakedns) > show options

Module options (auxiliary/server/bestfakedns):

   Name          Current Setting  Required  Description
   ----          ---------------  --------  -----------
   SRVHOST            0.0.0.0                 yes       The local host to listen on.
   SRVPORT            53                        yes       The local port to listen on.
   TARGETACTION  BYPASS              yes       Action for TARGETDOMAIN (fake|bypass)
   TARGETDOMAIN  www.google.com  yes       The list of target domain names we want to fully resolver (bypass) or fake resolve (fake)
   TARGETHOST                                 no        The address that all names should resolve to

msf  auxiliary(bestfakedns) > set TARGETACTION FAKE
msf  auxiliary(bestfakedns) > set TARGETDOMAIN *.pentester.es www.yahoo.com
msf  auxiliary(bestfakedns) > set TARGETHOST 192.168.1.100
msf  auxiliary(bestfakedns) > run


Estas nuevas funcionalidades, al menos a mi, me resultan muy útiles tanto en auditorías internas como en análisis de dispositivos. Existen otras herramientas de fakedns que probablemente ya lleven estas funcionalidades "de serie", pero a mi me resulta especialmente cómodo utilizarlo desde Metasploit.

¿Cuál es tu herramienta favorita? ¿Alguna funcionalidad que eches en falta?

5 comentarios:

Adrián dijo...

Muy currado, y más útil que el original. Ahora, que lo incluyan en el svn oficial de metasploit :)

Jose Selvi dijo...

@Adrián: Está mandado desde hace un par de semanas, pero... la gente de Metasploit es un poco especial a la hora de aceptar contribuciones, al menos esa sensación me da a mi.

Mandado está, con un poco de suerte esta versión sustituirá a la versión original de fakedns dentro de algún tiempo.

Gabriel dijo...

Que buen trabajo, gracias por compartirlo por aca.

ortopedia online dijo...

Eres muy grande, sigue trabajando así

mantenimiento informatico sevilla dijo...

Muy buen trabajo sigue haciendo estas cosas