scapy
简介
这个包适用于网络嗅探的非常强大的第三方库,可以用于packet嗅探和伪造packet。在scapy的内部就已经实现了很多的网络协议。比如DNS、ARP、IP、TCP、UDP等等
我们可以用它操作报文, 可以伪造或者解析多种协议的报文。还具有转发、捕获、匹配请求和响应的功能。
可以替代hping[^hping]、arpspoof[^arpspoof]、arping[^arping]、p0f[^p0f]。可以替代部分的nmap,tcpdump,tshark的功能
scapy
查看支持的网络协议
可以使用
ls()查看支持什么协议其他比较常见的函数
还可以用lsc()函数来查看scapy的指令集(函数)。比较常用的函数包括arpcachepoison(用于arp毒化攻击,也叫arp欺骗攻击),arping(用于构造一个ARP的who-has包) ,send(用于发3层报文),sendp(用于发2层报文), sniff(用于网络嗅探,类似Wireshark和tcpdump), sr(发送+接收3层报文),srp(发送+接收2层报文)等等
还可以对ls()函数添加参数,比如IP,就可以查看IP包的各种默认的参数
构造一个包
1
name=IP(src=,dst=)/TCP()这个包的详细资料
假设现在使用dst=’baidu.com’

展示:

发送包
有多种发送的方式
send()
发送一个三层的数据包,但是不接受
sr1()
发送一个三层的包,但是接受返回的包
srp()
发送一个两层的包
sr2()
接受两个
现在由于需要接受返回的信息
我们就需要接受返回的包

返回来的包也可以查看信息,和创建的包是一样的
python 中使用scapy
以一个拒绝服务式攻击脚本
1 | |
实现基于TCP端口扫描的工具
[^hping]:hping 命令行的TCP/IP数据包解释器/分析器,具体可以这篇文章 https://blog.csdn.net/carefree2005/article/details/120870526
[^arpspoof]:这个是用于arp欺骗用的,可以参考这篇文章https://blog.csdn.net/who_im_i/article/details/120234324
[^arping]: mac和ip 的互查,https://blog.csdn.net/wz_cow/article/details/80870876
[^p0f]: 简单理解为被动指纹识别的工具https://blog.csdn.net/qq_38776582/article/details/124001543