Python来记录scapy扫描
我正在使用Scapy扫描我们办公环境中的无线探头。我使用的是OpenWrt路由器。我正在使用Python脚本(见下文)。现在我需要帮助,让Scapy记录启动路由器时运行的扫描。在记录扫描结果(每个探测)时,我想让脚本将包含信息(包括时间戳)的每个探测作为逗号分隔列记录到CSV中。CSV可以保存到路由器上连接的USB存储器中Python来记录scapy扫描,python,csv,router,scapy,openwrt,Python,Csv,Router,Scapy,Openwrt,我正在使用Scapy扫描我们办公环境中的无线探头。我使用的是OpenWrt路由器。我正在使用Python脚本(见下文)。现在我需要帮助,让Scapy记录启动路由器时运行的扫描。在记录扫描结果(每个探测)时,我想让脚本将包含信息(包括时间戳)的每个探测作为逗号分隔列记录到CSV中。CSV可以保存到路由器上连接的USB存储器中/mnt/sda1/ 第二种选择是使用指定的URL直接向Web服务报告日志 运行脚本时的输出行现在为: “捕获的探测请求: 目标:ff:ff:ff:ff:ff:ff来源:xx:
/mnt/sda1/
第二种选择是使用指定的URL直接向Web服务报告日志
运行脚本时的输出行现在为:
“捕获的探测请求:
目标:ff:ff:ff:ff:ff:ff来源:xx:xx:xx:xx:xx:xx SSID:wifi RSSi:-76
现在在路由器上工作的脚本:
from scapy.all import *
PROBE_REQUEST_TYPE=0
PROBE_REQUEST_SUBTYPE=4
WHITELIST = ['00:00:00:00:00:00',] # Replace this with your phone's MAC address
def PacketHandler(pkt):
if pkt.haslayer(Dot11):
if pkt.type==PROBE_REQUEST_TYPE and pkt.subtype == PROBE_REQUEST_SUBTYPE and ( pkt.addr2.lower() not in WHITELIST or pkt.addr2.upper() not in WHITELIST):
PrintPacket(pkt)
def PrintPacket(pkt):
print "Probe Request Captured:"
try:
extra = pkt.notdecoded
except:
extra = None
if extra!=None:
signal_strength = -(256-ord(extra[-4:-3]))
else:
signal_strength = -100
print "No signal strength found"
print "Target: %s Source: %s SSID: %s RSSi: %d"%(pkt.addr3,pkt.addr2,pkt.getlayer(Dot11ProbeReq).info,signal_strength)
def main():
from datetime import datetime
print "[%s] Starting scan"%datetime.now()
print "Scanning for:"
print "\n"
sniff(iface=sys.argv[1],prn=PacketHandler,store=0)
if __name__=="__main__":
main()