Mlkias-B-H/t-pot-honeypot-lab
GitHub: Mlkias-B-H/t-pot-honeypot-lab
基于 T-Pot 的蓝队蜜罐实验室项目,在隔离网络中部署多蜜罐平台并使用 Kibana 进行攻击检测与日志分析。
Stars: 0 | Forks: 0
# T-Pot 蜜罐实验室
这是一个实践性的蓝队实验室项目。在这个项目中,我部署了 T-Pot 多蜜罐平台,从一台独立的 Kali Linux 机器上对其发起攻击,然后使用 Kibana 分析了蜜罐捕获的所有数据。我的目标是练习 SOC 分析师日常的实际工作流程:搭建检测系统,对其发起真实的攻击活动,然后调查日志中显示的内容。
我选择 T-Pot 是因为它将二十多个不同的蜜罐服务打包在一起,并将所有捕获的数据发送到 Elastic Stack(Elasticsearch、Logstash 和 Kibana)。这为我在单个实验室中同时处理攻防两端提供了一个真实的环境,既不需要昂贵的硬件,也不需要将任何内容暴露在互联网上。
**展示的技能:** 检测工程,使用 Elasticsearch 和 Kibana 进行 SIEM 与日志分析,使用 Suricata 进行入侵检测,蜜罐与欺骗技术,Docker 容器管理,Linux 管理与故障排除,以及使用 Nmap、Hydra 和 Nikto 进行攻击模拟。
**环境:** T-Pot 24.04.1、Ubuntu Server、Kali Linux、Docker、Suricata、Elasticsearch 和 Kibana,全部运行在 VMware 上的一个隔离的 host-only 网络中。
## 我构建和完成的内容
我首先安装了一个全新的 Ubuntu Server 虚拟机,并在其上部署了 T-Pot,这会启动大约四十个 Docker 容器,涵盖蜜罐、入侵检测引擎以及完整的日志记录和可视化技术栈。在第二台虚拟机上,我运行了 Kali Linux,并将其配置在同一个 host-only 网络上,以便它可以访问蜜罐,但外部无法访问这两台机器中的任何一台。
环境运行起来后,我模拟了从 Kali 发起的一系列攻击,以观察蜜罐的反应及其记录的内容。我使用 Nmap 进行端口扫描和服务发现,结合 rockyou 字典使用 Hydra 进行 SSH 暴力破解尝试,以及使用 Nikto 进行 Web 漏洞扫描。这些操作产生的活动都被蜜罐捕获并实时转发到了 Elasticsearch 中。
该项目最重要的部分是分析。在 Kibana 中,我对捕获的索引创建了一个数据视图,并使用 KQL 查询将噪音过滤到关键信息上,例如隔离 Cowrie SSH 蜜罐事件以提取暴力破解攻击尝试的确切用户名和密码,并过滤 Suricata 告警事件以按类别和严重程度审查入侵检测。
## 结果
到实验室结束时,该技术栈已经捕获了大量的活动:
| 来源 | 捕获内容 |
|:---|:---|
| Elasticsearch | 超过 307,000 个事件已索引并可搜索 |
| Suricata (IDS) | 893 条入侵告警,按签名和严重程度分类 |
| Cowrie (SSH/Telnet) | 419 次暴力破解登录尝试,并记录了尝试使用的凭据 |
## 证据
**T-Pot Web 界面,显示完整的运行技术栈及其可用工具。**

**Kibana Discover 界面,已索引超过 307,000 个事件。直方图中的峰值标记了攻击会话。**

**Cowrie 蜜罐捕获暴力破解登录尝试,显示了 Hydra 尝试针对其使用的用户名和密码。**

**Suricata 入侵检测告警,按类别、签名和严重程度过滤。**

**完整的容器技术栈正在运行,大约四十个 Docker 容器,已通过 docker ps 验证。**

## 我学到了什么
这个项目中让我学到最多的部分不是攻击本身(它们只需几分钟即可运行完毕),而是让环境稳定下来所需的故障排除工作。我把大部分时间都花在了调试 Docker 容器依赖项、阅读容器日志以了解服务失败的原因,以及追踪一个配置错误上,该错误导致部署时从错误的位置读取其环境文件。通过解决这些故障,我对各个组件是如何相互配合的有了比顺利安装一次更深刻的理解。
从 Kali 发起攻击,然后立即在防御工具中查看它们是如何呈现的,这也非常有价值。它使攻击者的行为和分析师的视角之间的联系变得非常具体,这正是我想要为 SOC 角色培养的视角。
最后,我看到了蜜罐在极少配置下就能提供的极高可见性。几乎不需要任何调整,该平台就自动捕获了凭据、扫描活动、payload 和 IDS 告警。一个值得注意的细节是,由于攻击来自私有实验室地址,地理攻击地图保持为空,因为它只绘制公共互联网地址。不过,所有数据仍然在 Kibana 和日志中完全可用,而这才是真正进行深入分析的地方。
hydra -l root -P /tmp/short.txt ssh -t 4 -V
nikto -h http://
```
设置参考(点击展开)
官方 T-Pot 文档涵盖了完整的安装说明。以下是关键命令以及我遇到的具体问题。 ``` # 在 Ubuntu Server 上安装 sudo apt install git curl -y git clone https://github.com/telekom-security/tpotce cd tpotce sudo ./install.sh ``` 开始之前值得了解的问题: * 部署过程读取其 `.env` 配置文件的路径是相对于项目目录的,而不是从安装脚本写入的位置读取。这种不匹配会导致 Web 用户未被设置,并使 init 容器陷入崩溃循环。 * 该平台至少需要 8 GB 的 RAM。任何低于此值的内存都会导致容器被 out-of-memory (OOM) 进程杀死,表现为退出代码 137。 * 安装后,管理 SSH 服务移动到端口 64295,Web 界面通过 HTTPS 在端口 64297 上运行。 * Kibana 和 Elasticsearch 在首次启动时需要几分钟才能变得健康,因此无法立即访问仪表板。 从 Kali 模拟攻击: ``` nmap -F标签:CTI, Elastic Stack, Metaprompt, 安全实验环境, 底层分析, 插件系统, 流量重放, 蜜罐, 证书利用, 请求拦截, 越狱测试