rkhunter 的定位
rkhunter 对常见 rootkit 特征、SUID 异常、文件属性与启动项做快速体检,适合作为现场第一轮筛查:覆盖面广、执行快,结论再人工复核。它给出的是线索清单,不是最终判定。
怎么读它的结果
输出以 Warning 与 INFECTED 两类标记为主,误报率不低:重点是逐条看清指向的具体文件与原因,而不是数告警条数。详细原因只在日志文件里,屏幕摘要看不到。
| 典型用法 | --check 全量体检 |
|---|---|
| 离线非交互 | --skip-keypress |
| 关注内容 | Warning 行与 INFECTED 标记 |
| 基线数据库 | /var/lib/rkhunter 下的属性库 |
| 结果日志 | /var/log/rkhunter.log |
| 更新基线 | --propupd 更新属性库(慎用) |
典型使用场景
- 现场第一轮快速筛查
- 确认关键系统文件是否被改动
- 检查启动项与网络监听配置
- 与 chkrootkit 交叉验证结果
- 清理后复扫确认无残留
非交互跑一轮并只看告警
非交互跑一轮并只看告警
rkhunter --check --skip-keypress --report-warnings-only
# 结果同时写入 /var/log/rkhunter.log,取证时一并打包
cat /var/log/rkhunter.log | grep -i warning | head -n 40
tail -n 40 /var/log/rkhunter.log
rkhunter --check --sk --nocolors --enable all输出逐列读法
| 标记 | 含义 | 处理方式 |
|---|---|---|
| Warning | 需要人工确认的项 | 指向具体文件与原因,逐条解释 |
| INFECTED | 判定为感染的项 | 优先处置并提取样本 |
| skipped | 未执行的检查项 | 说明因条件不足被跳过,不等于通过 |
| File properties | 文件属性变化 | 与基线比对,变化需说明原因 |
感染后不要急着执行 rkhunter --propupd:它会把被篡改的现状写成新基线,等于洗掉证据,后续检查也不再告警。
若怀疑系统工具已被替换,应从可信介质带入静态编译的扫描工具运行,否则工具自身的输出也不可信。
常见告警的解读方向
- 系统文件属性变化:多为补丁升级导致,需与包版本核对
- SUID 文件异常:与软件包归属和安装时间对比
- 启动项与监听项:与业务清单逐条对照
- 隐藏文件与目录:出现在系统目录中必须给出解释
复核要点
- 逐条查看警告指向的文件与原因
- 核对文件来源与包管理器记录
- 用哈希与干净介质中的同名文件比对
- 把每条结论与时间点写入事件时间线