基于 Python 的交互式数据包操作库,用于在多种协议中伪造、解码、发送、捕获和分析网络数据包,支持扫描、路由追踪、攻击和网络发现。
ScapyScapy 是一个强大的基于 Python 的交互式数据包操作程序和库。
它能够伪造或解码大量协议的数据包,将它们发送到网络上,捕获它们,使用 pcap 文件存储或读取它们,匹配请求和响应,以及更多功能。它旨在通过使用可用的默认值来实现快速的数据包原型设计。
它可以轻松处理大多数经典任务,如扫描、路由追踪、探测、单元测试、攻击或网络发现(它可以替代 hping、85% 的 nmap、arpspoof、arp-sk、arping、tcpdump、wireshark、p0f 等)。它在许多其他特定任务上也表现出色,而这些任务是大多数其他工具无法处理的,例如发送无效帧、注入你自己的 802.11 帧、组合技术(VLAN 跳跃+ARP 缓存投毒、在 WEP 保护信道上的 VoIP 解码……)等。
Scapy 支持 Python 3.9+。它旨在跨平台运行,并可在许多不同的平台上运行(Linux、OSX、*BSD 和 Windows)。
Scapy 既可作为 shell 使用,也可作为 库 使用。 如需了解更多详细信息,请前往 Scapy 入门,该文档是文档的一部分。
Scapy 可以轻松用作交互式 shell 来与网络交互。
以下示例展示了如何向 github.com 发送 ICMP Echo Request 消息,然后显示回复的源 IP 地址:
sudo ./run_scapy
Welcome to Scapy
>>> p = IP(dst="github.com")/ICMP()
>>> r = sr1(p)
Begin emission:
.Finished to send 1 packets.
*
Received 2 packets, got 1 answers, remaining 0 packets
>>> r[IP].src
'192.30.253.113'
文档 包含更多 高级用例和示例。
其他有用资源:
在 Linux 和 BSD 类操作系统上,Scapy 无需任何外部 Python 模块即可运行。在 Windows 上,你需要按照文档中的说明安装一些必需的依赖项。
在大多数系统上,使用 Scapy 只需运行以下命令:
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
要使用 Scapy 的全部功能(例如绘图),你可能需要安装
Python 模块,例如 matplotlib 或 cryptography。请参阅
文档并
按照说明进行安装。
Scapy 的代码、测试和工具采用 GPL v2 许可证。
文档(除 doc/ 中另有标注的内容以及徽标外,其余全部内容)采用 CC BY-NC-SA 2.5 许可证。
想要贡献?太好了!请花几分钟 阅读此文档!