赞
踩
今天继续给大家介绍渗透测试相关知识,本文主要内容是scapy定制数据包详解。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
scapy是一个可以让用户发送、侦听和解析并伪装网络报文的Python程序,这些工你呢个可以用于制作侦测、扫描和网络攻击的工具。
在Kali Linux中,执行命令:
scapy
即可进入scapy的用户交互窗口中,其结果如下:
在进入后,我们就可以使用scapy来定制并发送一些数据包了。
首先,我们尝试使用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来定制一个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数据包,同样的,我们先来查看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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。