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

python抓wireshark包 python wireshark_测试工具


6. scapy加载数据包

sniff(offline="<file name>")
	如:sniff(offline="GFG.pcap")