rkhunter不能保证系统底层干净,仅校验文件哈希、检查异常进程和配置项,对内核模块脱链、ld_preload劫持、/proc/self/fd隐藏进程等完全无感知;需配合其他工具补位盲区。

rkhunter 能发现部分后门,但不能保证系统底层干净;它只校验文件哈希、检查异常进程和配置项,对内核模块脱链、LD_PRELOAD劫持、/proc/self/fd 下的隐藏进程等完全无感知。
安装 rkhunter 前先确认系统是否支持 Perl 和基础工具
rkhunter 是纯 Perl 脚本,不依赖编译,但要求 perl、md5sum、sha256sum、stat、lsmod 等命令可用。最小化系统(如 Alpine、某些容器镜像)常缺 perl 或 sha256sum,直接运行会报错 Can't locate Digest/SHA.pm 或 command not found: sha256sum。
- Debian/Ubuntu:运行
apt install perl perl-modules-5.32 coreutils - CentOS/RHEL 8+:运行
yum install perl-core util-linux - Alpine:需先
apk add perl perl-digest-sha,否则rkhunter --check会静默失败
rkhunter --propupd 必须在首次扫描前手动执行
该命令生成初始文件属性数据库(默认存于 /var/lib/rkhunter/db/rkhunter.dat),记录 /bin/ls、/usr/bin/ps、/sbin/ifconfig 等关键二进制的路径、大小、权限、MD5/SHA256 哈希值。若跳过此步,后续 --check 将全部报 File not found in database,所有完整性检测失效。
- 务必在系统刚装好、确认未被入侵时就运行一次
rkhunter --propupd - 更新系统或重装关键命令(如升级
coreutils)后,需重新运行--propupd,否则下次扫描会误报“文件被篡改” - 不要用
sudo rkhunter --propupd后再以普通用户跑--check,数据库权限不一致会导致读取失败
读懂 rkhunter 输出里真正要人工跟进的三类信号
Warning 和 Alert 是重点,Warning 表示可疑但不确定,Alert 表示已确认异常;而 Info 和 Suggestion 多数可忽略。
-
Warning: The file '/usr/bin/who' has been changed:立刻比对sha256sum /usr/bin/who与rkhunter.dat中记录值,再查rpm -Vf /usr/bin/who(RPM 系统)或dpkg --verify who(Deb 系统) -
Warning: Hidden ports: TCP: 12345:说明netstat -tuln没列出该端口,但rkhunter从/proc/net/tcp解析出监听状态,用ss -tulpn | grep :12345和lsof -i :12345双向确认进程真实 PID -
Alert: Suspicious file found: /tmp/.X11-unix/.x:检查创建时间stat /tmp/.X11-unix/.x,再看是否为 ELF 文件file /tmp/.X11-unix/.x,若输出含ELF 64-bit LSB pie executable,基本可判定是后门
rkhunter 不检测的盲区必须用其他手段补位
它不碰内存、不解析内核符号表、不读 /etc/ld.so.preload、不扫描 /dev/shm 或 /proc/self/fd,这些正是当前攻击者最常落脚的位置。
- 检查预加载:运行
cat /etc/ld.so.preload和echo $LD_PRELOAD,非空即高危 - 查隐藏模块:
lsmod | wc -l与cat /proc/modules | wc -l对比,数值不等说明有模块被脱链 - 查非常规路径进程:用
find /proc/[0-9]* -name exe -ls 2>/dev/null | grep -v "No such file"找出 /proc 下指向异常路径的exe符号链接 - 内存级验证:
rkhunter的输出本身可能已被 LD_PRELOAD 劫持——此时连它的警告都不可信,必须在可信环境(如 Live CD)下挂载原系统盘做离线扫描
真正危险的不是 rkhunter 报了什么,而是它没报什么:一个干净的 rkhunter --check 输出,只代表它能检查的部分没发现问题,不代表系统没被控制。尤其当管理员自己无法解释某个 Warning 的成因时,那往往就是最该深挖的地方。











