利用Scapy和Python构建网络工具
1. 数据包捕获与重放
Scapy具备监听网络接口并捕获所有传入数据包的能力,它可以像tcpdump一样将数据包写入pcap文件。此外,Scapy还提供了读取和重放pcap文件的功能。
1.1 简单数据包重放
我们可以让Scapy读取从网络捕获的普通pcap文件(可以使用tcpdump或Scapy本身捕获),并将其再次发送到网络。这在测试特定流量模式通过网络时的行为非常有用。例如,我们有一个配置为阻止FTP通信的网络防火墙,通过重放FTP数据来测试防火墙的功能。
from scapy.layers.inet import *
from pprint import pprint
pkts = PcapReader("/root/ftp_data.pcap") #should be in wireshark-tcpdump format
for pkt in pkts:
pprint(pkt.show())
PcapReader()函数将pcap文件作为输入,分析并将每个数据包添加到pkts列表中,然后我们可以遍历该列表并显示每个数据包的内容。
1.2 获取特定层信息
我们可以使用get_layer()函数访问数据包层,获取特定层的信息。例如,我们想获取没有头部的原始数据以构建传输文件,可以使用以下脚本获取十六进制的所需数据,然后将其转换为ASCII:
from scapy.layers.
超级会员免费看
订阅专栏 解锁全文

2952

被折叠的 条评论
为什么被折叠?



