scapy定制数据包详解

今天继续给大家介绍渗透测试相关知识,本文主要内容是scapy定制数据包详解。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!

一、scapy介绍

scapy是一个可以让用户发送、侦听和解析并伪装网络报文的Python程序,这些工你呢个可以用于制作侦测、扫描和网络攻击的工具。
在Kali Linux中,执行命令:

scapy

即可进入scapy的用户交互窗口中,其结果如下:
在这里插入图片描述
在进入后,我们就可以使用scapy来定制并发送一些数据包了。

二、scapy定制ARP数据包

首先,我们尝试使用scapy来定制并发送ARP数据包。
执行命令:

ARP().display()

即可显示处ARP数据包的字段和用法。注意,在该命令执行时,“ARP”必须为大写,后面的IP、ICMP和TCP等与此相同。该命令执行结果如下:
在这里插入图片描述
我们使用sr1函数可以发送指定的数据包,下面,我们尝试发送一个ARP请求数据包,执行命令:

sr1(ARP(pdst="192.168.136.2"))

该命令执行结果如下:
在这里插入图片描述
从下图中可以看出,我们使用scapy发送了一个ARP请求包,并且收到了192.168.136.2的ARP响应数据包。

三、scapy定制PING数据包

接下来,我们尝试用scapy来定制一个ICMP的请求包。发送PING包需要定制IP数据包和ICMP数据包。同样的,我们先来查看一下IP数据包和ICMP数据包的格式。
执行命令:

IP().display()

可以查看IP数据包的字段,该命令执行结果如下所示:
在这里插入图片描述
执行命令:

ICMP().display()

可以查看ICMP数据包的字段,该命令执行结果如下所示:
在这里插入图片描述
下面,我们就来定制一个ICMP的Request数据包,并尝试PING192.168.136.254,执行命令:

sr1(IP(dst="192.168.136.254")/ICMP(),timeout=3)

该命令执行结果如下:
在这里插入图片描述
从上图可以看出,我们发送了定制的ICMP Request数据包,并且收到了192.168.136.254回复的Reply数据包。

四、scapy定制TCP数据包

最后,我们使用scapy来定制TCP数据包,同样的,我们先来查看TCP数据包的字段,执行命令:

TCP().display()

该命令执行结果如下:
在这里插入图片描述
接下来,我们尝试使用scapy定制一个TCP的SYN数据包,访问192.168.136.16设备的80端口,执行命令:

sr1(IP(dst="192.168.136.16")/TCP(flags="S",dport=80),timeout=1)

在上述命令中,TCP的flags为1表示我们发送的是SYN的TCP数据包。
该命令执行结果如下:
在这里插入图片描述
从上图中可以看出,我们发送了一个SYN为1的数据包,注意看回包的flags字段为SA,即表示该数据包为一个SYN+ACK的数据包,因此可以看出,我们的scapy定制TCP数据包成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/124942524