MrBoyard7/wp-security-auditor

GitHub: MrBoyard7/wp-security-auditor

用于调查、清理和加固被入侵 WordPress 站点的命令行安全审计工具包,覆盖文件扫描、数据库审计和加固报告生成。

Stars: 0 | Forks: 0

# WP 安全审计 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/MrBoyard7/wp-security-auditor/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/MrBoyard7/wp-security-auditor/branch/main/graph/badge.svg)](https://codecov.io/gh/MrBoyard7/wp-security-auditor) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/downloads/) [![Last commit](https://img.shields.io/github/last-commit/MrBoyard7/wp-security-auditor)](https://github.com/MrBoyard7/wp-security-auditor/commits/main) [![Issues](https://img.shields.io/github/issues/MrBoyard7/wp-security-auditor)](https://github.com/MrBoyard7/wp-security-auditor/issues) 一个用于**调查、清理和强化受损 WordPress 安装**的命令行工具包。 它的构建初衷是为了自动化安全专家在接手被黑客攻击的 WordPress 网站时所遵循的精确工作流程:核实核心文件完整性,搜寻被注入的恶意软件和垃圾信息,审计用户账户,检查服务器/应用配置,并生成一份包含发现的问题和修复步骤的清晰报告。 ## 为什么开发这个工具 清理被黑客攻击的 WordPress 网站是一个可重复的过程: 1. 确认哪些核心、主题和插件文件被修改过。 2. 扫描文件系统,查找被注入/混淆的 PHP 代码(后门、植入器、重定向)。 3. 扫描数据库,查找垃圾内容、注入的链接和恶意的管理员账户。 4. 检查 `wp-config.php` 和 `.htaccess`,以发现恶意的重写规则或配置篡改。 5. 强化安装,确保相同的入口点无法被再次利用。 6. 向客户提交一份他们能看懂的报告。 `wp-security-auditor` 将这个检查清单转化为一次简单的 CLI 运行,并生成一份 Markdown/HTML 报告。 ## 功能 | 模块 | 功能说明 | |---|---| | `core_integrity` | 将已安装的 WordPress 核心文件与 WordPress.org API 的官方校验和进行比对,以标记被修改/添加/删除的文件 | | `malware_scanner` | 遍历文件系统(主题、插件、上传目录),应用签名/启发式规则集来标记混淆代码、上传目录中不该出现的 PHP 文件以及已知的后门模式 | | `database_scanner` | 解析数据库导出文件(或通过凭证连接),查找 posts/options 中的垃圾信息注入、未经授权的重定向以及可疑的 `wp_options` 条目 | | `user_auditor` | 列出 WordPress 用户,并标记在预期模式之外创建的管理员账户 | | `config_scanner` | 检查 `wp-config.php` 和 `.htaccess`,以发现弱安全密钥、危险常量和注入的重写规则 | | `hardening` | 检查常见的强化设置(文件编辑、XML-RPC、文件权限、安全密钥),并报告与安全基线相比存在的差距 | | `report_generator` | 将每个模块的发现汇总成一份适用于交付给客户的 Markdown/HTML 报告 | ## 测试与质量 - **44 个单元测试**,覆盖每个模块,通过 [GitHub Actions](.github/workflows/ci.yml) 在 Python 3.9–3.12 环境下每次推送时自动运行。 - **约 94% 的测试覆盖率**,使用 `coverage.py` 测量并报告给 [Codecov](https://codecov.io/gh/MrBoyard7/wp-security-auditor)(参见上方的徽章)。 - 测试使用合成的、非功能性的 fixture 和模拟的网络调用(运行测试套件不需要真实的 WordPress 网站或真实的凭证)。 ## 安装说明 ``` git clone https://github.com/MrBoyard7/wp-security-auditor.git cd wp-security-auditor pip install -r requirements.txt pip install -e . ``` 要求 Python 3.9+。 ### 在本地运行带覆盖率的测试 ``` pip install -r requirements-dev.txt coverage run -m unittest discover -s tests -v coverage report ``` ## 使用说明 ``` # 对本地 WordPress 安装进行全面审计 wp-security-auditor audit --path /var/www/example.com --wp-version 6.5.3 # 仅扫描 Filesystem 恶意软件 wp-security-auditor scan-files --path /var/www/example.com # 使用 SQL 导出扫描数据库 wp-security-auditor scan-db --sql-dump ./backup.sql # 针对当前安装生成加固清单 wp-security-auditor harden-check --path /var/www/example.com # 生成完整的 Markdown 报告 wp-security-auditor audit --path /var/www/example.com --wp-version 6.5.3 --report report.md ``` 请参阅 [`docs/USAGE.md`](docs/USAGE.md) 获取完整的命令参考,以及 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) 了解各模块是如何协同工作的。 在 [`examples/sample_report.md`](examples/sample_report.md) 中包含了一份针对故意错误配置的测试安装生成的示例报告。 ## 项目结构 ``` wp-security-auditor/ ├── README.md ├── LICENSE ├── .gitignore ├── .coveragerc # coverage.py configuration used by CI ├── requirements.txt ├── requirements-dev.txt # adds coverage tooling on top of requirements.txt ├── setup.py ├── .github/ │ └── workflows/ │ └── ci.yml # GitHub Actions: tests + coverage upload to Codecov on every push/PR ├── src/ │ └── wp_security_auditor/ │ ├── __init__.py │ ├── cli.py # CLI entry point and command orchestration │ ├── core_integrity.py # WordPress core checksum verification │ ├── malware_scanner.py # Filesystem signature/heuristic scanner │ ├── database_scanner.py # Database / SQL dump content scanner │ ├── user_auditor.py # WordPress user account auditor │ ├── config_scanner.py # wp-config.php / .htaccess reviewer │ ├── hardening.py # Security hardening checklist engine │ ├── report_generator.py # Markdown/HTML report builder │ └── utils.py # Shared helpers (logging, file walking) ├── signatures/ │ └── malware_patterns.json # Signature/heuristic ruleset used by malware_scanner ├── tests/ │ ├── __init__.py │ ├── test_cli.py │ ├── test_malware_scanner.py │ ├── test_core_integrity.py │ ├── test_config_scanner.py │ ├── test_database_scanner.py │ ├── test_hardening.py │ ├── test_user_auditor.py │ ├── test_report_generator.py │ └── fixtures/ │ └── suspicious_sample.php # Synthetic, non-functional fixture for scanner tests ├── examples/ │ └── sample_report.md # Example output report └── docs/ ├── USAGE.md └── ARCHITECTURE.md ``` ## 免责声明 本工具用于对您拥有或被授权测试的 WordPress 网站进行**防御性安全审计**。它不会利用漏洞,在操作者未提供明确的本地文件/数据库访问权限的情况下不会修改远程站点,并且不包含任何功能性的恶意负载——扫描器测试 fixture 仅是一个用于验证模式匹配的合成替代品。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。
标签:Python, WordPress, 库, 应急响应, 恶意软件清理, 文档结构分析, 无后门, 系统加固, 逆向工具