
核心要点(TL;DR)
- 后门检测需覆盖文件、进程、网络、内核四个层面,缺一不可。
- Webshell常隐藏于Web目录,用find+grep可快速定位可疑脚本。
- 内核Rootkit通过LKM劫持系统调用,需比对模块签名与系统调用表。
- 定期基线核查与最小权限原则是预防后门的关键。
痛点引入:后门潜伏,你的服务器真的干净吗?
很多运维人员认为系统打了补丁、装了防火墙就高枕无忧,但攻击者往往通过一个不起眼的Webshell或内核Rootkit长期潜伏,窃取数据、横向移动。后门检测不是可选项,而是应急响应的核心能力。本文从实战角度出发,带你理解从Webshell到内核级Rootkit的技术原理,并给出可落地的排查命令与检查清单,让你在关键时刻能快速定位并清除后门。
Webshell:最常见的入口后门
原理与危害
Webshell是一段运行在Web服务器上的恶意脚本,攻击者通过上传漏洞或文件包含将其植入,之后便可远程执行命令、读写文件、连接数据库。它通常伪装成正常图片或日志文件,难以通过文件类型识别。
排查步骤
1. 查找近期被修改的脚本文件:find /var/www -type f \( -name '*.php' -o -name '*.jsp' -o -name '*.asp' \) -mtime -7
2. 搜索危险函数调用:grep -rE 'eval\(|base64_decode\(|assert\(|system\(|passthru\(' /var/www --include='*.php'
3. 检查上传目录是否存在可执行脚本:find /var/www/uploads -type f -exec file {} \; | grep -i script
4. 使用专业工具如AegisX的Webshell检测引擎进行深度扫描,可识别混淆加密的变种。
清除建议
确认恶意文件后,先备份证据再删除;检查同目录下是否有其他隐藏文件;修复上传漏洞,限制上传目录的执行权限。
内核级Rootkit:最隐蔽的后门
原理与危害
Rootkit通过加载恶意内核模块(LKM)或修改系统调用表,劫持关键函数,隐藏进程、文件、网络连接,甚至赋予攻击者root权限。它驻留在内核空间,用户态工具难以发现,危害极大。
排查步骤
1. 列出已加载模块并与基线对比:lsmod
2. 检查模块签名信息:modinfo | grep -i sig
3. 核对系统调用表地址是否被篡改:cat /proc/kallsyms | grep sys_call_table
4. 使用chkrootkit和rkhunter扫描:chkrootkit -qrkhunter --check --sk
5. 检查内核模块目录是否有异常文件:find /lib/modules/$(uname -r) -type f -name '*.ko' -mtime -30
清除建议
若发现未知模块,立即卸载:rmmod ,并删除对应.ko文件;检查/etc/modules等自动加载配置;建议重启进入救援模式彻底清除。
其他常见后门位置与排查清单
除了Webshell和Rootkit,后门还可能隐藏在以下位置:
- 计划任务:
crontab -l、ls -la /etc/cron.* - 启动项:
systemctl list-unit-files --type=service、检查/etc/rc.local - SSH后门:检查~/.ssh/authorized_keys是否有多余公钥
- 账号后门:
awk -F: '==0 {print }' /etc/passwd查找UID为0的异常用户 - 网络连接:
netstat -antp或ss -antp查看可疑外联
建议将以上检查项制成清单,定期执行。
防护建议与工具推荐
后门检测重在预防和持续监控。建议:保持系统和应用更新;最小化服务与端口;对上传目录禁用执行权限;部署文件完整性监控(如AIDE);使用AegisX的主机入侵检测能力,实时监控文件变化、进程行为和网络连接,及时发现异常。同时,定期进行安全基线核查,确保没有未知账号、计划任务和内核模块。
行动建议
立即对你的服务器执行一次全面后门扫描:从Web目录开始,结合find和grep快速排查Webshell;然后检查内核模块和系统调用表;最后审计账号、计划任务和网络连接。将本文的检查清单保存为脚本,每周自动运行。只有持续监控,才能让后门无处藏身。
常见问题(FAQ)
如何快速检测服务器上是否存在Webshell?
首先使用find命令查找近期修改的脚本文件,如find /var/www -name '*.php' -mtime -7;然后结合grep搜索eval、base64_decode等危险函数;最后使用专业工具如AegisX的Webshell检测引擎进行深度扫描,可有效识别混淆加密的恶意脚本。
Rootkit和后门有什么区别?
后门是广义的未授权访问通道,Rootkit是后门的一种高级形态,专门用于隐藏自身和其他恶意程序。Rootkit通常通过内核模块劫持系统调用,使攻击者获得持久化控制并逃避检测,检测难度远高于普通后门。
Linux系统如何检查内核模块是否被植入Rootkit?
使用lsmod列出已加载模块,与正常基线对比;检查模块签名,用modinfo查看签名信息;使用cat /proc/modules核对;还可使用chkrootkit、rkhunter等工具扫描。若发现未知模块,立即卸载并深入调查。
发现后门后应该怎么处理?
立即隔离受影响主机,备份证据;终止恶意进程,删除后门文件;检查并清除持久化机制如cron、systemd服务;修复漏洞并重置所有凭据;最后使用安全工具全面扫描,确认无残留后恢复业务。
日常如何预防后门植入?
保持系统与软件更新,最小化开放端口与服务;使用强密码与多因素认证;部署文件完整性监控与入侵检测系统;定期审计日志与用户权限;对上传目录严格限制执行权限,从源头降低风险。