自有VPS IP发起异常Apache请求是否中毒?该如何排查处理?
结论
此类异常请求高度指向VPS已被入侵并植入恶意扫描脚本,属于服务器被攻陷后被用作批量Web漏洞探测节点的典型场景。你自行配置的CRON请求带有固定的Wget标识和固定请求路径,而异常请求包含随机爬虫UA、路由器后台默认账号登录尝试,完全符合恶意扫描程序的行为特征。
排查步骤
- 排查异常进程:执行
ps aux命令排查非本人部署的陌生进程,重点关注CPU/内存占用异常、运行用户为www等低权限用户的未知进程,同时执行top命令观察是否存在定期唤醒执行任务的隐藏进程 - 检查定时任务:除自己添加的请求任务外,执行
crontab -l查看当前用户定时任务,同时遍历系统级CRON目录/etc/cron.d/、/etc/cron.hourly/、/var/spool/cron/下的所有文件,排查是否被植入未知定时任务用于拉起恶意脚本 - 检查网络连接:执行
ss -tulnp或netstat -antp查看当前向外发起的连接,尤其是指向80端口的对外连接,定位对应进程PID - 审计登录日志:查看
/var/log/auth.log(Debian/Ubuntu系)或/var/log/secure(CentOS/RHEL系)的SSH登录日志,排查是否有陌生IP成功登录记录、弱口令爆破成功记录 - 排查Web目录:如果VPS部署了Web服务,检查Web根目录下是否有被上传的webshell文件,重点关注修改时间和正常运维时间不匹配的php、py等可执行脚本
处理步骤
- 立即终止所有异常进程,删除排查发现的恶意脚本、非法CRON任务
- 修复入侵入口:若为弱口令导致的登录入侵,立即修改所有用户登录密码为高强度密码,关闭root用户SSH直接登录权限,改用密钥登录;若为Web服务漏洞导致的webshell上传,及时修复对应Web程序漏洞,删除所有未知Web可执行文件
- 配置出站限制:如果VPS无需主动对外发起80/443端口请求,可通过iptables或ufw防火墙配置出站规则,仅允许业务需要的目标地址连接,拦截所有未知对外访问
- 必要时重装系统:如果排查发现恶意程序已做权限维持、植入rootkit隐藏,最稳妥的方案是备份正常业务数据后重装操作系统,重新部署业务,避免残留恶意程序
内容的提问来源于stack exchange,提问作者Nalik
相关产品推荐
相关产品推荐

