
Un práctico servicio DNS escrito en Go para ayudar en la detección de varios tipos de vulnerabilidades ciegas. Monitorea el servidor de un pentester en busca de interacciones DNS fuera de banda y envía notificaciones de consultas a través de Slack.
Un práctico servicio DNS escrito en Go para ayudar en la detección de varios tipos de vulnerabilidades ciegas. Monitorea el servidor de un pentester en busca de interacciones DNS fuera de banda y envía notificaciones con los detalles de la solicitud recibida a través de Slack. DNSObserver puede ayudarte a encontrar errores como inyección ciega de comandos del sistema operativo, SQLi ciego, XXE ciego, ¡y muchos más!

Para una visión general más detallada e instrucciones de configuración, consulta:
https://www.allysonomalley.com/2020/05/22/dnsobserver/
Lo que necesitarás:
Si aún no tienes un VPS listo para usar, crea un nuevo VPS Linux con tu proveedor preferido. Anota su dirección IP pública.
Registra un nuevo nombre de dominio con tu registrador preferido; cualquier registrador debería funcionar siempre que permita establecer servidores de nombres personalizados y registros glue.
Ve a la configuración DNS de tu nuevo dominio y busca la sección de 'registros glue'. Agrega dos entradas aquí, una para cada nuevo servidor de nombres, y proporciona a ambas la dirección IP pública de tu VPS.
A continuación, cambia los servidores de nombres predeterminados a:
ns1.<TU-DOMINIO>
ns2.<TU-DOMINIO>
Conéctate por SSH a tu VPS y realiza estos pasos:
Instala Go si aún no lo tienes. Las instrucciones de instalación se encuentran aquí
Asegúrate de que los puertos DNS predeterminados estén abiertos: 53/UDP y 53/TCP. Ejecuta:
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
Obtén DNSObserver y sus dependencias:
go get github.com/allyomalley/dnsobserver/...
Hay dos argumentos obligatorios y dos opcionales:
domain [OBLIGATORIO]
Tu nuevo nombre de dominio.
ip [OBLIGATORIO]
La dirección IP pública de tu VPS.
webhook [Opcional]
Si deseas recibir notificaciones, proporciona la URL de tu webhook de Slack. Se te notificará de cualquier consulta a tu nombre de dominio o a cualquier subdominio de tu dominio (he excluido las notificaciones para consultas a otros dominios de nivel superior y a tus servidores de nombres personalizados para evitar notificaciones excesivas o aleatorias). Si no proporcionas un webhook, las interacciones se registrarán en la salida estándar. Las instrucciones para configurar el webhook se encuentran aquí.
recordsFile [Opcional]
Por defecto, DNSObserver solo responderá con una respuesta a las consultas de tu nombre de dominio o de cualquiera de sus servidores de nombres. Para cualquier otro host, seguirá notificándote de la interacción (siempre que sea tu dominio o un subdominio), pero devolverá una respuesta vacía. Si deseas que DNSObserver responda a consultas A para ciertos hosts con una dirección, puedes editar el archivo config.yml incluido en este proyecto o crear el tuyo propio basado en esta plantilla:
a_records:
- hostname: ""
ip: ""
- hostname: ""
ip: ""
Actualmente, la herramienta solo utiliza registros A; en el futuro podría añadir CNAME, AAAA, etc. Aquí tienes un ejemplo de un archivo de registros personalizado completo:
a_records:
- hostname: "google.com"
ip: "1.2.3.4"
- hostname: "github.com"
ip: "5.6.7.8"
Estos ajustes significan que quiero responder a las consultas de 'google.com' con '1.2.3.4', y a las consultas de 'github.com' con '5.6.7.8'.
¡Ahora estamos listos para empezar a escuchar! Si deseas poder realizar otras tareas en tu VPS mientras DNSObserver se ejecuta, inicia una nueva sesión de tmux primero.
Para la configuración estándar, pasa los argumentos obligatorios y tu webhook:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX
Para lograr lo anterior, pero también incluir algunas respuestas de consulta A personalizadas, agrega el argumento para tu archivo de registros:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX --recordsFile my_records.yml
Suponiendo que has configurado todo correctamente, DNSObserver debería estar ahora en ejecución. Para confirmar que funciona, abre un terminal en tu escritorio y realiza una consulta de tu nuevo dominio ('example.com' en esta demostración):
dig example.com
¡Deberías recibir una notificación de Slack con los detalles de la solicitud!