
核心要点(TL;DR)
- 入侵后先隔离服务器,再按进程、网络、账号、任务、文件顺序排查。
- 使用rkhunter和chkrootkit检测rootkit,用find命令查找近期修改文件。
- 清理挂马需删除恶意代码并修复漏洞,同时检查所有网站目录。
- 加固宝塔面板:修改默认端口、强密码、禁用危险函数、定期备份。
痛点引入:宝塔面板被入侵,网站挂马怎么办?
作为运维或站长,发现宝塔面板被入侵、网站被挂马时,往往感到焦虑和无助。入侵者可能植入后门、窃取数据,甚至导致业务瘫痪。本文提供一套实战排查与清理流程,帮助你快速定位后门、清除挂马,并给出加固建议,恢复服务器安全。
一、紧急隔离与初步检查
发现入侵后,第一时间隔离服务器,避免横向移动。通过SSH登录服务器(如果无法登录,使用救援模式),执行以下命令:
# 查看当前登录用户
who
# 查看最近登录记录
last -n 20
# 查看失败登录尝试
grep "Failed password" /var/log/secure检查异常网络连接:
netstat -antp | grep ESTABLISHED
ss -tunp关注陌生IP和端口,特别是与外部C2服务器通信的连接。
二、排查后门与恶意进程
1. 检查异常进程
ps aux --sort=-%cpu | head -20
ps aux --sort=-%mem | head -20
查看CPU或内存占用异常高的进程,记录PID,使用ls -l /proc/PID/exe查看可执行文件路径。
2. 检查计划任务
crontab -l
ls -la /etc/cron.*
cat /etc/crontab
删除可疑的定时任务,特别是下载执行脚本或反弹shell的命令。
3. 检查用户账号与SSH密钥
cat /etc/passwd
cat /etc/shadow
ls -la ~/.ssh/
cat ~/.ssh/authorized_keys
删除未知用户和可疑的SSH公钥。
4. 检查系统文件完整性
使用rkhunter和chkrootkit扫描rootkit:
rkhunter --check
chkrootkit查找近期被修改的文件:
find / -type f -mtime -7 -name "*.php" -o -name "*.jsp" -o -name "*.sh" 2>/dev/null
重点关注网站目录和系统关键路径。
三、清理网站挂马
1. 定位恶意代码
使用grep搜索常见webshell特征:
grep -r --include=*.php -l "eval(\|base64_decode(\|assert(\|system(\|passthru(" /www/wwwroot/
检查被篡改的首页文件,查看是否包含或指向恶意域名。
2. 清除恶意文件与代码
备份网站后,删除可疑文件,恢复被篡改的文件(从备份或官方源)。使用sed或vim删除恶意代码片段。
3. 检查数据库注入
导出数据库,搜索恶意脚本:
mysqldump -u root -p dbname | grep -i ""
清理被注入的内容。
四、安全加固与防护建议
清理后,立即加固宝塔面板:
- 修改面板默认端口和入口,设置强密码并开启双因素认证。
- 在PHP设置中禁用危险函数:
exec, system, passthru, shell_exec, popen, proc_open等。 - 安装防火墙,限制访问IP,仅允许必要端口。
- 定期更新面板、插件和网站程序,修复已知漏洞。
- 使用AegisX进行实时入侵检测和文件监控,及时发现异常。
五、检查清单与总结
完成以下检查项,确保系统干净:
| 检查项 | 命令/方法 | 完成 |
|---|---|---|
| 异常进程 | ps aux, top | □ |
| 网络连接 | netstat -antp | □ |
| 计划任务 | crontab -l, /etc/cron* | □ |
| 用户账号 | /etc/passwd, ~/.ssh | □ |
| 文件完整性 | rkhunter, find -mtime | □ |
| 网站挂马 | grep搜索, 手动检查 | □ |
| 数据库注入 | mysqldump + grep | □ |
行动建议:立即按照上述步骤排查清理,并启用AegisX的实时防护功能,定期备份数据,确保业务安全。
常见问题(FAQ)
宝塔面板被入侵后,如何快速判断是否还有后门?
首先检查异常进程和网络连接,使用netstat和ps命令查看可疑外联。然后检查计划任务、用户账号和SSH密钥。使用rkhunter和chkrootkit扫描rootkit。最后使用find命令查找近期修改的文件,重点关注网站目录和系统关键路径。
网站被挂马了,如何彻底清理?
先备份网站数据,然后使用grep命令搜索恶意代码特征(如eval、base64_decode等)。删除可疑文件,修复被篡改的文件。检查数据库是否被注入恶意脚本。最后更新所有插件和主题,修复已知漏洞。建议使用专业查杀工具辅助。
宝塔面板有哪些安全加固措施?
修改面板默认端口和入口,设置强密码并开启双因素认证。禁用危险PHP函数(如exec、system)。定期更新面板和软件。配置防火墙,限制访问IP。启用日志监控,定期备份数据。
如何防止宝塔面板再次被入侵?
保持系统和软件更新,使用最小权限原则运行服务。安装安全插件如AegisX进行实时防护。定期进行安全扫描和漏洞修复。监控日志异常,设置告警。教育用户不点击可疑链接,不下载不明文件。