免责声明:
此文章仅用于学习研究使用,请勿用于违法犯罪,请遵守《网络安全法》等相关法律法规。

使用scapy定制数据包进行高级扫描

scapy概述

Scapy是一个可以发送、侦听和解析并伪装网络报文的Python程序。这些功能可以用于制作侦测、扫描和攻击网络的工具

scapy定制ARP协议

首先使用scapy命令打开工具

image-20210801164550683

查看ARP函数的用法(ARP格式)

>>> ARP().display()

image-20210801165507656

例:自定义向192.168.20.134发送arp请求的数据包

这里我们会使用到其中的sr1函数,sr1函数包含了发送数据包和接收数据包的功能

修改ARP函数中的目的参数,以进行发送

>>> sr1(ARP(pdst="192.168.20.134"))

image-20210801170436068

scapy定制PING包

scapy定制PING包需要使用到IP和ICMP这两个函数,IP()生成ping包的源ip和目的ip,ICMP()生成ping包的类型

首先查看这两个函数中的参数有哪些

image-20210801171156822

image-20210801171548901

例:自定义向192.168.20.134发送的PING包,命令如下

>>> sr1(IP(dst="192.168.20.134")/ICMP(),timeout=1)

timeout:超时时间

image-20210801172323799

scapy定制TCP协议SYN请求

首先查看TCP函数的参数

image-20210801173131331

标志域具体类型介绍

  • URG:紧急标志
  • ACK:有意义的应答标志
  • PSH:急迫标志
  • RST:重置连接标志
  • SYN:同步序号标志(图中S即SYN)
  • FIN:完成发送数据标志

例:自定义向192.168.20.134的80端口发送TCP协议包,命令如下

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

image-20210801174212706

响应包中的flag=SA即SYN+ACK

这里我们收到的是TCP三次握手中的第二个包,收到后不再发送ACK完成三次握手。因此这里的扫描是基于tcp的半连接扫描,更不容易被发现。根据下图可方便理解

image-20210801175335031

最后修改:2021 年 08 月 03 日 02 : 41 PM
如果觉得我的文章对你有用,请随意赞赏