netztaucher/NT-Forensik

GitHub: netztaucher/NT-Forensik

一款面向 WordPress/Plesk 服务器的只读取证事件响应 Bash 脚本,通过系统性检查生成客户、合规与技术三份报告。

Stars: 0 | Forks: 0

NT Forensik — WordPress & Rootserver · Digitale Spurensuche. Klare Analyse. Sichere Lösung.

由 netztaucher 提供的 WordPress 维护与安全服务  ·  Releases  ·  手册

# NT-Forensik **针对 WordPress/Plesk 服务器的取证事件响应 (Incident-Response) —— 一个单一的、只读的 Bash 脚本。** `wp_plesk_forensik.sh` 会对受损(或可疑)的 Plesk 服务器进行系统性的攻击痕迹调查,并在每次运行时生成三份现成的文档: - **`kundenbericht.md`** — 面向客户的通俗易懂版报告(红绿灯评级、设定期限的紧急措施、攻击过程)。 - **`bsi_meldung.md`** — 预先填写好的 BSI 报告草稿(BSIG/NIS2 结构),包含各项指标和 IOC。 - **`technik_bericht.md`** — 涵盖所有检查点的完整技术报告。 所有原始数据都将作为带有编号并经 SHA256 加密封存的凭据进行保存(Chain-of-Custody)。 ## 🛡️ 由 netztaucher 提供的 WordPress 维护 NT-Forensik 诞生于我们日常的 **WordPress 维护与安全防护**实践中。如果您正在运营 WordPress,并且希望永远不必经历此类入侵事件——或者在紧急情况下需要快速、规范的事件响应 (Incident-Response)? **→ [netztaucher.com/wordpress](https://netztaucher.com/wordpress)** —— 集维护、安全加固、监控和紧急取证于一体。 ## 为什么需要 在 WordPress 遭到入侵后的第一个小时至关重要:日志会不断轮转,证据会逐渐消失,而客户需要明确的结论。常规的恶意软件扫描器往往会漏掉现代的、经过混淆的后门(例如由 Cookie 触发的、大小写混合的 `eval` 下载器)。NT-Forensik 正是为此而生:**保全、识别、记录 —— 一气呵成,且不改变系统状态。** ## 功能范围 整个运行过程分为 13 个部分: | # | 部分 | 检查内容包括 | |---|---|---| | 1 | 系统概览 | OS、Plesk、PHP、Web 服务器;与 `/root/changelog.md` 进行比对 | | 2 | 日志保全 |对所有相关日志进行全面备份(首要操作) | | 3 | 访问分析 | SSH 登录、暴力破解 IP、Plesk 面板、FTP | | 4 | Web 流量 | 扫描器特征、Webshell POST 请求、wp-login 暴力破解 | | 5 | 用户与权限 | Shell 用户、UID-0、sudo、SSH 密钥 | | 6 | Cron 与持久化 | Crontabs、systemd 定时器/单元、at 任务、rc.local、`ld.so.preload` | | 7 | 文件系统 | Webshell(两阶段检测)、上传目录中的 PHP 文件、SUID、不可变标志 (Immutable-Flags)、`.htaccess` 重定向 | | 8 | 网络与服务 | 开放端口、进程取证、邮件队列 (Mailqueue)、`dpkg -V` 完整性 | | 9 | 安全服务 | Fail2ban、ModSecurity、防火墙 | | 10 | 其他域名 | 服务器范围内的受影响情况 | | 11 | **WordPress 数据库** | 陌生的管理员、被篡改的选项、启用的插件 | | 12 | **Root/提权检查** | Root 登录、陌生密钥、权限提升 (Privilege-Escalation) → Root 判定 | | 13 | 总结 | 检查结果统计、行动计划 | ### 检测亮点 - **混淆的 Cookie 后门**:能够识别可变变量超全局数组 (`${$a.$b.$c}` → `_COOKIE`) 以及大小写混合的 `EvaL(base64_decode(...))` —— 这是一种常用于绕过特征码扫描器的规避技术。 - **两阶段 Webshell 评估**:区分小型混淆下载器(极危)与包含合法 `eval` 的大型框架文件(需审查)—— 通过文件大小将真正的发现与干扰信息区分开。 - **误报过滤器**:主题图标字体、WP 防护文件、已删除二进制文件的升级残留、Plesk 自带的 SSH 密钥。 - **Root 判定**:将登录、密钥、sudo 和二进制完整性数据整合为一个清晰的结论:“仅限于 Web 用户层面”还是“不能排除 Root 权限泄露”。 ## 用法 ``` # 上传到服务器并执行 (自动创建 /root/wartungsscripte) scp wp_plesk_forensik.sh root@SERVER:/root/ ssh root@SERVER "bash /root/wp_plesk_forensik.sh kundendomain.tld" # 无 Domain 参数 → 服务器的所有 Domain ssh root@SERVER "bash /root/wp_plesk_forensik.sh" ``` 该脚本在首次运行时会自动安装到 `/root/wartungsscripte/` 目录下,并为每次运行创建一个专属文件夹: ``` /root/wartungsscripte/forensik/_/ ├── belege/ # nummerierte Rohdaten, SHA256-versiegelt, Chain-of-Custody ├── kundenbericht.md ├── bsi_meldung.md ├── technik_bericht.md └── lauf.log ``` ### 前置条件 - Plesk 服务器(已测试:基于 Ubuntu 22.04 的 Plesk Obsidian)、Bash、Root 权限。 - 可选:`dig`、`fail2ban-client`、`dpkg`、MySQL 访问权限(用于 WordPress 数据库检查;将自动使用 Plesk 管理员权限)。 - 只读:该脚本 **不会** 对网站空间进行任何修改。 ## 报告示例 在 [`examples/`](examples/) 文件夹中,提供了一个基于**虚构**事件的完整示例报告(所有域名、IP 地址、哈希值和名称均为虚构 —— 使用了 RFC-5737 文档标准 IP 和 `example` 域名): - [`examples/kundenbericht.md`](examples/kundenbericht.md) - [`examples/bsi_meldung.md`](examples/bsi_meldung.md) - [`examples/technik_bericht_auszug.md`](examples/technik_bericht_auszug.md) ## 文档 - **[`docs/handbuch.md`](docs/handbuch.md)** — 完整的用户手册:安装指南、全部 13 个检查部分、报告解读、判定结果说明、故障排除及常见问题。 - **[`docs/erkennung.md`](docs/erkennung.md)** — 检测参考:特征码、两阶段 Webshell 评估、误报过滤器、Root 判定及其局限性。 - **[`docs/incident-response.md`](docs/incident-response.md)** — 事件响应 (Incident-Response) 行动手册:涵盖从证据保全到安全加固的 7 个阶段。 - **[`docs/runbook.md`](docs/runbook.md)** — 用于手动对单个检查点进行临时分析的操作手册 (Runbook)。 ## 安全与法律 - **请仅在自己拥有或明确授权管理的系统上使用。** 未经许可对他人系统进行取证属于违法行为。 - 该脚本针对网站空间是 **只读** 的;它仅会向 `/root/wartungsscripte/` 目录写入数据。 - 如果涉及个人数据受损:请务必遵守 **DSGVO (GDPR) 第 33 条**(72 小时强制报告时限)。生成的 `bsi_meldung.md` 仅为草稿,不能替代专业的法律咨询。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。 *netztaucher | digital*
标签:应用安全, 文件完整性监控, 防御框架