pDNS2 项目
pDNS2 是另一种使用 Redis 作为数据库的被动 DNS 工具的实现。pDNS2 意为“被动 DNS 版本2”,在查询速度上优先于其他数据库功能。 pDNS2 基于 Florian Weimer 的原始 dnslogger,并改进了速度和针对分析人员的专业化特性。
Redis http://redis.io/
Redis API https://github.com/andymccurdy/redis-py
Wireshark 完整安装 http://www.wireshark.org/
此版本包含两个简单的 Python 脚本:一个用于收集 DNS 流量(pdns2_collect.py),另一个用于查询(pdns2_query.py)。
下面仅展示使用通配符 -d 查询任意域名的示例。
示例查询 python pdns2_query.py -d *
Domain ips first date rr ttl count
w2.eff.org 69.50.232.52 20120524 20120524 CNAME 300 3
web5.eff.org 69.50.232.52 20120524 20120524 A 300 3
slashdot.org 216.34.181.45 20120524 20120524 A 2278 1
csi.gstatic.com 74.125.143.120 20120524 20120524 A 300 1
ssl.gstatic.com 74.125.229.175 20120524 20120524 A 244 1
xkcd.com 107.6.106.82 20120524 20120524 A 600 1
imgs.xkcd.com 69.9.191.19 20120524 20120524 CNAME 418 1
www.xkcd.com 107.6.106.82 20120524 20120524 CNAME 600 1
craphound.com 204.11.50.137 20120524 20120524 A 861 1
www.youtube.com 173.194.37.4 20120524 20120524 CNAME 81588 1
域名示例
arguments:
-h, --help 显示此帮助信息并退出
-d DOMAIN, --domain DOMAIN
-i IP, --ip IP
-da DATE, --date DATE
-ips IP_SNIFF, --ip_sniff IP_SNIFF
-ttl TTL, --ttl TTL
-rr RRECORD, --rrecord RRECORD
-l LOCAL, --local LOCAL
-ac ACOUNT, --acount ACOUNT
-c COUNT, --count COUNT
-ipf IP_FLUX, --ip_flux IP_FLUX
-ipr IP_REVERSE, --ip_reverse IP_REVERSE
-d *example.com 查询所有以 example.com 结尾的域名
-i 1.1.1.1 IP 地址搜索
-ttl 0 使用数字如 0 或 100,获取特定 TTL 值的所有结果,搜索基于域名而非 IP
-ac *example.com 按查询返回计数的计数(使用量),或按顺序返回域名的“命中数”,例如 *.google.com 或 *.com
-l 全局搜索数据库中解析到 127.0.0.1 等的本地 IP 地址
-ipf *.com 对于每个域名实例,返回 IP 空间中域名的计数,需与 ip_reverse 配合使用
-ipr * seattletimes.com 与 ip_flux 配合使用,枚举 IP 空间中的域名
-ips 192.168.1.1' 在域名空间中搜索特定 IP 地址,与按 IP 搜索不同
-da 20130101 按日期返回所有记录
管理命令
delete_key('Domain:*delete*') 危险命令,删除一个键,必须使用完整的键名,如 Domain: 或 IP:
raw_record('Domain:xalrbngb-0.t.nessus.org') 查看原始记录属性(不支持通配符),使用完整键名
pDNS2 跟踪当前状态和最后已知状态,它是组织感知的快照,而非日志。
pDNS 由 terraplex at gmail.com 开发和维护
这是基础版本,如果您对更高级的版本或与 scapy 配合使用的专用版本感兴趣,请联系我。