secdev/scapy
GitHub: secdev/scapy
Scapy 是一个功能强大的 Python 数据包操作框架,支持报文构造、发送、捕获和解析,可替代多种网络工具完成从网络扫描到渗透测试的各类任务。
Stars: 12087 | Forks: 2192
#
Scapy
[](https://github.com/secdev/scapy/actions/workflows/unittests.yml?query=event%3Apush)
[](https://codecov.io/gh/secdev/scapy)
[](https://app.codacy.com/gh/secdev/scapy/dashboard)
[](https://pypi.python.org/pypi/scapy/)
[](LICENSE)
[](https://gitter.im/secdev/scapy)
Scapy 是一个强大的基于 Python 的交互式数据包操作程序和库。
它能够伪造或解码多种协议的数据包,在线路上发送它们,捕获它们,使用 pcap 文件存储或读取它们,匹配请求和回复,以及更多功能。它旨在通过使用有效的默认值来实现快速的数据包原型设计。
它可以轻松处理大多数经典任务,如扫描、tracerouting、探测、单元测试、攻击或网络发现(它可以替代 `hping`、85% 的 `nmap`、`arpspoof`、`arp-sk`、`arping`、`tcpdump`、`wireshark`、`p0f` 等)。它还能很好地处理许多其他特定任务,这是大多数其他工具无法做到的,例如发送无效帧、注入您自己的 802.11 帧、组合技术(VLAN 跳跃+ARP 缓存中毒、WEP 保护通道上的 VoIP 解码等)等。
Scapy 支持 Python 3.7+。它旨在跨平台,并可在许多不同的平台(Linux、OSX、\*BSD 和 Windows)上运行。
## 入门指南
Scapy 既可用作 **shell**,也可用作 **库**。
欲了解更多详情,请前往 [Scapy 入门](https://scapy.readthedocs.io/en/latest/introduction.html),这是文档的一部分。
### Shell 演示

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'
```
### 资源
[文档](https://scapy.readthedocs.io/en/latest/)包含更多高级用例和示例。
其他有用的资源:
- [20 分钟掌握 Scapy](https://github.com/secdev/scapy/blob/master/doc/notebooks/Scapy%20in%2015%20minutes.ipynb)
- [交互式教程](https://scapy.readthedocs.io/en/latest/usage.html#interactive-tutorial)(文档的一部分)
- [快速演示:交互式会话](https://scapy.readthedocs.io/en/latest/introduction.html#quick-demo)(某些示例可能已过时)
- [HTTP/2 notebook](https://github.com/secdev/scapy/blob/master/doc/notebooks/HTTP_2_Tuto.ipynb)
- [TLS notebooks](https://github.com/secdev/scapy/blob/master/doc/notebooks/tls)
## [安装](https://scapy.readthedocs.io/en/latest/installation.html)
在 Linux 和 BSD 类操作系统上,Scapy 无需任何外部 Python 模块即可工作。在 Windows 上,您需要安装一些强制性依赖项,如[文档](http://scapy.readthedocs.io/en/latest/installation.html#windows)中所述。
在大多数系统上,使用 Scapy 就像运行以下命令一样简单:
```
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
```
为了利用 Scapy 的所有功能,例如绘图,您可能需要安装 Python 模块,例如 `matplotlib` 或 `cryptography`。请参阅[文档](http://scapy.readthedocs.io/en/latest/installation.html)并按照说明进行安装。
## 许可证
Scapy 的代码、测试和工具根据 GPL v2 授权。
文档(`doc/` 中除非另有标记的所有内容,标志除外)根据 CC BY-NC-SA 2.5 授权。
## 贡献
想要贡献?太棒了!请花几分钟时间[阅读此内容](CONTRIBUTING.md)!
Scapy
[](https://github.com/secdev/scapy/actions/workflows/unittests.yml?query=event%3Apush)
[](https://codecov.io/gh/secdev/scapy)
[](https://app.codacy.com/gh/secdev/scapy/dashboard)
[](https://pypi.python.org/pypi/scapy/)
[](LICENSE)
[](https://gitter.im/secdev/scapy)
Scapy 是一个强大的基于 Python 的交互式数据包操作程序和库。
它能够伪造或解码多种协议的数据包,在线路上发送它们,捕获它们,使用 pcap 文件存储或读取它们,匹配请求和回复,以及更多功能。它旨在通过使用有效的默认值来实现快速的数据包原型设计。
它可以轻松处理大多数经典任务,如扫描、tracerouting、探测、单元测试、攻击或网络发现(它可以替代 `hping`、85% 的 `nmap`、`arpspoof`、`arp-sk`、`arping`、`tcpdump`、`wireshark`、`p0f` 等)。它还能很好地处理许多其他特定任务,这是大多数其他工具无法做到的,例如发送无效帧、注入您自己的 802.11 帧、组合技术(VLAN 跳跃+ARP 缓存中毒、WEP 保护通道上的 VoIP 解码等)等。
Scapy 支持 Python 3.7+。它旨在跨平台,并可在许多不同的平台(Linux、OSX、\*BSD 和 Windows)上运行。
## 入门指南
Scapy 既可用作 **shell**,也可用作 **库**。
欲了解更多详情,请前往 [Scapy 入门](https://scapy.readthedocs.io/en/latest/introduction.html),这是文档的一部分。
### Shell 演示

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'
```
### 资源
[文档](https://scapy.readthedocs.io/en/latest/)包含更多高级用例和示例。
其他有用的资源:
- [20 分钟掌握 Scapy](https://github.com/secdev/scapy/blob/master/doc/notebooks/Scapy%20in%2015%20minutes.ipynb)
- [交互式教程](https://scapy.readthedocs.io/en/latest/usage.html#interactive-tutorial)(文档的一部分)
- [快速演示:交互式会话](https://scapy.readthedocs.io/en/latest/introduction.html#quick-demo)(某些示例可能已过时)
- [HTTP/2 notebook](https://github.com/secdev/scapy/blob/master/doc/notebooks/HTTP_2_Tuto.ipynb)
- [TLS notebooks](https://github.com/secdev/scapy/blob/master/doc/notebooks/tls)
## [安装](https://scapy.readthedocs.io/en/latest/installation.html)
在 Linux 和 BSD 类操作系统上,Scapy 无需任何外部 Python 模块即可工作。在 Windows 上,您需要安装一些强制性依赖项,如[文档](http://scapy.readthedocs.io/en/latest/installation.html#windows)中所述。
在大多数系统上,使用 Scapy 就像运行以下命令一样简单:
```
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
```
为了利用 Scapy 的所有功能,例如绘图,您可能需要安装 Python 模块,例如 `matplotlib` 或 `cryptography`。请参阅[文档](http://scapy.readthedocs.io/en/latest/installation.html)并按照说明进行安装。
## 许可证
Scapy 的代码、测试和工具根据 GPL v2 授权。
文档(`doc/` 中除非另有标记的所有内容,标志除外)根据 CC BY-NC-SA 2.5 授权。
## 贡献
想要贡献?太棒了!请花几分钟时间[阅读此内容](CONTRIBUTING.md)!标签:ARP欺骗, Libpcap, Scapy, traceroute, WiFi安全, ZAP项目解析, 事件响应, 二进制发布, 云存储安全, 内核驱动, 密码管理, 开发库, 开源工具, 插件系统, 攻击路径可视化, 数据包构造, 流量生成, 流量编辑, 系统分析, 网络分析, 网络协议, 网络安全, 网络扫描, 逆向工具, 防御绕过, 隐私保护, 黑客工具