
DNS traffic sniffer and analyzer for monitoring, filtering, and detecting anomalies in DNS queries. Features include PCAP export, DoH support, and a DNS firewall mode to identify spoofing attempts.
DNSWatch is a powerful packet sniffing tool designed to monitor and analyze DNS (Domain Name System) traffic on a network. This script provides a comprehensive set of features to help users understand and manage DNS activity efficiently. Whether you're a network administrator, cybersecurity professional, or a curious enthusiast, DNSWatch empowers you to gain insights into DNS requests, detect anomalies, and enhance network security.
git clone https://github.com/HalilDeniz/DNSWatch.git
pip install -r requirements.txt
$ python3 dnswatch.py [-h] [-i INTERFACE] [-v] [-t TARGET_IP] [-d] [--doh] [-D TARGET_DOMAINS [TARGET_DOMAINS ...]] [-p FILTER_PORT] [-s FILTER_SRC_IP] [-r FILTER_DST_IP] [--dns-type DNS_TYPE] [--pcap-file PCAP_FILE] [--firewall] [--threshold THRESHOLD] [--window-size WINDOW_SIZE] [--version]```
-i, --interface: Used to specify the network interface to listen on. For example: -i eth0-v, --verbose: Use this flag to get detailed output.-t, --target-ip: Used to specify a specific IP address to monitor. For example: -t 8.8.8.8-d, --analyze-dns-type: Use this flag to analyze DNS types.--doh: Use DNS over HTTPS (DoH) for DNS resolution.-D, --target-domains: Used to specify the target domains to monitor. Accepts a space-separated list of multiple domain names. For example: -D example.com example.org-p, --filter-port: Use this flag followed by a port number to filter by a specific port. For example: -p 53-s, --filter-src-ip: Use this flag to filter by a specific source IP address. For example: Press Ctrl+C to stop the sniffing process.
Here are some usage examples of DNSWatch: You can explore it here:
DNSWatch is licensed under the MIT License. See the LICENSE file for details.
This tool is intended for educational and testing purposes only. It should not be used for any malicious activities.
Thank you for considering supporting me! Your support enables me to dedicate more time and effort to creating useful tools like DNSWatch and developing new projects. By contributing, you're not only helping me improve existing tools but also inspiring new ideas and innovations. Your support plays a vital role in the growth of this project and future endeavors. Together, let's continue building and learning. Thank you!"
-s 192.168.1.1-r, --filter-dst-ip: Use this flag to filter by a specific destination IP address. For example: -r 8.8.4.4--dns-type: Use this flag followed by a DNS type to filter by a specific DNS type. For example: --dns-type 1 (for type A)--pcap-file: Use this flag to save captured packets to a PCAP file. For example: --pcap-file captured_packets.pcap--firewall: Enable DNS firewall mode.--threshold: Use this flag to set the threshold for the number of DNS queries. For example: --threshold 50--window-size: Use this flag to set the window size (in seconds). For example: --window-size 60--version: Use this flag to display the program's version number.