上一篇
服务器被挂码了怎么办
- 云服务器
- 2025-07-18
- 6
立即隔离服务器,断网防止扩散;使用杀毒软件全盘扫描清除木码;检查系统漏洞并修复;核查日志定位入侵路径;恢复干净备份或重装系统;修改所有相关密码
紧急处理措施
-
立即隔离服务器
- 断开服务器网络连接(如物理拔网线或关闭网卡),防止攻破者进一步操控或数据泄露。
- 如果无法断网,可临时关闭防火墙端口或禁用Web服务(如Nginx/Apache)。
-
停止相关服务
- 通过命令行终止Web服务进程(如 systemctl stop nginx 或 killall httpd)。
- 暂停FTP、远程桌面等可能被利用的服务。
-
快速定位恶意文件
- 常见挂码位置:
- 网站根目录(/var/www/html)、上传目录(/uploads)、备份文件夹。
- 图片、JS、CSS文件被植入恶意代码(如<script>标签)。
- 隐藏的后们文件(如.php5、.inc、.htaccess改动)。
- 排查工具:
- 使用D盾、河马扫描器等Webshell查杀工具。
- 通过 find /var/www -type f -exec grep -l "eval" {} ; 搜索可疑代码。
- 常见挂码位置:
清理恶意代码
-
备份当前状态

- 在清理前,对网站文件和数据库进行完整备份(如tar -czvf backup.tar.gz /var/www),防止误操作导致数据丢失。
-
删除恶意文件
- 根据扫描结果,手动删除可疑文件(如非常规命名的文件、最近修改的文件)。
- 注意:避免直接删除核心文件(如index.php),需对比源码确认是否被改动。
-
修复文件权限
- 将网站目录权限重置为安全值(chown www-data:www-data -R /var/www,chmod 644 )。
- 禁用无关用户对敏感目录的写入权限(如/var/www/uploads)。
-
检查数据库

- 搜索数据库中的恶意代码(如SELECT FROM wp_posts WHERE content LIKE '%eval%')。
- 清理可疑数据,并修改数据库管理员密码(ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';)。
排查入侵原因
-
分析日志
- Web日志(如/var/log/nginx/access.log):查找异常IP(如大量扫描请求、特定路径访问)。
- 系统日志(如/var/log/auth.log):检查是否有暴力免费或特权提权记录。
-
检查系统漏洞
- 确认服务器组件(如PHP、MySQL、Redis)是否存在未修复的漏洞。
- 使用工具检测弱口令(如hydra爆破SSH/FTP)。
-
常见入载入口
| 漏洞类型 | 示例 |
|——————–|————————————————————————–|
| 网站程序漏洞 | WordPress插件未更新、Dedecms默认模板载入 |
| 服务器配置缺陷 | 允许PHP执行上传目录(如/uploads)、未禁用危险函数(如eval) |
| 弱口令 | SSH/FTP使用默认密码(如admin/123456) |
| 其他攻破手段 | 心脏出血漏洞(OpenSSL)、DNS解析截持、CSRF/XSS横向渗入 |
恢复与加固
-
恢复干净备份

- 如果确认备份无污染,覆盖当前网站文件(如rm -rf /var/www/ && tar -xzf backup.tar.gz)。
-
更新软件与补丁
- 升级Web服务、数据库、CMS程序到最新版本。
- 安装缺失的安全补丁(如apt-get update && apt-get upgrade)。
-
重置所有密码
- 包括服务器登录密码、数据库密码、FTP账号、控制面板密码。
- 启用双因素认证(如Google Authenticator)。
-
配置安全策略
- Web层面:禁用PHP危险函数(如exec)、限制上传文件类型。
- 系统层面:关闭不必要的端口(如iptables -A INPUT -p tcp --dport 22 -j DROP)。
- 日志监控:部署Fail2Ban拦截暴力免费,使用ELK栈分析日志。
预防措施
| 防护手段 | 实施方案 |
|---|---|
| 定期备份与监控 | 每日自动备份网站文件和数据库,开启日志实时监控(如用Ossec)。 |
| 安装Web应用防火墙(WAF) | 使用Cloudflare、Naxsi或宝塔防火墙,拦截SQL载入、XSS等攻破。 |
| 隐藏敏感信息 | 禁用错误页面显示详细信息(如PHP display_errors=Off),移除测试文件。 |
| HTTPS加密 | 申请免费证书(Let’s Encrypt),强制全站HTTPS(配置HSTS)。 |
| 安全审计与渗入测试 | 定期用Nessus、Acunetix扫描漏洞,模拟高手攻破测试防御强度。 |
相关问题与解答
问题1:如何判断服务器是否被挂码?
解答:
- 异常现象:网站被改动(如首页跳转到盲猜/擦边网站)、搜索引擎提示“危险网站”。
- 技术检测:
- 扫描文件内容中是否包含<script>、eval、base64_decode等关键词。
- 检查进程列表是否有可疑脚本(如crontab -l中的定时任务)。
- 通过curl访问网站,观察是否返回非预期内容。
问题2:如何防止服务器再次被挂码?
解答:
- 最小化攻破面:
- 禁用不必要的服务(如FTP、Telnet),卸载冗余软件包。
- 限制数据库权限(如禁止Web进程对系统的DROP权限)。
- 主动防御:
- 启用文件防改动(如Linux Auditd监控/var/www)。
- 部署入侵检测系统(IDS),如Snort或Wazuh。
- 开发规范:
- 避免使用开源程序的默认配置,定期更新第三方组件。
- 对上传功能做严格校验(如限制文件后缀