Python嗅探和解析网络数据包
网络工具解释
Scapy是Python2和Python3都支持的库。 它用于与网络上的数据包进行交互。 它具有多种功能,通过这些功能我们可以轻松伪造和操纵数据包。 通过 scapy 模块,我们可以创建不同的网络工具,如 ARP Spoofer、网络扫描仪、数据包转储器等。该模块可用于创建与网络安全相关的更高级的工具。
网络扫描是指扫描我们所连接的整个网络,并尝试找出连接到我们网络的所有客户端。 我们可以使用 IP 和 MAC 地址来识别每个客户端。 我们可以使用 ARP ping 来找出网络中活动的系统。
ARP():该函数在 scapy 模块中定义,允许我们创建 ARP 数据包(请求或响应)。默认情况下,如果我们调用它,它会为我们创建一个 ARP 请求数据包。
import scapy.all as scapy
request = scapy.ARP()
现在我们已经创建了一个ARP请求包。程序的输出将是这样的——
rootakali: /Desktop\# python3 networkscanner.py
ARP who has 0.0 .0 .0 says 192.168 .215 .144
root@kali: /Desktop\#
show() 方法:该方法与summary() 方法非常相似。它提供了有关数据包的更多详细信息。该函数的用法也与summary()方法非常相似。
import scapy.all as scapy
request = scapy.ARP()
print(request.show())
rootakali: /Desktop\# python3 networkscanner.py
###[ ARP ]###
hwtype =0x1
ptype =IPv4
hwilen = None
plen = None
op = who-has
hwsrc =00:0c:29:a5:94:cf
psrc =192.168.215.144
hwdst =00:00:00:00:00:00
pdst =0.0.0.0
None
rootolkali: /Desktop\#
ls() 函数:该方法存在于 scapy 类中。通过使用此方法,我们可以看到可以为特定数据包设置哪些字段。
在我们的示例中,我们将创建一个 ARP 数据包,并在 ls() 函数的帮助下,我们将看到该数据包的可用字段有哪些。
import scapy.all as scapy
request = scapy.ARP()
print(scapy.ls(scapy.ARP()))
root@kali:!/Desktop# pyton3 networkscanner.py
hwtype :XShortField = 1 (1)
ptype :XShortEnumField = 2048 (2048)
hwlen :FieldLenField = None (None)
plen :FieldLenField = None (None)
op :ShortEnumField = 1 (1)
hwsrc :MultipleTypeField ='ac:2b:6e:2a:e5:ae' (None)
psrc :MultipleTypeField ='172.17.222.138' (None)
hwdst :MultipleTypeField = None (None)
pdst :MultipleTypeField = None (None)
None
root@kali:~/Desktop#
创建网络扫描仪的步骤
- 使用 ARP() 方法创建 ARP 数据包
- 使用变量设置网络范围。
- 使用 Ether() 方法创建以太网数据包。
- 使用变量 hwdst 设置要广播的目的地。
- 使用“/”组合 ARP 请求数据包和以太网帧。
- 将其发送到您的网络并捕获来自不同设备的响应。
- 打印响应数据包中的 IP 和 MAC 地址。
下面是Python的实现:
import scapy.all as scapy
request = scapy.ARP()
request.pdst = 'x'
broadcast = scapy.Ether()
broadcast.dst = 'ff:ff:ff:ff:ff:ff'
request_broadcast = broadcast / request
clients = scapy.srp(request_broadcast, timeout = 1)[0]
for element in clients:
print(element[1].psrc + " " + element[1].hwsrc)
这里 x = 网络范围。例如 x = 192.168.1.1/24、172.16.5.1/16 等
创建 ARP 伪程序
数据包嗅探
查找所有wifi连接设备和断开链接
测试TCP端口
源代码
参阅 1 - 亚图跨际
参阅 2 - 亚图跨际