
Un útil servicio de DNS escrito en Go para ayudar en la detección de varios tipos de vulnerabilidades ciegas. Supervisa el servidor de un pentester para detectar interacciones DNS fuera de banda y envía notificaciones con los detalles de la solicitud recibida a través de Slack. DNSObserver puede ayudarlo a encontrar errores como la inyección ciega de comandos del sistema operativo, SQLi ciego, XXE ciego y muchos más.
Para obtener una descripción general más detallada e instrucciones de configuración, consulte:
https://www.allysonomalley.com/2020/05/22/dnsobserver/
Configuración
Lo que necesitarás:
- Su propio nombre de dominio registrado
- Un servidor privado virtual (VPS) para ejecutar el script (estoy usando Ubuntu, no he probado esta herramienta en otros sistemas)
- [Opcional] Tu propio espacio de trabajo de Slack y un webhook
Configuración de dominio y DNS
Si aún no tiene un VPS listo para usar, cree un nuevo VPS de Linux con su proveedor preferido. Anote su dirección IP pública.
Registre un nuevo nombre de dominio con su registrador preferido; cualquier registrador debería estar bien siempre que permita configurar servidores de nombres personalizados y registros de pegamento.
Vaya a la configuración de DNS de su nuevo dominio y busque la sección 'registro de pegamento'. Agregue dos entradas aquí, una para cada nuevo servidor de nombres, y proporcione a ambas la dirección IP pública de su VPS.
A continuación, cambie los servidores de nombres predeterminados a:
ns1.<YOUR-DOMAIN>
ns2.<YOUR-DOMAIN>
Configuración del servidor
SSH en su VPS y siga estos pasos:
- Instala Go si aún no lo tienes. Las instrucciones de instalación se pueden encontrar aquí.
- Asegúrese de que los puertos DNS predeterminados estén abiertos: 53 / UDP y 53 / TCP. Correr:
sudo ufw allow 53/udp
sudo ufw allow 53/tcp - Obtenga DNSObserver y sus dependencias:
go get github.com/allyomalley/dnsobserver/...
Hay dos argumentos obligatorios y dos argumentos opcionales:
dominio [REQUERIDO]
Su nuevo nombre de dominio.
ip [REQUERIDO]
La dirección IP pública de su VPS.
webhook [Opcional]
Si desea recibir notificaciones, proporcione la URL de su webhook de Slack. Se le notificará de cualquier búsqueda de su nombre de dominio o de cualquier subdominio de su dominio (he excluido las notificaciones de consultas para cualquier otro dominio principal y para sus servidores de nombres personalizados para evitar notificaciones excesivas o aleatorias). Si no proporciona un webhook, las interacciones se registrarán en la salida estándar. Las instrucciones de configuración de Webhook se pueden encontrar aquí .
recordsFile [Opcional]
De forma predeterminada, DNSObserver solo responderá con una respuesta a las consultas sobre su nombre de dominio o cualquiera de sus servidores de nombres. Para cualquier otro host, todavía le notificará de la interacción (siempre que sea su dominio o un subdominio), pero le devolverá una respuesta vacía. Si desea que DNSObserver responda a las búsquedas A para ciertos hosts con una dirección, puede editar el archivo config.yml incluido en este proyecto o crear uno propio basado en esta plantilla:
a_records:
- hostname: ""
ip: ""
- hostname: ""
ip: ""
Actualmente, la herramienta solo usa registros A; en el futuro, puedo agregar CNAME, AAAA, etc.). A continuación, se muestra 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"
Esta configuración significa 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'.Uso
¡Ahora estamos listos para empezar a escuchar! Si desea poder hacer otro trabajo en su VPS mientras se ejecuta DNSObserver, inicie una nueva sesión tmux primero.
Para la configuración estándar, pase los argumentos requeridos y su 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 búsqueda A personalizadas, agregue el argumento para su 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 haya configurado todo correctamente, DNSObserver ahora debería estar ejecutándose. Para confirmar que está funcionando, abra una terminal en su escritorio y realice una búsqueda de su nuevo dominio ('ejemplo.com' en esta demostración):dig example.com
¡Ahora debería recibir una notificación de Slack con los detalles de la solicitud!
0 Comentarios