用于 HestiaCP 服务器的只读 WordPress 安全扫描器。检测所有托管站点上的 wp2shell 入侵指标(CVE-2026-63030 / CVE-2026-60137)——按用户发送的电子邮件报告、与干净 WordPress 版本的核心文件差异对比、PHP/JS/htaccess/图片分析,以及可选的通过 Claude API 进行的 AI 评估。
适用于 HestiaCP 服务器的只读 WordPress 安全扫描器。
检测所有托管站点中的 wp2shell 入侵指标——支持按客户发送电子邮件报告、核心文件差异比对、SHA256 网页后门检测、风险评分以及可选的 AI 评估。
⚠️ 安全版本: WordPress 6.8.6 / 6.9.5 / 7.0.2 或更高版本。
这些脚本绝不会修改任何内容——全程只读。
wp2shell 是 WordPress 核心中的一个预认证远程代码执行(RCE)漏洞链,于 2026 年 7 月 17 日披露。只需向默认安装发送单个匿名 HTTP 请求,即可创建一个恶意管理员账户并在服务器上执行任意代码。
该漏洞链组合了:
WP_Query 的 author__not_in 参数存在 SQL 注入/wp-json/batch/v1 端点存在路由混淆被入侵的站点会出现一个恶意管理员账户,其登录名前缀为 wp2_,邮箱为 @wp2shell.invalid。
更多信息:https://wp2shell.com
| 文件 | 用途 |
|---|---|
wp2shell-scan.sh | 快速的服务器范围 IoC 扫描器——彩色终端输出、按站点风险评分、自动保存报告至 /root/ |
wp2shell-report-per-user.sh | 完整扫描器——按 HestiaCP 用户发送电子邮件报告、核心文件差异比对、SHA256 网页后门检测、AI 评估、风险评分 |
known_shells.sha256 | 已知网页后门哈希数据库(SHA256)——运行时自动获取 |
| 检查项 | 严重级别 |
|---|---|
wp core verify-checksums 与 wp.org 校验对比 | HIGH |
与下载的干净核心进行逐行 diff -U5 对比 | CRITICAL / HIGH / OK |
| 干净核心中不存在的额外文件(显示内容 + 元数据) | CRITICAL / HIGH |
| 检查项 | 严重级别 |
|---|---|
包含 curl/wget/php/base64 的用户 crontab 条目 | HIGH |
| 引用站点路径的系统 cron 文件 | MEDIUM |
每个站点都会获得一个 0–100 的风险评分,并逐项列出所有促成该评分的发现:
+------------------------------------------+
| RISK SCORE: 96/100 COMPROMISED |
+------------------------------------------+
+40 wp2shell fingerprint account
+30 PHP file(s) inside uploads/
+20 Vulnerable WordPress version
+6 Core checksum failure
| 评分 | 标签 |
|---|---|
| 0–20 | 可能干净 |
| 21–40 | 低风险 |
| 41–60 | 中风险 |
| 61–80 | 高风险 |
| 81+ |
wproot 访问权限sendmail(用于发送电子邮件报告)python3(用于 AI 评估的 JSON 处理)curl、sha256sum、file、strings、unzipcurl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && sudo mv wp-cli.phar /usr/local/bin/wp
curl -fsSL https://raw.githubusercontent.com/BytesPulse-OE/wp2shell-Hestia-Scanner/main/wp2shell-scan.sh | sudo bash
curl -fsSL https://raw.githubusercontent.com/BytesPulse-OE/wp2shell-Hestia-Scanner/main/wp2shell-report-per-user.sh \
-o wp2shell-report-per-user.sh && sudo bash wp2shell-report-per-user.sh
注意: 完整扫描器在启动时会询问交互式问题(AI 评估、保存报告、日期阈值)。先下载再运行可确保提示正常工作。
sudo bash wp2shell-scan.sh
扫描 /home/*/web/*/public_html/ 下的所有 WordPress 安装,运行所有检查,将彩色输出打印到终端,并将完整报告保存到 /root/wp2shell-report-YYYYMMDD-HHMMSS.txt。
启动时会询问一个可选的自定义日期阈值(默认:2026-07-15)。
sudo bash wp2shell-report-per-user.sh
启动时会询问三个问题:
[AI EVALUATION] Use AI evaluation for ambiguous files? [y/N]
[SAVE REPORT] Save a full report file for later review? [y/N]
[DATE THRESHOLD] Use a different date? Leave blank to keep default [YYYY-MM-DD]:
始终以 DRY_RUN=1 启动(默认值)——电子邮件仅在屏幕上预览,不会实际发送。只有确认输出无误后,才将其更改为 DRY_RUN=0。
| 变量 | 默认值 | 说明 |
|---|
对于仅靠模式无法分类的模糊差异,扫描器会将差异发送到 Claude API(claude-sonnet-4-6)并返回判定结果:DANGER、SUSPICIOUS、REVIEW 或 OK,附带一句说明。AI 仅在灰色地带使用——明确的情况无需任何 API 调用即可即时分类。
在脚本中设置密钥,或在运行前导出:
export ANTHROPIC_API_KEY='sk-ant-api03-...'
sudo -E bash wp2shell-report-per-user.sh
API 密钥:https://console.anthropic.com——与 claude.ai 订阅相互独立。
将扫描输出粘贴到 Claude.ai 上的 wp2shell Report Analyzer artifact 中——它可以直接在浏览器中执行相同的 AI 评估,无需您自己的密钥。
┌─ MODIFIED: wp-includes/load.php
│ [CRITICAL] Assessment (patterns): executable/obfuscated pattern in added lines
│ +20 Core file modified with dangerous pattern
│
│ ORIGINAL: /root/wp2shell-cores/7.0.2-el/wp-includes/load.php
│ SITE: /home/user/web/example.gr/public_html/wp-includes/load.php
│ @@ -212,5 +212,6 @@
│ - $loaded = true;
│ + $loaded = true;
│ + eval(base64_decode('aGVsbG8='));
└──────────────────────────────────────
CORE_CACHE 目录(/root/wp2shell-cores/)会在多次扫描之间复用。删除它可强制重新下载。known_shells.sha256 哈希数据库每天自动刷新一次。GPL-3.0 — 请参阅 LICENSE
由 BytesPulse 针对 wp2shell 漏洞披露(2026 年 7 月)而开发。
CVE 信息:https://wp2shell.com
wp2shell 是 WordPress 核心中的一个预认证远程代码执行(RCE)漏洞链,于 2026 年 7 月 17 日披露。只需向默认安装发送单个匿名 HTTP 请求,即可创建一个恶意管理员账户并在服务器上执行任意代码。
该漏洞链组合了:
WP_Query 的 author__not_in 参数存在 SQL 注入/wp-json/batch/v1 端点存在路由混淆被入侵的站点会出现一个恶意管理员账户,其登录名前缀为 wp2_,邮箱为 @wp2shell.invalid。
更多信息:https://wp2shell.com
| 文件 | 用途 |
|---|---|
wp2shell-scan.sh | 快速的服务器范围 IoC 扫描器——彩色终端输出、按站点风险评分、自动保存报告至 /root/ |
wp2shell-report-per-user.sh | 完整扫描器——按 HestiaCP 用户发送电子邮件报告、核心文件差异比对、SHA256 网页后门检测、AI 评估、风险评分 |
known_shells.sha256 | 已知网页后门 SHA256 哈希数据库——运行时自动获取 |
| 检查项 | 严重级别 |
|---|---|
wp core verify-checksums 与 wp.org 校验对比 | HIGH |
与干净核心进行逐行 diff -U5 对比 | CRITICAL / HIGH / OK |
| 干净核心中不存在的额外文件 | CRITICAL / HIGH |
| 检查项 | 严重级别 |
|---|---|
包含 curl/wget/php/base64 的用户 crontab | HIGH |
| 引用站点路径的系统 cron 文件 | MEDIUM |
每个站点都会获得一个 0–100 的风险评分,并列出每个发现的详细分析:
+------------------------------------------+
| RISK SCORE: 96/100 COMPROMISED |
+------------------------------------------+
+40 wp2shell fingerprint account
+30 PHP file(s) inside uploads/
+20 Vulnerable WordPress version
+6 Core checksum failure
| 评分 | 类别 |
|---|---|
| 0–20 | 可能干净 |
| 21–40 | 低风险 |
| 41–60 | 中风险 |
| 61–80 | 高风险 |
| 81+ |
wproot 访问权限sendmail(用于发送电子邮件)python3(用于 AI 评估)curl、sha256sum、file、strings、unzipcurl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && sudo mv wp-cli.phar /usr/local/bin/wp
curl -fsSL https://raw.githubusercontent.com/BytesPulse-OE/wp2shell-Hestia-Scanner/main/wp2shell-scan.sh | sudo bash
curl -fsSL https://raw.githubusercontent.com/BytesPulse-OE/wp2shell-Hestia-Scanner/main/wp2shell-report-per-user.sh \
-o wp2shell-report-per-user.sh && sudo bash wp2shell-report-per-user.sh
sudo bash wp2shell-scan.sh
自动扫描 /home/*/web/*/public_html/ 下的所有 WordPress 安装,执行所有检查,将彩色输出打印到终端,并将完整报告保存到 /root/。
sudo bash wp2shell-report-per-user.sh
启动时会询问三个问题:
[AI EVALUATION] Χρήση AI αξιολόγησης για αμφίβολα αρχεία; [y/N]
[SAVE REPORT] Αποθήκευση πλήρους report σε αρχείο; [y/N]
[DATE THRESHOLD] Διαφορετική ημερομηνία; Αφήστε κενό για default [YYYY-MM-DD]:
始终以 DRY_RUN=1 启动(默认值)——电子邮件仅在屏幕上预览,不会发送。只有确认输出无误后,才将其更改为 DRY_RUN=0。
| 变量 | 默认值 | 说明 |
|---|
对于仅靠模式无法判定的模糊差异,扫描器会将差异发送到 Claude API(claude-sonnet-4-6),并返回结论:DANGER、SUSPICIOUS、REVIEW 或 OK,附带一句说明。AI 仅用于灰色地带。
export ANTHROPIC_API_KEY='sk-ant-api03-...'
sudo -E bash wp2shell-report-per-user.sh
API 密钥:https://console.anthropic.com——与 claude.ai 订阅相互独立。
将扫描输出粘贴到 Claude.ai 上的 wp2shell Report Analyzer artifact 中——它可以在浏览器中直接执行相同的 AI 评估。
CORE_CACHE 目录(/root/wp2shell-cores/)会在多次扫描之间复用。删除它可以强制重新下载。known_shells.sha256 数据库每 24 小时自动更新一次。GPL-3.0 — 请参阅 LICENSE
由 BytesPulse 针对 wp2shell 漏洞披露(2026 年 7 月)而开发。
CVE 信息:https://wp2shell.com
| 检查项 | 严重级别 |
|---|
| WordPress 版本与安全版本对比 | HIGH / OK |
带有 wp2_ 前缀或 @wp2shell.invalid 邮箱的账户 | CRITICAL |
| 披露日期(2026 年 7 月 15 日)之后创建的管理员 | MEDIUM |
| 用户 ID 序列断号(被删除的恶意管理员痕迹) | MEDIUM |
孤立的 wp_usermeta 行 | MEDIUM |
被投毒的 oembed_cache / customize_changeset 行 | CRITICAL |
被篡改的 WP 选项(upload_path、auto_prepend_file、siteurl) | CRITICAL / HIGH |
| 检查项 | 严重级别 |
|---|
uploads/ 中的 PHP 文件 | CRITICAL |
额外的 PHP 扩展名(.php7 .phtml .phar .php5) | HIGH |
| 与已知网页后门数据库进行 SHA256 匹配(WSO、FilesMan、b374k、p0wny…) | CRITICAL |
在 SINCE_DATE 之后被修改并且匹配可疑模式的 PHP 文件——内联显示匹配行 | CRITICAL / HIGH |
| 含有可疑模式但未在近期修改的 PHP 文件 | LOW |
在 SINCE_DATE 之后被修改且匹配混淆模式的 JS/HTML 文件 | MEDIUM |
| 外部 C2/数据外泄 URL(pastebin、ngrok、Discord webhooks、bit.ly…) | CRITICAL |
.htaccess 危险指令(AddType、auto_prepend_file、外部 RewriteRule) | HIGH |
在 SINCE_DATE 之后被修改的 .htaccess | MEDIUM |
包含 PHP 载荷的多语言图像(.jpg/.png 中存在 <?php…) | CRITICAL |
暴露的备份/配置文件(wp-config.php.bak、*.sql…) | MEDIUM |
| 已被入侵 |
WEB_ROOT | /home | HestiaCP Web 根目录 |
SINCE_DATE | 2026-07-15 | “最近修改”时间阈值 |
WP | wp | WP-CLI 路径 |
| 变量 | 默认值 | 说明 |
|---|
DRY_RUN | 1 | 1 = 仅预览,0 = 发送电子邮件 |
SEND_ONLY_IF_ISSUES | 0 | 1 = 站点干净时跳过电子邮件 |
SINCE_DATE | 2026-07-15 | “最近修改”时间阈值 |
MAIL_FROM | security@<hostname> | 信封发件人 |
CORE_CACHE | /root/wp2shell-cores | 干净核心缓存目录 |
ANTHROPIC_API_KEY | (空) | 用于 AI 评估的 Claude API 密钥 |
| 标签 | 颜色 | 含义 |
|---|
[CRITICAL] | 🔴 粗体红色 | 活跃的入侵指标——立即处理 |
[HIGH] | 🔴 红色 | 强烈指标——紧急审查 |
[MEDIUM] | 🟡 黄色 | 可疑——需要调查 |
[LOW] | 🔵 蓝色 | 低优先级——可能是误报 |
[INFO] | ⚫ 灰色 | 信息性 |
[OK] | 🟢 绿色 | 干净 / 符合预期 |
| 检查项 | 严重级别 |
|---|
| WordPress 版本与安全版本对比 | HIGH / OK |
带有 wp2_ 前缀或 @wp2shell.invalid 邮箱的账户 | CRITICAL |
| 披露日期(2026 年 7 月 15 日)之后创建的管理员 | MEDIUM |
| 用户 ID 序列断号(被删除的恶意管理员痕迹) | MEDIUM |
孤立的 wp_usermeta 行 | MEDIUM |
被投毒的 oembed_cache / customize_changeset 行 | CRITICAL |
被篡改的 WP 选项(upload_path、auto_prepend_file、siteurl) | CRITICAL / HIGH |
| 检查项 | 严重级别 |
|---|
uploads/ 中的 PHP 文件 | CRITICAL |
额外的 PHP 扩展名(.php7 .phtml .phar .php5) | HIGH |
| 与已知网页后门进行 SHA256 匹配(WSO、FilesMan、b374k、p0wny…) | CRITICAL |
在 SINCE_DATE 之后被修改并且含有可疑模式的 PHP 文件——显示精确匹配行 | CRITICAL / HIGH |
| 含有可疑模式但未在近期修改的 PHP 文件 | LOW |
在 SINCE_DATE 之后被修改且带有混淆模式的 JS/HTML 文件 | MEDIUM |
| 外部 C2/数据外泄 URL(pastebin、ngrok、Discord webhooks、bit.ly…) | CRITICAL |
.htaccess 中的危险指令 | HIGH |
在 SINCE_DATE 之后被修改的 .htaccess | MEDIUM |
| 包含 PHP 载荷的多语言图像 | CRITICAL |
| 暴露的备份/配置文件 | MEDIUM |
| 已被入侵 |
WEB_ROOT | /home | HestiaCP 根目录 |
SINCE_DATE | 2026-07-15 | “最近修改”时间阈值 |
WP | wp | WP-CLI 路径 |
| 变量 | 默认值 | 说明 |
|---|
DRY_RUN | 1 | 1 = 仅预览,0 = 发送电子邮件 |
SEND_ONLY_IF_ISSUES | 0 | 1 = 仅在发现问题时发送电子邮件 |
SINCE_DATE | 2026-07-15 | “最近修改”时间阈值 |
MAIL_FROM | security@<hostname> | 发件人电子邮件 |
CORE_CACHE | /root/wp2shell-cores | 干净核心缓存 |
ANTHROPIC_API_KEY | (空) | 用于 AI 评估的 Claude API 密钥 |