iba-1/cpanel-forensics
GitHub: iba-1/cpanel-forensics
针对 cPanel/WHM/CloudLinux 服务器的 Bash 应急响应工具包,提供系统性取证收集、MITRE ATT&CK 映射的数据外发检测和勒索软件追踪能力。
Stars: 0 | Forks: 0
# cPanel 取证工具包
用于在 cPanel/WHM/CloudLinux 服务器上进行应急响应的 Bash 脚本。专为真实环境下的取证收集、数据外发检测和勒索软件追踪而构建。
## 脚本
### `forensic_collect.sh`
完整的取证证据收集——首先捕获易失性状态,然后将所有内容打包成 tarball 以供离线分析。
```
sudo bash forensic_collect.sh [output_dir]
```
**收集内容(12个阶段):**
| 阶段 | 内容 | 目的 |
|-------|------|-----|
| 1 | 网络连接、进程、`/proc`、iptables | 易失性——每秒都在变化 |
| 2 | 完整的 `/var/log/`、Apache domlogs、Apache 日志 | 全系统日志证据 |
| 3 | cPanel 日志、用户配置、传输会话 | WHM/cPanel 访问痕迹 |
| 4 | `last`/`lastb`、wtmp/btmp、SSH 认证事件 | 登录历史和暴力破解 |
| 5 | 所有用户的 `.bash_history`、`.mysql_history` 等 | 攻击者命令重建 |
| 6 | 所有 crontab(用户 + 系统) | 持久化机制 |
| 7 | `/etc/passwd`、`/etc/shadow`、SSH 密钥、sudoers | 账户篡改、恶意密钥 |
| 8 | Auditd 日志 + aureport 分析 | 系统调用级别的命令证据 |
| 9 | 二进制文件哈希 (openssl)、`rpm -Va`、SUID 扫描 | Rootkit/木马检测 |
| 10 | 数据外发指标 (已映射 MITRE ATT&CK) | 数据盗窃证据 |
| 11 | CloudLinux CageFS、LVE 统计信息 | CageFS 逃逸、加密挖矿 |
| 12 | 总结报告 + tar.gz 压缩 | 供分析师直接使用的输出 |
**数据外发检测涵盖:**
- **T1041** — C2 通道(异常端口、字节量分析)
- **T1048** — 替代协议(DNS 隧道、SMTP 大附件)
- **T1048.003** — DNS 子域名长度分析、TXT/NULL 查询
- **T1567.002** — 云存储(rclone、aws、gcloud 检测 + 凭证收集)
- **T1537** — 云账户传输
- **T1029** — 定时传输(可疑的 cron 条目)
- **T1074** — 数据暂存(`/tmp`、`/dev/shm` 中的文件)
- Webshell 检测与收集
- `.htaccess` 后门收集
**输出:** 包含所有内容的单个 `.tar.gz` 文件,以及带有快速分类警报的 `REPORT.txt`。
### `ransomware_detect.sh`
独立的勒索软件检测——检查加密产物、勒索信、备份破坏情况以及文件完整性。
```
sudo bash ransomware_detect.sh [output_dir] [forensic_collect_dir]
```
可选的第二个参数允许其复用已被 `forensic_collect.sh` 收集的 shell 历史记录。
**检查内容(8个阶段):**
| 阶段 | 内容 |
|-------|------|
| 1 | 勒索信文件(40+ 种文件名模式 + Sorry/SorryGo `README.md` 检测) |
| 2 | 文本文件中的 `.onion` URL、加密钱包地址、qTox ID |
| 3 | 加密文件扩展名(50+ 种模式,包括 `.sorry`、`.lockbit`、`.akira`) |
| 4 | 大量文件修改(每小时修改的文件数——超过1000个/小时 = 加密) |
| 5 | Shell 历史中的加密命令(`openssl enc`、`gpg`、`shred`) |
| 6 | 备份破坏(缺失的备份目录、历史记录中的 `rm` 命令) |
| 7 | 已知的勒索软件进程名(30+ 个家族) |
| 8 | 文件头/魔术字节分析(检测没有有效文件头的加密 `.jpg`/`.png`/`.pdf`) |
**包含针对 Sorry/SorryGo (2026) 的专项检测:**
- `.sorry` 文件扩展名
- 作为勒索信的 `README.md`(通过 grep 检索 `qtox`、`tox.id`、`taobao`、`decrypt` 关键词)
- SorryGo 进程名模式
### `check_logs.sh`
专为 cPanel 服务器设计的快速特定域名日志查找与监控工具。
```
bash check_logs.sh example.com
```
- 查找所有匹配域名的日志文件
- 显示每个日志文件的最后 50 行
- 将找到的日志路径保存到 `/tmp/logs_.txt`
- 在启动 `tail -f` 进行实时监控前会进行询问
- 跳过 `.gz` 压缩日志
## 用法
```
# 1. 上传到 server
scp *.sh root@your-server:/root/
# 2. 运行 forensic 收集(优先运行 — 捕获 volatile state)
ssh root@your-server 'bash /root/forensic_collect.sh'
# 3. 运行 ransomware 扫描(可复用 forensic 数据)
ssh root@your-server 'bash /root/ransomware_detect.sh /root/ransom_scan /root/forensic_*'
# 4. 拉取结果
scp root@your-server:/root/forensic_*.tar.gz .
scp root@your-server:/root/ransomware_scan_*.tar.gz .
# 5. 检查特定 domain 日志
ssh root@your-server 'bash /root/check_logs.sh example.com'
```
## 环境要求
- 目标服务器的 Root 权限
- Bash 4+
- 标准 Linux 工具(`find`、`grep`、`awk`、`ps`、`ss`/`netstat`、`lsof`)
- 适用于 CentOS 6/7、CloudLinux 6/7/8、AlmaLinux、RHEL
- 使用 `openssl dgst` 代替 `sha256sum`(适用于最小化安装环境)
## 注意事项
- **尽早**运行 `forensic_collect.sh`——第 1 阶段捕获的易失性网络/进程状态每秒都在变化
- 理想情况下,在运行前以只读模式挂载磁盘,但该脚本也适用于运行中的系统
- 由于会转储完整日志,输出的 tarball 可能非常大(数 GB)——请提前规划好磁盘空间和传输时间
- 每一行日志都包含了收集的**原因**、**源路径**和**目标路径**,用于证据保管链文档记录
## 许可证
MIT
标签:CageFS逃逸, CloudLinux, cPanel, Linux服务器安全, Linux系统管理, Shell脚本, Webshell检测, WHM, 加密货币挖矿检测, 勒索软件检测, 勒索软件狩猎, 后门检测, 域渗透, 安全合规, 库, 应急响应, 应用安全, 持久化分析, 数字取证, 数字取证, 数据渗出检测, 日志收集, 易失性数据收集, 服务器安全工具, 电子数据取证, 网络代理, 网络安全, 网络连接分析, 自动化脚本, 自动化脚本, 进程分析, 隐私保护