HCRM博客

CentOS系统下查找网站挂马文件的技巧

CentOS 服务器遭遇入侵?手把手教你精准揪出隐藏木马

上周深夜,急促的警报声响起,一位运维同行负责的电商平台CentOS服务器突发异常,CPU持续飙高,大量陌生IP疯狂连接,初步检查,一个伪装成sshd的恶意进程正悄悄将用户数据打包外传——典型的挂马后门行为,如果你也怀疑服务器被植入木马,请冷静,跟随这些经过实战验证的步骤深度排查。

第一步:文件系统完整性校验(快速发现异常变更)

CentOS系统下查找网站挂马文件的技巧-图1
  • 核心命令:rpm -Va

    • 执行:rpm -Va | grep -E '^.M|^.....U|^......G' (聚焦权限、用户/组、MD5校验异常的变更)
    • 关键解读:
      • S.5....T c /etc/passwd/etc/passwd 的MD5值、文件大小或修改时间异常(严重警告!)
      • ..5....T c /usr/bin/sshd:关键系统二进制文件如sshd被篡改(高危!)
      • .......T c /etc/crontab:系统计划任务文件时间戳异常(可能被添加恶意任务)
    • 行动: 立即隔离并备份异常文件,与官方纯净包对比 (rpm -qf --qf="%{name}\n" /path/to/file 找到所属包,rpm -qlv packagename | grep filename 查看官方属性)。
  • Web目录重点扫描:

    • find /var/www/html -type f \( -name "*.php" -o -name "*.js" -o -name "*.ht*" \) -exec grep -l -E '(@?eval|base64_decode|shell_exec|passthru|system|phpinfo|wget|curl|fsockopen|popen)\s*\(' {} \;
    • 目标: 查找包含高危函数(eval, base64解码、命令执行等)的文件,尤其关注最近修改的文件 (find ... -mtime -3)。

第二步:进程与网络深度分析(揪出活跃威胁)

  • 动态进程排查:

    • top -c -o %CPU / htop:按CPU或内存排序,识别资源占用异常的陌生进程名或路径。
    • ps auxfww:查看详细进程树,留意隐藏的父进程(如异常httpd子进程)。
    • ls -alh /proc/<PID>/exe:检查可疑进程的真实执行文件路径(木马常伪装或指向/tmp/dev/shm)。
  • 网络连接透视:

    • netstat -tulnpss -tulnp:列出所有监听端口及关联进程,警惕非标准端口(如6666, 2333)上的/bin/shperlpython等。
    • lsof -i -P -n:查看所有网络连接及打开文件的进程。
    • iftop / nethogs:实时监控带宽占用,定位异常外连IP(特别是连接境外未知地址)。

第三步:系统日志与审计(追溯入侵痕迹)

CentOS系统下查找网站挂马文件的技巧-图2
  • 关键日志源:

    • /var/log/secure:SSH登录记录,查找:grep 'Failed password'(爆破记录)、grep 'Accepted password'(成功登录,核对IP和用户)、grep -i invalid(无效用户尝试)。
    • /var/log/messages / /var/log/syslog:核心系统日志,关注CRON异常任务、服务启停、内核警告。
    • /var/log/audit/audit.log (若启用auditd):详细记录文件访问、命令执行、系统调用,是溯源利器(需提前配置规则)。
    • Web日志 (/var/log/httpd/access_log, /var/log/nginx/access.log):搜索异常URL(如包含/wp-admin/console的非WordPress站点)、SQL注入特征码、大量404扫描、单IP高频请求。
  • 登录历史检查:

    • last / lastb:查看成功/失败登录历史,注意异常时间或来源IP。
    • grep ':0' /etc/securetty:检查是否允许root直接登录控制台(应禁用)。

第四步:自动化扫描与Rootkit检测(应对高级隐匿)

  • Rootkit猎人:

    • chkrootkit:安装后运行 chkrootkit,检查常见rootkit、后门特征。注意: 需定期更新,存在误报可能。
    • rkhunter
      yum install rkhunter
      rkhunter --propupd # 更新特征数据库
      rkhunter -c --sk # 执行检查 (--sk 自动按回车)

      仔细阅读报告,重点关注Warning项(如文件属性变更、隐藏文件、可疑字符串)。

  • 恶意文件扫描:

    CentOS系统下查找网站挂马文件的技巧-图3
    • ClamAV:安装 (yum install clamav clamav-update),更新病毒库 (freshclam),扫描关键目录 (clamscan -r -i /var/www /bin /usr/bin /etc)。

第五步:权限与定时任务审查(阻断持久化)

  • SUID/SGID文件:

    • find / -perm -4000 -type f -exec ls -ld {} \; 2>/dev/null (SUID)
    • find / -perm -2000 -type f -exec ls -ld {} \; 2>/dev/null (SGID)
    • 检查列表,移除非关键程序(如/bin/cat/usr/bin/find)的SUID/SGID位 (chmod u-s /path/file)。
  • 定时任务陷阱:

    • crontab -l:检查当前用户任务。
    • ls -la /etc/cron*:系统级任务目录(/etc/cron.hourly, /etc/cron.daily, /etc/cron.d/)。
    • grep -r 'curl\|wget\|bash\|sh\|perl\|python\|php' /etc/cron* /var/spool/cron:查找可能下载执行恶意脚本的任务。

第六步:加固与持续防护(亡羊补牢,犹未为晚)

  1. 隔离断网: 确认入侵后立即断开服务器网络。
  2. 备份取证:关键! 完整备份系统盘、日志、异常文件(用于后续分析/法律程序)。
  3. 彻底清除:
    • 基于排查结果,删除确认的恶意文件、进程、定时任务、用户账号。
    • 修复篡改的系统文件(从官方源重装对应rpm包)。
    • 重置所有用户密码(尤其是root、数据库、应用管理员)。
  4. 全面加固:
    • 最小权限原则: Web应用使用非特权用户运行,严格限制目录权限。
    • SSH强化: 禁用root登录 (PermitRootLogin no),改用密钥认证,更改端口。
    • 防火墙严控:firewalld/iptables 仅开放必需端口,限制来源IP。
    • 及时更新:yum update --security 定期修补漏洞。
    • 文件监控: 部署 auditdaide 监控关键目录变化。
    • 入侵检测: 考虑 OSSECSuricata 等方案。

面对服务器安全威胁,侥幸心理是最大风险,一次成功的入侵往往源于未修复的漏洞、弱密码或松懈的配置,定期执行安全扫描、严格审计日志、保持系统更新,这些看似繁琐的工作构筑了防御的基石,安全并非一劳永逸,而是运维人员与潜在攻击者之间持续的对抗,每一次成功的防御,都建立在对系统深度理解和严谨操作之上。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/35668.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~