saidsef/scapy-containerised
GitHub: saidsef/scapy-containerised
将 Scapy 数据包分析工具容器化,通过 Web 终端提供交互式的网络流量分析与可视化能力,支持 Docker 和 Kubernetes 部署。
Stars: 5 | Forks: 3
# Scapy 容器化
这通过 TTYD 为您提供一个在容器/namespace 内部的 shell,您可以使用 Scapy 来分析网络流量。
Scapy 是一个强大的基于 Python 的交互式数据包操作程序和库。
Scapy 使用户能够发送、嗅探、解析和伪造网络数据包。这一能力允许构建可以探测、扫描或攻击网络的工具。
Scapy 既可以用作 shell,也可以用作库。欲了解更多详情,请参阅文档中的 [Scapy 入门](https://scapy.readthedocs.io/en/latest/introduction.html)。
## 前置条件
- 容器运行时(需要以特权模式运行)
- 一些 Python 知识
- 已阅读 [Scapy 文档](https://scapy.readthedocs.io/en/latest/introduction.html)
## 安装
按照以下步骤进行构建:
```
git clone https://github.com/saidsef/scapy-containerised
```
```
docker build -t saidsef/scapy-containerised:latest .
```
```
docker run -d --net=host --privileged -v /path/to/geoip2:/data docker.io/saidsef/scapy-containerised:latest
```
```
conf.geoip_city = "/data/GeoLite.mmdb"
conf.temp_files = "/tmp"
trace = traceroute_map(["saidsef.co.uk"], verbose=0)
trace.world_trace()
```
然后访问:
```
http://localhost:8080
```
在浏览器终端中输入:
```
python -m scapy.__init__
```
以交互模式启动 Scapy。
## 部署
### HELM
```
helm repo add scapy https://saidsef.github.io/scapy-containerised/
helm repo update
helm upgrade --install scapy scapy/scapy --namespace scapy --create-namespace
```
### Kubectl
```
kubectl apply -k ./deployment
```
要查看,请在本地绑定 Kubernetes service 端口:
```
kubectl port-forward --namespace scapy svc/scapy 8080:8080
```
然后访问:
```
http://localhost:8080
```
## 嗅探数据包
列出可用的层(layers):
```
help(scapy.layers)
```
Sniff 函数规范文档
```
print sniff.__doc__
```
```
load_layer("http")
get_if_list()
sniff(iface="eth0", prn=lambda x: x.show(), lfilter=lambda x: HTTP in x, count=100)
```
路由存储在 `conf.route` 中。您可以使用它来显示路由,或获取特定的路由信息:
```
conf.route
```
## 使用 Matplotlib 绘图
对于某些特殊功能,Scapy 需要安装一些依赖项。
```
p=sniff(iface="any", count=50)
p.plot(lambda x:len(x))
```
## 使用 `pyx` 进行 PDF 导出
```
p=IP()/ICMP()
p.pdfdump("test.pdf", target="> /tmp")
```
## 源码
我们最新最棒的 scapy-containerised 源码可以在 [GitHub](#deployment) 上找到。Fork 我们吧!
## 贡献
我们非常 :heart: 您通过提交 [pull request](https://github.com/saidsef/scapy-containerised/pulls) 来做出贡献。
请阅读官方的[贡献指南](./CONTRIBUTING.md)以获取有关如何做出贡献的更多信息。
标签:DevSecOps, Docker, GitHub, Helm, NIDS, Python, Scapy, TTYD, Web终端, 上游代理, 主动探测, 云存储安全, 协议分析, 嗅探, 子域名突变, 安全防御评估, 容器化, 密码管理, 无后门, 权限提升, 流量可视化, 网络安全, 网络工具, 网络扫描, 网络自动化, 请求拦截, 路由追踪, 逆向工具, 防御绕过, 隐私保护