scapy 嗅探数据包(wireshark数据抓包)
简介:Scapy 是一个用 python 编写的强大且通用的数据包操作工具。使用 scapy,用户将能够发送、嗅探、剖析和伪造网络数据包。Scapy 还能够将嗅探到的数据包存储在 pcap 文件中。使用 scapy,我们将能够轻松处理跟踪路由、探测、扫描、单元测试和网络发现等任务。所有这些属性使 scapy 对基于网络的攻击很有用。
1. 安装scapy
linux:sudo apt-gte install python3-scapy
windows:pip install scapy
2. scapy使用方法
scapy 的使用分为两种:
1.在终端输入 scapy -H ,直接与scapy工具直接进行交互。
2.在python脚本中 from scapy.all import *,在python脚本中调用。
3. 使用scapy进行数据嗅探
使用sniff()函数嗅探数据包,sniff() 函数会返回有关已嗅探的所有数据包所有的信息。
sniff()
参数:
count -- 要捕获的数据包数。0表示无穷大。
store -- 是存储嗅探包还是丢弃它们
prn -- 应用于每个数据包的函数。如果返回某个内容,则显示该内容。--例如:prn=lambda x:x.summary()
session -- 会话=用于处理数据包流的流解码器。--例如:session=TCPSession请参阅下面的详细信息。
filter -- 要应用的BPF筛选器。
lfilter -- 应用于每个包的Python函数,以确定是否可以执行进一步的操作。--例如:lfilter=lambda x:x.haslayer(填充)
offline -- PCAP文件(或PCAP文件列表)从中读取数据包,而不是嗅探它们
quiet -- 当设置为True时,将丢弃进程stderr(默认值:False)。
timeout -- 在给定时间后停止嗅探(默认值:无)。
L2socket -- 使用提供的L2socket(默认值:use conf.L2listen)。
opened_socket -- 提供一个对象(或一个对象列表),以便在上使用.recv()。
stop_filter -- Python函数应用于每个包,以确定是否必须在此包之后停止捕获。--例如:stop_filter=lambda x:x.haslayer(TCP)
iface -- 接口或接口列表(默认值:无用于在所有接口上探查)。
monitor -- 使用监视器模式。可能并非所有操作系统都可用
started_callback -- 在嗅探器开始嗅探时立即调用(默认值:None)。
例:嗅探以太网网口,http协议,抓包个数为10,回调函数为prn()
packet=sniff(iface="以太网",count=10,filter="tcp port http", prn=prn,)
4. 保存数据包
wrpcap("<file name>", packet)
如:wrpcap("GFG.pcap", packet)
5. 使用wireshark查看GFG.pcap
6. scapy加载数据包
sniff(offline="<file name>")
如:sniff(offline="GFG.pcap")