#!/usr/bin/python
#coding=utf-8
from scapy.all import *
dnsRecords = {}
'''
解析pcap文件中所有含DNSRR的数据包,提取分别含有查询的域名和对应的IP的rrname和rdata变量,然后建立一个索引字典并对字典中未出现的IP添加到数组中。
'''
def handlePkt(pkt):
# 判断是否含有DNSRR
if pkt.haslayer(DNSRR):
rrname = pkt.getlayer(DNSRR).rrname
rdata = pkt.getlayer(DNSRR).rdata
#记录是否存在
if dnsRecords.has_key(rrname):
if rdata not in dnsRecords[rrname]:
dnsRecords[rrname].append(rdata)
else:
dnsRecords[rrname] = []
dnsRecords[rrname].append(rdata)
def main():
pkts = rdpcap('fastFlux.pcap')
for pkt in pkts:
handlePkt(pkt)
for item in dnsRecords:
print "[+] " + item + " has " + str(len(dnsRecords[item])) + " unique IPs."
# for i in dnsRecords[item]:
# print "[*] " + i
# print
if __name__ == '__main__':
main()
用Scapy找出fast-flux流量
最新推荐文章于 2023-05-11 14:33:12 发布