B0bTheSkull/honeynet
GitHub: B0bTheSkull/honeynet
一个基于 Python 的轻量级模块化蜜罐框架,通过模拟 SSH、HTTP、FTP 服务捕获攻击者凭据与行为,并检测多服务协调扫描,帮助安全团队积累真实威胁情报数据。
Stars: 0 | Forks: 0
# HoneyNet



## 蜜罐 (Honeypots)
| 服务 | 默认端口 | 捕获内容 |
|---------|-------------|-----------------|
| **SSH** | 2222 | 所有登录凭据、输入的 Shell 命令 |
| **HTTP** | 8080 | 带凭据的登录尝试、敏感路径探测 |
| **FTP** | 2121 | 登录凭据、文件访问尝试、命令 |
所有三个服务都会将日志记录到同一个集中式 JSON 日志文件中。
## 安装
```
git clone https://github.com/B0bTheSkull/honeynet.git
cd honeynet
pip install -r requirements.txt
mkdir -p logs
```
## 用法
```
# 启动所有蜜罐(使用 config.yaml)
python honeynet.py
# 自定义 config file
python honeynet.py --config my_config.yaml
# 分析 event log
python honeynet.py --analyze
# 分析特定 log file
python honeynet.py --analyze --log logs/honeynet.json
```
## 配置
```
log_file: "logs/honeynet.json"
honeypots:
ssh:
enabled: true
port: 2222
banner: "SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6"
http:
enabled: true
port: 8080
ftp:
enabled: true
port: 2121
banner: "220 FTP Server Ready"
alerts:
multi_service_window: 60 # seconds
```
## 日志输出示例
实时控制台输出(带颜色):
```
[14:32:01] [SSH] 185.220.101.45:52341 → CONNECTION
[14:32:03] [SSH] 185.220.101.45:52341 → LOGIN ATTEMPT | u=root p=123456
[14:32:04] [SSH] 185.220.101.45:52341 → SHELL COMMAND | cmd=whoami
[14:32:04] [SSH] 185.220.101.45:52341 → SHELL COMMAND | cmd=cat /etc/passwd
[14:33:01] [HTTP] 185.220.101.45:51234 → LOGIN ATTEMPT | u=admin p=password
[14:33:02] [HTTP] 185.220.101.45:51234 → SENSITIVE FILE PROBE | path=/.env
[!] COORDINATED SCAN DETECTED
185.220.101.45 hit 2 honeypot services: SSH, HTTP
This indicates automated multi-service scanning.
```
JSON 日志格式:
```
{
"timestamp": "2024-08-22T14:32:03.841234",
"honeypot": "SSH",
"source_ip": "185.220.101.45",
"source_port": 52341,
"event_type": "login_attempt",
"details": {
"username": "root",
"password": "123456",
"method": "password"
}
}
```
## 日志分析
```
python honeynet.py --analyze
```
```
=======================================================
HoneyNet Event Analysis — 1,247 total events
=======================================================
By Honeypot:
SSH: 891
HTTP: 312
FTP: 44
By Event Type:
login_attempt: 847
connection: 234
sensitive_file_probe: 98
shell_command: 68
Top Source IPs:
185.220.101.45: 312 events
91.240.118.172: 187 events
203.0.113.88: 143 events
Most Common Credentials Attempted:
root:123456: 47x
admin:admin: 38x
root:root: 31x
ubuntu:ubuntu: 28x
root:password: 22x
```
## 部署注意事项
- 在防火墙后运行 —— 仅暴露蜜罐端口
- 使用云 VPS(DigitalOcean、Linode 等)以获得最高的命中率
- SSH 蜜罐默认在端口 2222 上运行(在不需要真实 SSH 的 VPS 上可更改为 22)
- 端口 8080 上的 HTTP 蜜罐可以放在 nginx 后面的 80 端口上
- 定期轮转和归档日志
## MITRE ATT&CK 覆盖范围
HoneyNet 的诱饵可以捕获跨这些技术的攻击者行为。`logs/honeynet.json` 中的每个事件都是真实的对手活动,并映射到已记录的技术 —— 这既可用作检测规则的训练数据,也可作为威胁情报报告的证据。
| 蜜罐活动 | 战术 | 技术 |
|---|---|---|
| SSH 凭据尝试 | 凭据访问 | [T1110 — 暴力破解](https://attack.mitre.org/techniques/T1110/) |
| FTP 凭据尝试 | 凭据访问 | [T1110 — 暴力破解](https://attack.mitre.org/techniques/T1110/) |
| HTTP 登录尝试 | 凭据访问 | [T1110 — 暴力破解](https://attack.mitre.org/techniques/T1110/) |
| 攻击者输入的 Shell 命令 | 执行 | [T1059.004 — Unix Shell](https://attack.mitre.org/techniques/T1059/004/) |
| `whoami`, `id` | 侦察 | [T1033 — 系统所有者/用户发现](https://attack.mitre.org/techniques/T1033/) |
| `cat /etc/passwd`、账户枚举 | 侦察 | [T1087.001 — 本地账户发现](https://attack.mitre.org/techniques/T1087/001/) |
| HTTP 敏感文件探测(`.env`, `.git`) | 侦察 | [T1083 — 文件和目录发现](https://attack.mitre.org/techniques/T1083/) |
| 协调的多服务扫描 | 侦察 | [T1595 — 主动扫描](https://attack.mitre.org/techniques/T1595/) |
## 路线图
- [ ] 高价值事件的 Email/Slack 告警
- [ ] 威胁情报集成(根据 abuse.ch 检查 IP)
- [ ] 用于日志可视化的 Web 仪表板
- [ ] MySQL/Telnet 蜜罐模块
- [ ] GeoIP 丰富
## 许可证
MIT
标签:CISA项目, FTP蜜罐, Homebrew安装, Honeypot, HTTP蜜罐, PFX证书, Python, SSH蜜罐, 凭据捕获, 协同扫描检测, 威胁情报, 密码管理, 开发者工具, 开源安全工具, 攻击检测, 无后门, 网络安全, 网络安全实验, 网络安全审计, 蜜罐, 证书利用, 诱饵系统, 进程注入, 逆向工具, 逆向工程平台, 隐私保护, 集中式日志