TRojen610/cPanel-WordPress-Malware-Cleanup-Toolkit
GitHub: TRojen610/cPanel-WordPress-Malware-Cleanup-Toolkit
一套针对cPanel/WHM服务器上WordPress站点hacklink恶意软件的检测、清理和后门隔离Bash脚本工具包。
Stars: 0 | Forks: 0
# cPanel WordPress 恶意软件清理工具包
## Türkçe
本仓库包含一套 Bash 脚本,用于检测和清理 cPanel/WHM 服务器上多个 WordPress 站点中感染的 hacklink、SEO spam、后门及可疑 PHP 文件。
这些脚本专为以下类型的感染而设计:
- `hacklinkmarket`
- `wp_core_check`
- `t.me/hacklink_panel`
- 注入到 WordPress 主题 `functions.php` 中的 hacklink loader 代码
- 释放到 `wp-content/uploads` 中的 PHP 后门文件
- `.trash` 中残留的受感染主题
- 可疑的 cron job 记录
- 可疑的 `.htaccess` 条目
## 文件说明
### 1. `cpanel-malware-scan.sh`
此脚本仅执行扫描。它不会删除或修改任何文件。
功能说明:
- 扫描 `/home` 目录下的可疑字符串
- 报告 `hacklink`、`wp_core_check`、`base64_decode`、`eval(` 等特征
- 列出 `wp-content/uploads` 目录下的 PHP 文件
- 列出最近 14 天内被修改过的 PHP 文件
- 检查 cPanel 用户的 cron job
- 报告 `.htaccess` 中的可疑重定向和 PHP 设置
运行方式:
```
chmod +x cpanel-malware-scan.sh
sudo ./cpanel-malware-scan.sh
```
报告输出:
```
/root/cpanel-malware-scan-YYYY-MM-DD-HHMMSS.txt
```
查看报告:
```
less /root/cpanel-malware-scan-*.txt
```
实时跟踪:
```
tail -f /root/cpanel-malware-scan-*.txt
```
注意:此脚本会针对每个特征分别扫描 `/home` 目录,因此在大型服务器上可能需要较长时间。
### 2. `clean-hacklink.sh`
此脚本用于清理注入到 WordPress 主题 `functions.php` 文件中的 hacklink loader 代码。
目标文件:
```
/home/*/public_html/wp-content/themes/*/functions.php
```
清理的代码类型:
- `/* Telegram: https://t.me/hacklink_panel */`
- `wp_core_check`
- `panel.hacklinkmarket.com`
- 包含 `X-Robots-Tag: noindex, nofollow` 的恶意 noindex/cache 块
脚本会在处理前对待清理的文件进行备份。
运行方式:
```
chmod +x clean-hacklink.sh
sudo ./clean-hacklink.sh
```
备份目录示例:
```
/root/kalkhan-clean-backup-YYYY-MM-DD-HHMMSS
```
日志文件示例:
```
/root/kalkhan-clean-log-YYYY-MM-DD-HHMMSS.txt
```
清理后检查:
```
grep -RIn --include="functions.php" "hacklinkmarket\|wp_core_check\|hacklink_panel\|X-Robots-Tag: noindex" /home 2>/dev/null
```
如果仅在 `wp-includes/functions.php` 中出现正常的 WordPress `X-Robots-Tag: noindex` 行,这通常是无害的。
### 3. `backdoor-killer.sh`
此脚本不会删除可疑文件,而是将其移动到隔离区。
功能说明:
- 备份并删除受感染的 `.trash` 目录
- 将 `wp-content/uploads` 下的 PHP 文件移动到隔离区
- 将已知的 hacklink loader 文件移动到隔离区
- 搜索已知的 webshell 特征
- 报告 `.htaccess` 文件中的可疑条目
- 检查 cPanel cron job
- 执行最终验证扫描
运行方式:
```
chmod +x backdoor-killer.sh
sudo ./backdoor-killer.sh
```
隔离目录示例:
```
/root/backdoor-quarantine-YYYY-MM-DD-HHMMSS
```
日志文件示例:
```
/root/backdoor-killer-YYYY-MM-DD-HHMMSS.log
```
被隔离的文件会在其原始位置重命名,如下所示:
```
filename.php.killed-YYYY-MM-DD-HHMMSS
```
最终检查:
```
grep -RIn --include="*.php" "hacklinkmarket\|wp_core_check\|hacklink_panel" /home 2>/dev/null | grep -v "^/home/virtfs/"
```
如果输出为空,则说明现存的文件中已没有已知的 hacklink loader。
## 建议的执行顺序
1. 首先执行全面扫描:
```
sudo ./cpanel-malware-scan.sh
```
2. 清理主题内的 hacklink loader:
```
sudo ./clean-hacklink.sh
```
3. 隔离 backdoor 和 uploads 目录下的 PHP 文件:
```
sudo ./backdoor-killer.sh
```
4. 执行最终检查:
```
grep -RIn --include="*.php" "hacklinkmarket\|wp_core_check\|hacklink_panel" /home 2>/dev/null | grep -v "^/home/virtfs/"
```
5. 清理 WordPress 缓存:
```
find /home -type d -path "*/wp-content/cache" -exec rm -rf {} \; 2>/dev/null
```
## 清理后的安全检查清单
清理完成后务必:
- 更改 WHM/root 密码
- 更改所有 cPanel 用户密码
- 更改 FTP/SFTP 密码
- 更改 WordPress 管理员密码
- 更改数据库密码
- 重新安装所有 WordPress 核心文件
- 更新主题和插件
- 删除未使用的插件和主题
- 禁止在 `wp-content/uploads` 中执行 PHP
- 手动检查 cron job
- 在 `wp-config.php` 中添加以下内容以禁用文件编辑:
```
define('DISALLOW_FILE_EDIT', true);
```
为了禁止在 uploads 目录中执行 PHP,请在 `wp-content/uploads/.htaccess` 中添加:
```
Require all denied
```
对于旧版 Apache:
```
deny from all
```
## 重要注意事项
- `/home/virtfs` 的结果通常是 jailed shell 的 bind mount 副本。因此,在脚本中通常会被排除。
- 仅出现 `base64_decode` 并不总是恶意的。
- 诸如 `eval(base64_decode(...))`、`gzinflate(base64_decode(...))`、`str_rot13(...)` 等组合属于高风险。
- 在 `wp-content/uploads` 中发现 PHP 文件通常极其可疑。
- 这些脚本并非保证彻底清理的工具;在事件响应后仍建议进行手动检查。
## English
本仓库包含了一套 Bash 脚本,用于在 cPanel/WHM 服务器上检测和清理 hacklink、SEO spam、PHP 后门以及可疑的 WordPress 感染。
这些脚本专为涉及以下内容的感染而设计:
- `hacklinkmarket`
- `wp_core_check`
- `t.me/hacklink_panel`
- 注入到 WordPress 主题 `functions.php` 文件中的 hacklink loader 代码
- 释放到 `wp-content/uploads` 中的 PHP 后门
- 受感染的 `.trash` 目录
- 可疑的 cron job
- 可疑的 `.htaccess` 条目
## 文件说明
### 1. `cpanel-malware-scan.sh`
此脚本仅执行扫描和报告。它不会删除或修改任何文件。
它检查的内容包括:
- `/home` 下的可疑字符串
- 诸如 `hacklink`、`wp_core_check`、`base64_decode`、`eval(` 之类的特征
- `wp-content/uploads` 中的 PHP 文件
- 最近 14 天内修改过的 PHP 文件
- cPanel 用户的 cron job
- 可疑的 `.htaccess` 重定向和 PHP 指令
运行方式:
```
chmod +x cpanel-malware-scan.sh
sudo ./cpanel-malware-scan.sh
```
报告输出:
```
/root/cpanel-malware-scan-YYYY-MM-DD-HHMMSS.txt
```
查看报告:
```
less /root/cpanel-malware-scan-*.txt
```
跟踪实时输出:
```
tail -f /root/cpanel-malware-scan-*.txt
```
注意:此脚本会针对每个特征分别扫描 `/home` 目录,因此在大型服务器上可能会耗费较长时间。
### 2. `clean-hacklink.sh`
此脚本用于移除注入到 WordPress 主题 `functions.php` 文件中的 hacklink loader 代码。
目标文件:
```
/home/*/public_html/wp-content/themes/*/functions.php
```
它移除包含以下内容的代码:
- `/* Telegram: https://t.me/hacklink_panel */`
- `wp_core_check`
- `panel.hacklinkmarket.com`
- 包含 `X-Robots-Tag: noindex, nofollow` 的恶意 noindex/cache 块
此脚本会在修改文件前创建备份。
运行方式:
```
chmod +x clean-hacklink.sh
sudo ./clean-hacklink.sh
```
备份目录示例:
```
/root/kalkhan-clean-backup-YYYY-MM-DD-HHMMSS
```
日志文件示例:
```
/root/kalkhan-clean-log-YYYY-MM-DD-HHMMSS.txt
```
清理后验证:
```
grep -RIn --include="functions.php" "hacklinkmarket\|wp_core_check\|hacklink_panel\|X-Robots-Tag: noindex" /home 2>/dev/null
```
如果仅存的 `X-Robots-Tag: noindex` 条目位于 `wp-includes/functions.php` 中,这通常是正常的 WordPress 核心代码。
### 3. `backdoor-killer.sh`
此脚本将可疑文件隔离,而不是永久删除它们。
它执行以下操作:
- 备份并移除受感染的 `.trash` 目录
- 隔离 `wp-content/uploads` 中的 PHP 文件
- 隔离已知的 hacklink loader 文件
- 搜索已知的 webshell 签名
- 报告可疑的 `.htaccess` 条目
- 检查 cron job
- 执行最终验证扫描
运行方式:
```
chmod +x backdoor-killer.sh
sudo ./backdoor-killer.sh
```
隔离目录示例:
```
/root/backdoor-quarantine-YYYY-MM-DD-HHMMSS
```
日志文件示例:
```
/root/backdoor-killer-YYYY-MM-DD-HHMMSS.log
```
被隔离的文件会在其原始位置被重命名,如下所示:
```
filename.php.killed-YYYY-MM-DD-HHMMSS
```
最终验证:
```
grep -RIn --include="*.php" "hacklinkmarket\|wp_core_check\|hacklink_panel" /home 2>/dev/null | grep -v "^/home/virtfs/"
```
如果输出为空,则说明扫描的文件中没有已知存活的 hacklink loader。
## 建议的工作流程
1. 运行全面扫描:
```
sudo ./cpanel-malware-scan.sh
```
2. 清理注入的主题 loader 代码:
```
sudo ./clean-hacklink.sh
```
3. 隔离 uploads 目录的 PHP 文件和已知后门:
```
sudo ./backdoor-killer.sh
```
4. 运行最终验证:
```
grep -RIn --include="*.php" "hacklinkmarket\|wp_core_check\|hacklink_panel" /home 2>/dev/null | grep -v "^/home/virtfs/"
```
5. 清除 WordPress 缓存:
```
find /home -type d -path "*/wp-content/cache" -exec rm -rf {} \; 2>/dev/null
```
## 清理后的安全检查清单
清理完成后,您应该:
- 更改 WHM/root 密码
- 更改所有 cPanel 用户密码
- 更改 FTP/SFTP 密码
- 更改 WordPress 管理员密码
- 更改数据库密码
- 重新安装 WordPress 核心文件
- 更新所有主题和插件
- 移除未使用的主题和插件
- 禁用 `wp-content/uploads` 中的 PHP 执行
- 手动检查 cron job
- 将此内容添加到 `wp-config.php` 以禁用文件编辑:
```
define('DISALLOW_FILE_EDIT', true);
```
要阻止 uploads 目录中的 PHP 执行,请将此内容添加到 `wp-content/uploads/.htaccess` 中:
```
Require all denied
```
对于较旧的 Apache 版本:
```
deny from all
```
## 重要注意事项
- `/home/virtfs` 的结果通常是 jailed shell bind mount 的副本,因此脚本通常会排除它们。
- 单独的 `base64_decode` 并不总是恶意的。
- 诸如 `eval(base64_decode(...))`、`gzinflate(base64_decode(...))` 和 `str_rot13(...)` 之类的组合属于高风险。
- `wp-content/uploads` 中的 PHP 文件通常是可疑的。
- 这些脚本并非有保证的事件响应解决方案。清理后仍建议进行手动检查。
## 许可证
使用需自担风险。在生产系统上运行前,请先检查这些脚本。
标签:cPanel, cronjob检查, DNS 反向解析, DNS 解析, functions.php清理, .htaccess修复, Linux服务器安全, PHP安全, SEO垃圾邮件, Webshell, WHM, WordPress, 后门移除, 应用安全, 恶意代码分析, 恶意软件清理, 文件完整性监控, 文件扫描, 系统运维, 网站安全, 网络安全, 配置文件, 隐私保护, 黑客链接