
一早起来发现网站跳转到了博彩页面,首页被篡改了。别慌。第一步先让网站下线——不是关服务器,是让用户暂时看不到被篡改的页面。
紧急处理:把网站切到维护模式
最快的方式是临时替换Nginx配置:
# 先把站点切到维护模式
sudo mv /etc/nginx/sites-enabled/yoursite.conf /tmp/
sudo tee /etc/nginx/sites-enabled/maintenance.conf << 'EOF'
server {
listen 80;
server_name yourdomain.com;
root /var/www/maintenance;
index index.html;
location / { try_files $uri /index.html; }
}
EOF
sudo mkdir -p /var/www/maintenance
echo '<h1>维护中</h1>' | sudo tee /var/www/maintenance/index.html
sudo nginx -s reload
WordPress用户更简单,touch一个文件就行:
touch /var/www/html/.maintenance
为什么要马上下线?2026年Google对挂马页面的惩罚力度比以前更狠,几个小时内就可能把你的域名标红。恢复SEO信任的成本是清理病毒的好几倍。先把入口关掉,再看问题。
排查溯源:从哪进来的?
看三个地方的日志:
# 1. Nginx/Apache访问日志,找异常POST和陌生IP
sudo tail -500 /var/log/nginx/access.log | grep -E "POST|wp-admin|xmlrpc|\.php" | tail -50
# 2. SSH登录日志
sudo last -20
sudo grep "Failed password" /var/log/auth.log | tail -30
# 3. 最近被改过的文件
sudo find /var/www/html -type f -mtime -3 -ls | head -30
2026年最常见的入侵路径就那几条:弱密码SSH爆破、WordPress插件漏洞、xmlrpc.php被利用、Redis/MongoDB裸奔。这几个占我们经手案例的80%以上。顺手检查一下:
# Redis是否裸奔
redis-cli -h 127.0.0.1 ping 2>/dev/null && echo "Redis没设密码!"
# 开放端口
sudo ss -tlnp | grep -v '127.0.0.1'
确认木马:到底哪些文件是坏的?
两条命令快速扫特征码:
# 搜一句话木马常见函数
sudo grep -rn "eval(" /var/www/html --include="*.php" | grep -v "vendor\|cache"
sudo grep -rn "base64_decode" /var/www/html --include="*.php" | grep -v "vendor\|cache"
sudo grep -rn "system\|exec\|shell_exec\|passthru" /var/www/html --include="*.php" | grep -v "vendor\|cache"
# 查最近创建的php文件
sudo find /var/www/html -name "*.php" -mtime -7 -type f -exec ls -la {} \;
# 查异常计划任务(挖矿病毒常用)
crontab -l 2>/dev/null
sudo cat /var/spool/cron/crontabs/* 2>/dev/null
sudo ls -la /etc/cron.* 2>/dev/null
WordPress用户额外查:
# wp-config.php是否被注入
grep -n "eval\|base64\|gzinflate\|strrev" /var/www/html/wp-config.php
# 隐藏管理员
wp user list --role=administrator --format=table
# 插件目录有没有不认识的文件夹
ls -la /var/www/html/wp-content/plugins/
清理恢复:删文件之前先堵入口
不堵入口就删文件,攻击者还会回来。顺序是:
1. 改所有密码。 SSH、数据库、WordPress后台、FTP,全改。
2. 有备份就用备份恢复,最快最干净。
# 恢复站点文件+数据库
tar -xzf /backup/wp_backup_20260625.tar.gz -C /var/www/html/
mysql -u root -p wordpress < /backup/db_backup_20260625.sql
3. 没备份的话,只删确认是木马的文件。重点清理这几处:
# uploads目录不该有php文件
sudo find /var/www/html/wp-content/uploads -name "*.php" -type f -delete
# wp-includes对比干净包
diff -rq /var/www/html/wp-includes/ /tmp/wordpress-clean/wp-includes/ 2>/dev/null | grep "Only in /var/www/html"
4. 全部更新到最新版。
wp core update
wp plugin update --all
wp theme update --all
️ 加固防护:五道防线
按效果排序,2026年推荐这五条:
第一:关掉xmlrpc.php。 90%的站点用不到它,但它是爆破的第一目标。
# Nginx
location = /xmlrpc.php { deny all; }
# 或在functions.php里
add_filter('xmlrpc_enabled', '__return_false');
第二:限制wp-admin访问IP。
location /wp-admin {
allow 你的办公IP;
deny all;
}
第三:装WAF。 ModSecurity + OWASP规则集,免费够用:
sudo apt install libapache2-mod-security2
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
# 改成 SecRuleEngine On
第四:文件完整性监控。
# 每天跑一次
find /var/www/html -type f -exec md5sum {} \; > /root/file_check.txt
# 第二天diff对比
第五:SSH只允许密钥登录,关掉密码认证。
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
常用工具
- Wordfence(WordPress插件):免费版就能扫木马、比对文件、设防火墙
- Lynis(Linux安全审计):
sudo lynis audit system,会给详细加固建议 - ClamAV:
sudo apt install clamav && sudo freshclam && sudo clamscan -r /var/www/html - rkhunter:
sudo rkhunter --check查rootkit
✅ 恢复上线前最后确认
四件事做完再开站:
- Google Search Console里检查安全问题报告,提交审核
- 访问所有页面,确认没有残留跳转和弹窗
curl -sI -L https://你的域名 | grep -E "HTTP|Location"看返回头- 确认备份正常,标记为"干净版本"
被黑这件事迟早会碰到。关键不是不出事,是出事以后能在半小时内恢复,而不是三天都搞不定。把上面的命令记下来或者存成脚本,比临时搜要快得多。
标签: 网站安全 WordPress安全 问题解答 应急响应 2026
还木有评论哦,快来抢沙发吧~