DNSWatch es una herramienta basada en Python que te permite interceptar y analizar el tráfico del Sistema de Nombres de Dominio (DNS) en tu red. Escucha las solicitudes y respuestas DNS y proporciona información sobre la actividad DNS.
Tabla de Contenido
Características
- Intercepta y analiza las solicitudes y respuestas DNS.
- Muestra las solicitudes DNS con sus direcciones IP de origen y destino correspondientes.
- Modo detallado opcional para una inspección minuciosa de paquetes.
- Guarda los resultados en un archivo de salida especificado.
- Filtra el tráfico DNS especificando una dirección IP de destino.
- Guarda las solicitudes DNS en una base de datos para un análisis adicional (opcional).
- Analiza los tipos de DNS (opcional).
- Soporte para DNS sobre HTTPS (DoH) (opcional).
Requisitos
- Python 3.7 o superior.
- scapy 2.4.5 o superior.
- colorama 0.4.4 o superior.
Instalación
- Clona este repositorio:
git clone https://github.com/HalilDeniz/DNSWatch.git
- Instala las dependencias requeridas:
pip install -r requirements.txt
Uso:
python dnswatch.py -i <interfaz> [-v] [-o <archivo_salida>] [-k <IP_destino>] [--analyze-dns-types] [--doh] [-fd <dominios_destino>] [-d]
-i
,--interface
: Especifica la interfaz de red (por ejemplo, eth0).-v
,--verbose
: Usa esta bandera para obtener una salida más detallada.-o
,--output
: Especifica el nombre de archivo para guardar los resultados.-t
,--target-ip
: Especifica una dirección IP de destino específica para monitorear.-adt
,--analyze-dns-types
: Analiza los tipos de DNS.--doh
: Usa DNS sobre HTTPS (DoH) para resolver las solicitudes DNS.-fd
,--target-domains
: Filtra las solicitudes DNS por dominios especificados.-d
,--database
: Habilita el almacenamiento en la base de datos para las solicitudes DNS.
Presiona Ctrl+C para detener el proceso de intercepción.
Ejemplos
- Interceptar el tráfico DNS en la interfaz “eth0”:
python dnswatch.py -i eth0
- Interceptar el tráfico DNS en la interfaz “eth0” y guardar los resultados en un archivo:
python dnswatch.py -i eth0 -o dns_results.txt
- Interceptar el tráfico DNS en la interfaz “eth0” y filtrar solicitudes/respuestas que involucran una IP de destino específica:
python dnswatch.py -i eth0 -t 192.168.1.100
- Interceptar el tráfico DNS en la interfaz “eth0” y habilitar el análisis de tipos de DNS:
python dnswatch.py -i eth0 --analyze-dns-types
- Interceptar el tráfico DNS en la interfaz “eth0” utilizando DNS sobre HTTPS (DoH):
python dnswatch.py -i eth0 --doh
- Interceptar el tráfico DNS en la interfaz “wlan0” y habilitar el almacenamiento en la base de datos:
python3 dnswatch.py -i wlan0 --database