Linux后门检测实战:rkhunter与chkrootkit排查隐藏账户与计划任务 核心要点图解,rkhunter和chkrootkit是Linux后门检测的核心工具,需定期更新特征库并扫描。;隐藏账户常通过修改/etc/passwd和/etc/shadow实现,应检查UID为0及空密码账户。;恶意计划任务常位于/etc/cron.*和/var/spool/cron/,需逐一审查。;结合手动检查与工具扫描,才能有效发现并清除后门。
Linux后门检测实战:rkhunter与chkrootkit排查隐藏账户与计划任务 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • rkhunter和chkrootkit是Linux后门检测的核心工具,需定期更新特征库并扫描。
  • 隐藏账户常通过修改/etc/passwd和/etc/shadow实现,应检查UID为0及空密码账户。
  • 恶意计划任务常位于/etc/cron.*和/var/spool/cron/,需逐一审查。
  • 结合手动检查与工具扫描,才能有效发现并清除后门。

痛点引入:服务器异常,如何快速定位后门?

作为运维或站长,你是否遇到过服务器CPU莫名飙升、网络流量异常、或者收到安全告警?这很可能是后门在作祟。Linux后门检测是应急响应的关键一步,而隐藏账户和计划任务是攻击者最常用的持久化手段。本文将手把手教你使用rkhunter和chkrootkit两款经典工具,结合手动排查技巧,快速发现并清除后门,恢复服务器安全。

工具准备:安装与更新rkhunter和chkrootkit

首先,确保系统已安装必要工具。以CentOS为例,使用yum安装:

yum install -y rkhunter chkrootkit

Debian/Ubuntu系统使用apt:

apt-get install -y rkhunter chkrootkit

安装后,更新rkhunter的特征库:

rkhunter --update

并初始化基线(首次运行):

rkhunter --propupd

注意:chkrootkit无需更新,但建议定期从官方获取最新版本。

使用rkhunter进行深度扫描

rkhunter功能全面,可检测rootkit、后门、可疑文件等。执行检查:

rkhunter --check --sk

参数说明:--check执行检查,--sk跳过按键确认。扫描完成后,查看日志/var/log/rkhunter.log,重点关注“Warning”条目。常见警告包括文件属性变更、隐藏进程等。例如,若发现/usr/bin/passwd的哈希值变化,需确认是否为合法更新。建议将rkhunter加入定时任务,每周自动扫描。

使用chkrootkit快速检测

chkrootkit专注于rootkit检测,速度快,适合快速排查。运行:

chkrootkit

若需详细输出,可使用-x参数。检查结果中若出现“INFECTED”则高度可疑。例如:

Checking `lkm'... INFECTED

表示可能加载了恶意内核模块。此时需进一步使用lsmod查看模块列表,并与已知模块对比。注意:chkrootkit可能误报,需结合其他信息判断。

手动排查隐藏账户与计划任务

1. 检查隐藏账户

攻击者常添加UID为0的账户或空密码账户。执行:

awk -F: '( == 0) {print }' /etc/passwd

输出应仅有root。若出现其他账户,立即禁用。检查空密码账户:

awk -F: '( == "") {print }' /etc/shadow

此外,对比/etc/passwd和/etc/shadow的账户列表,确保一致。使用diff命令或脚本比对。

2. 检查计划任务

恶意计划任务常位于以下位置:

  • /etc/crontab
  • /etc/cron.d/
  • /etc/cron.hourly/等目录
  • /var/spool/cron/(用户cron文件)
  • /etc/systemd/system/*.timer

逐一检查这些文件,关注陌生命令或脚本。例如:

cat /etc/crontab

查看是否有可疑的curl或wget下载执行。对于用户cron,使用crontab -l -u username列出。同时,检查/etc/cron.d/下所有文件。

检查清单与对比表格

为方便操作,整理关键检查点如下:

检查项命令/位置正常情况
UID为0的账户awk -F: '( == 0) {print }' /etc/passwd仅root
空密码账户awk -F: '( == "") {print }' /etc/shadow无输出
计划任务文件/etc/crontab, /etc/cron.d/已知合法任务
用户croncrontab -l -u username已知合法任务
systemd timersystemctl list-timers --all已知合法timer

防护建议与行动指南

检测后,立即清除可疑账户和计划任务,并修改所有用户密码。建议部署AegisX安全平台,其主机入侵检测功能可实时监控账户变更和计划任务异常,自动阻断可疑行为,减轻运维负担。同时,定期运行rkhunter和chkrootkit,保持系统更新,最小化权限,以降低后门风险。

常见问题(FAQ)

rkhunter和chkrootkit有什么区别?哪个更好用?

rkhunter功能更全面,支持文件完整性检查、rootkit特征扫描和可疑文件检测;chkrootkit专注于rootkit检测,速度快但功能单一。建议两者结合使用,先运行chkrootkit快速扫描,再用rkhunter深度检查。

如何检查Linux系统中是否存在隐藏账户?

检查/etc/passwd中UID为0的账户(除root外),查看/etc/shadow中密码字段为空的账户,并对比/etc/passwd和/etc/shadow的账户列表。还可使用awk命令筛选异常账户,如`awk -F: '( == 0) {print }' /etc/passwd`。

计划任务后门一般藏在哪些位置?

常见位置包括:/etc/crontab、/etc/cron.d/、/etc/cron.hourly/、/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly/、/var/spool/cron/(用户cron文件)以及/var/spool/cron/crontabs/。此外,systemd的timer单元(/etc/systemd/system/*.timer)也可能被滥用。

rkhunter扫描结果中出现警告,一定是被入侵了吗?

不一定。rkhunter可能因系统更新、合法软件变更或误报产生警告。需要结合警告详情手动验证,例如检查文件属性、比对哈希值、查看进程和网络连接。建议将警告信息记录并逐一排查,避免盲目删除。

除了rkhunter和chkrootkit,还有哪些后门检测手段?

可结合文件完整性监控(如AIDE)、日志分析(如auditd)、网络连接检查(netstat/ss)、进程排查(ps、lsof)以及手动检查SUID文件、LD_PRELOAD劫持等。对于高级后门,可能需要使用内存取证工具。