kuzlik340/TrunkPod
GitHub: kuzlik340/TrunkPod
TrunkPod 是一套跨 VLAN 分段网络的蜜罐部署与管理工具包,支持多网段欺骗防御与集中化日志收集分析。
Stars: 7 | Forks: 0
# TrunkPod
TrunkPod 跨多个 VLAN 部署蜜罐,旨在诱捕并暴露受感染机器上的攻击者,从而让你能够全面了解所有网段的异常情况。
## 安装说明
克隆仓库:
```
git clone https://github.com/kuzlik340/TrunkPod
```
首次运行时,依赖项会通过 `install_requirements.sh` 自动安装。
## 配置
所有配置都位于 `configs/` 目录中:
```
cd configs/
```
你需要创建两个文件。我们提供了示例模板来帮助你快速上手:
|文件|模板|
|---|---|
|`honeypots.yaml`|`honeypots.example.yaml`|
|`network.yaml`|`network.example.yaml`|
### 蜜罐配置
`configs/honeypots.yaml`
```
honeypots:
- name: honeypot1
ip: 192.168.20.60
vlan: 20
services:
- name: ldap
port: 389
- name: ssh
port: 22
mac: B8:2A:72:EF:00:01
- name: honeypot2
ip: 192.168.30.70
vlan: 30
services:
- name: ldap
port: 389
- name: ssh
port: 22
- name: http_server
port: 80
- name: https_server
port: 443
- name: telnet
port: 23
mac: B8:2A:72:EF:00:02
```
**字段参考:**
- `name` — 用作 Podman 容器名称;必须在所有蜜罐中保持唯一。
- `ip` — 必须唯一。脚本在部署前会检查目标 VLAN 是否存在冲突;如果该 IP 已被占用,脚本将停止运行并提示你进行更改。
- `vlan` — 此蜜罐将要部署到的 VLAN ID。
- `services` — 要在此蜜罐上运行的服务列表。可用选项包括:`ssh`、`ldap`、`http_server`、`https_server`、`telnet`。只要端口不冲突,同一服务可以在同一蜜罐的多个端口上运行。
- `mac` — 必须在所有蜜罐中保持唯一。
### 网络配置
`configs/network.yaml`
```
vlans:
- id: 20
name: network1
range: 192.168.20.0/24
gateway: 192.168.20.1
- id: 30
name: network2
range: 192.168.30.0/24
gateway: 192.168.30.1
```
**字段参考:**
- `id` — VLAN ID(必须与 `honeypots.yaml` 中使用的 ID 相匹配)。
- `name` — 易读的标签,不会被脚本使用。
- `range` — 该 VLAN 网段的 IP 范围。
- `gateway` — 此 VLAN 中蜜罐的网关地址。
### 底层日志配置
创建好两个配置文件后,为流量解析器生成 BPF 过滤器:
```
python configs/create_filter_bpf.py configs/honeypots.yaml
```
示例输出:
```
#define BPF_FILTER \
"(ether dst B8:2A:72:EF:00:01) or " \
"(ether dst B8:2A:72:EF:00:02) or " \
"(ip and (dst host 192.168.20.60 or dst host 192.168.30.70)) or " \
"(arp and (host 192.168.20.60 or host 192.168.30.70))"
```
将输出内容粘贴到 `logging/low_level_logging/traffic_parser.c` 中,
安装 logger 所需的工具:
```
sudo apt install build-essential libpcap-dev make
```
然后进行构建:
```
make
```
### Filebeat 配置
编辑 `logging/logging_pipeline/.env` 文件,填入你的 Elasticsearch 连接详情:
```
STACK_VERSION=8.15.2
TRUNKPOD_LOG_PATH=/var/log/trunkpod
TRAFFIC_LOG_PATH=/var/log/traffic_parser
ELASTICHOST=https://
ELASTICUSER=elastic_user
ELASTICPASS=elastic_password
```
## 部署
运行部署脚本,并指定 trunk 接口:
```
sudo ./TrunkPod.sh --interface
```
此操作将会:
1. 安装任何缺失的依赖项
2. 验证你的配置
3. 提示你生成 honeytoken(你可自行决定数量)
4. 创建所有相关接口
5. 检查配置中的 IP 地址是否可用
6. 为蜜罐设置所有网络配置
7. 部署 `honeypots.yaml` 中定义的所有蜜罐
## 日志记录
### 底层流量日志
`traffic_parser` 二进制程序会捕获发往你蜜罐的数据包。最好将其作为 systemd 服务运行:
```
cd logging/low_level_logging
sudo cp traffic_parser /usr/local/bin/
sudo cp traffic-parser.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable traffic_parser.service
sudo systemctl start traffic_parser.service
```
检查其状态:
```
sudo systemctl status traffic_parser.service
```
### TrunkPod 日志
启动日志管道(Filebeat + 转发至 Elasticsearch):
```
cd logging/logging_pipeline
docker compose up
```
标签:AMSI绕过, BOF, PB级数据处理, PE 加载器, Podman, VLAN, 威胁检测, 安全运维, 插件系统, 欺骗防御, 版权保护, 网络分段, 蜜罐系统, 逆向工具