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, 威胁检测, 安全运维, 插件系统, 欺骗防御, 版权保护, 网络分段, 蜜罐系统, 逆向工具