DNSWatch是一款功能强大的DNS流量嗅探和分析工具,该工具基于纯Python开发,可以帮助广大研究人员在目标网络中实现DNS(域名系统)流量的嗅探和监控操作。该工具能够监听DNS请求和响应,并给我们提供针对DNS活动的内部视角。
1、嗅探和分析DNS请求与响应; 2、显示DNS请求对应的源和目的IP地址; 3、可选的Verbose模式提供更详细的数据包审查详情; 4、支持将分析结果存储到指定的输出文件; 5、通过指定的目标IP地址过滤DNS流量; 6、将DNS请求存储到一个数据库中以便后续进行详细分析; 7、支持分析DNS类型; 8、支持DNS over HTTPS(DoH);
Python 3.7+ Scapy 2.4.5+ Colorama 0.4.4+
由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python 3.7+环境。接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/HalilDeniz/DNSWatch.git
(向右滑动,查看更多)
接下来,切换到项目目录中,并使用pip工具和项目提供的requirements.txt文件安装该项目所需的其他依赖组件:
pip install -r requirements.txt
工具使用帮助
python dnswatch.py -i <interface> [-v] [-o <output_file>] [-k <target_ip>] [--analyze-dns-types] [--doh]
(向右滑动,查看更多)
-i, --interface:指定目标网络接口,例如eth0
-v, --verbose:使用该参数启用Verbose模式
-o, --output:指定要存储结果的文件名称
-t, --target-ip:指定需要监控的目标IP地址
-adt, --analyze-dns-types:分析DNS类型
--doh:使用DNS over HTTPS(DoH)解析DNS请求
-fd, --target-domains:根据指定的域名过滤DNS请求
-d, --database:启用数据库存储DNS请求
注意:随时按下Ctrl+C即可停止嗅探任务。
在eth0接口上嗅探DNS流量:
python dnswatch.py -i eth0
在eth0接口上嗅探DNS流量,并将结果存储到一个文件中:
python dnswatch.py -i eth0 -o dns_results.txt
在eth0接口上嗅探DNS流量,并根据指定目标IP地址过滤请求和响应:
python dnswatch.py -i eth0 -t 192.168.1.100
在eth0接口上嗅探DNS流量,并启用DNS类型分析:
python dnswatch.py -i eth0 --analyze-dns-types
在eth0接口上嗅探DNS流量,并使用DNS over HTTPS(DoH):
python dnswatch.py -i eth0 --doh
在wlan0接口上嗅探DNS流量,并启用数据库存储:
python3 dnswatch.py -i wlan0 --database
本项目的开发与发布遵循MIT开源许可证协议。
DNSWatch:https://github.com/HalilDeniz/DNSWatch