akashreddygaddam/cowrie-ssh-honeypot

GitHub: akashreddygaddam/cowrie-ssh-honeypot

该项目展示如何使用 Cowrie 在 Ubuntu 上部署 SSH 蜜罐,捕获并分析模拟攻击者的登录行为和命令执行,模拟 SOC 日志分析工作流。

Stars: 0 | Forks: 0

# 使用 Cowrie 搭建 SSH Honeypot — 威胁检测实验室 ![Linux](https://img.shields.io/badge/OS-Linux-informational) ![Python](https://img.shields.io/badge/Made%20with-Python-blue) ![Cowrie](https://img.shields.io/badge/Honeypot-Cowrie-critical) ## 目录 - [概述](#overview) - [架构](#architecture) - [我的实践](#what-i-did) - [展示技能](#skills-demonstrated) - [关键发现](#key-findings) - [截图](#screenshots) - [挑战与经验教训](#challenges--lessons-learned) - [未来改进](#future-improvements) - [使用工具](#tools-used) ## 概述 使用 [Cowrie](https://github.com/cowrie/cowrie) 部署并监控 SSH Honeypot, 以捕获并分析未经授权的登录尝试和攻击者行为, 模拟真实环境下的 SOC 日志分析工作流。 ## 架构 [攻击者:宿主机] --SSH (端口 22)--> [Ubuntu 24.04 虚拟机:iptables 重定向] --> [Cowrie 监听器:端口 2222] | v [JSON + 文本日志] ## 我的实践 - 出于安全最佳实践,在专用的非 root Linux 用户上部署了 Cowrie (v3.0.6) - 配置 `iptables` 以将端口 22 重定向 -> Cowrie 在端口 2222 上的监听器 - 从另一台独立的宿主机生成并捕获了多个模拟攻击会话 - 分析了结构化的 JSON 日志,提取了尝试使用的凭据和执行的命令 - 使用 Cowrie 的 `playlog` 工具重放了攻击者的 TTY 会话 - 记录了关于攻击者行为模式的分析结果 ## 展示技能 Linux 系统管理、网络配置 (NAT 网络)、`iptables`/NAT 端口重定向、日志分析、对攻击者 TTP(战术、技术、程序)的理解,以及对实时部署的实际故障排除能力。 ## 关键发现 完整报告:[analysis/findings.md](analysis/findings.md) 我执行了 3 个独立的模拟 SSH 会话(root、admin、测试凭据),所有连接均被 Honeypot 接受。执行的命令包括系统指纹识别(`whoami`、`uname -a`)、侦察(`cat /etc/passwd`、`ls -la`)以及模拟的 payload 下载(`wget`)——这与真实世界中的攻击者行为如出一辙。 结构化的 JSON 日志捕获了会话 ID、源 IP/端口、精确的时间戳和文件哈希值——这与 SIEM 工具为了进行关联分析和告警所采集的日志格式完全一致。 ## 截图 ![登录尝试](https://static.pigsec.cn/wp-content/uploads/repos/cas/3d/3d384041c4184f68ea49ce0b47e8e67a3f802321a4850b61b8c9281590c74a33.png) *显示攻击者命令被捕获的虚假 SSH 会话* ![会话重放](https://raw.githubusercontent.com/akashreddygaddam/cowrie-ssh-honeypot/main/screenshots/playlog-replay.png) *使用 `playlog` 逐键击重放完整的攻击者会话* ![JSON 日志示例](https://raw.githubusercontent.com/akashreddygaddam/cowrie-ssh-honeypot/main/screenshots/json-log-sample.png) *准备接入 SIEM 的结构化 JSON 日志* ## 挑战与经验教训 实际的部署过程很少能和文档描述的完全一致,本项目也不例外——解决这些问题培养了实用的故障排除技能: - 较新的 Cowrie 版本 (v3.0.6) 重构了其文件布局——配置模板从 `etc/` 移动到了 `src/cowrie/data/etc/`,旧的 `bin/cowrie` 脚本也被通过 pip 安装的 `cowrie` 命令所取代。通过使用 `git ls-tree` 检查实际的仓库内容来诊断此问题,而不是想当然地认为文档与已安装的版本相匹配。 - 在将端口 22 重定向到 Cowrie 之后,管理员进行文件传输(`scp`)时出人意料地也被路由到了 Honeypot 中——这很好地提醒了我们,Honeypot 重定向会影响发往该端口的*所有*流量,包括你自己的操作。解决方法是临时移除重定向以进行合法的管理员访问,之后再将其恢复。 - 当文件因为 Linux 的主目录权限被锁定时,学会了区分用户权限问题(`cowrie` 用户与 sudo 用户)。 ## 未来改进 - 将 Cowrie 的 JSON 日志转发到 Splunk 实例,以实现实时告警和仪表板展示(通过 SPL 查询排名靠前的攻击者 IP、最常用的凭据) - 添加 Windows/Active Directory 检测实验室,以将检测范围扩大到 Linux/SSH 之外 - 使用 Shell 脚本或 Ansible playbook 自动化部署过程,以实现可重复的设置 ## 使用工具 Cowrie、VMware Workstation、Ubuntu Server 24.04、iptables、Python/pip、Git
标签:AMSI绕过, Python, 威胁检测, 安全, 无后门, 网络安全研究, 蜜罐, 证书利用, 超时处理, 逆向工具