Scapy 是一个强大的基于 Python 的交互式数据包操作程序和库。
它能够伪造或解码多种协议的数据包、在线发送它们、捕获它们、使用 pcap 文件存储或读取它们、匹配请求和回复等等。它旨在通过使用有效的默认值来允许快速数据包原型设计。
它可以轻松处理大多数经典任务,如扫描、跟踪路由、探测、单元测试、攻击或网络发现(它可以替代hping
、 85% 的nmap
、 arpspoof
、 arp-sk
、 arping
、 tcpdump
、 wireshark
、 p0f
等)。它还在大多数其他工具无法处理的许多其他特定任务上表现出色,例如发送无效帧、注入您自己的 802.11 帧、组合技术(VLAN 跳跃+ARP 缓存中毒、WEP 保护通道上的 VoIP 解码、. ..), ETC。
Scapy 支持 Python 3.7+。它旨在跨平台,并在许多不同的平台(Linux、OSX、*BSD 和 Windows)上运行。
Scapy 既可以作为shell也可以作为库使用。有关更多详细信息,请参阅 Scapy 入门,这是文档的一部分。
Scapy 可以轻松用作交互式 shell 来与网络交互。以下示例显示如何向github.com
发送 ICMP Echo Request 消息,然后显示回复源 IP 地址:
sudo ./run_scapy欢迎使用Scapy>>> p = IP(dst="github.com")/ICMP()>>> r = sr1(p)开始发射: .已发送1包。*收到2包,得到1个答复,剩余0包>>> r[IP].src'192.30.253.113'
该文档包含更高级的用例和示例。
其他有用的资源:
20 分钟后的 Scapy
交互式教程(文档的一部分)
快速演示:交互式会话(某些示例可能已过时)
HTTP/2 笔记本
TLS 笔记本
Scapy 在 Linux 和 BSD 等操作系统上无需任何外部 Python 模块即可工作。在 Windows 上,您需要按照文档中的说明安装一些强制依赖项。
在大多数系统上,使用 Scapy 就像运行以下命令一样简单:
git 克隆 https://github.com/secdev/scapycd scapy ./run_scapy
为了受益于所有 Scapy 功能(例如绘图),您可能需要安装 Python 模块,例如matplotlib
或cryptography
。请参阅文档并按照说明进行安装。
Scapy 的代码、测试和工具均根据 GPL v2 获得许可。文档(除非doc/
中另有标记的所有内容,以及徽标除外)均根据 CC BY-NC-SA 2.5 获得许可。
想做出贡献吗?伟大的!请花几分钟阅读本文!