0

0

Linux rootkit 排查思路总结

冰川箭仙

冰川箭仙

发布时间:2026-02-26 16:37:33

|

706人浏览过

|

来源于php中文网

原创

linux rootkit 排查思路总结

Linux Rootkit 排查不能只靠一个工具或一步操作,得从用户态到内核态分层推进,兼顾自动扫描和人工验证。核心思路是:找异常、验一致性、溯加载路径、查持久化痕迹。

用户态隐藏行为排查

多数Rootkit先在用户空间下手,手法直接但易留痕:

  • 系统命令被替换:用 ls -la /bin/ps /usr/bin/top /bin/ls 查看文件大小、时间戳、inode 是否异常;对比 sha256sum 与可信镜像或 AIDE 数据库中的哈希值
  • 环境变量劫持:检查 /etc/profile/etc/profile.d/*.sh/etc/bashrc 中是否追加了别名(alias)或覆盖了命令路径(如 alias ps='/tmp/.x/ps'
  • LD_PRELOAD 或 /etc/ld.so.preload:运行 echo $LD_PRELOAD;查看 cat /etc/ld.so.preload 是否非空;再用 ldd $(which ps) 确认实际加载的共享库链
  • /proc 下的挂载隐藏:执行 cat /proc/$$/mountinfo | grep '/proc/[0-9]\+',重点看是否有 bind 类型挂载指向 /tmp/dev/shm 或隐藏目录;再用 ls -lai /proc/[0-9]* 找大小为 0 或明显偏小的 PID 目录

内核态隐蔽痕迹检测

内核级Rootkit更难发现,需借助内存分析或系统底层比对:

Emergent Drums
Emergent Drums

使用Emergent Drums生成独特的鼓样本,全部免版税。

下载
  • 模块隐藏:运行 lsmod 后,再对比 ls /sys/module/ | wc -l,若后者显著更多,说明有模块被从链表中摘除;同时检查 dmesg | grep -i 'module\|insmod' 是否有可疑加载记录
  • 系统调用表劫持:使用 cat /proc/kallsyms | grep sys_call_table 获取地址,再通过自定义模块或 volatilitylinux_check_syscall 插件,验证关键函数(如 sys_getdents64sys_openat)指针是否指向异常地址
  • VFS 层隐藏:若 ps auxls /proc 显示不一致,或 find /proc -maxdepth 1 -name '[0-9]*' | wc -l 远少于 ps -eo pid= | wc -l,很可能存在 VFS 层脱链或目录项过滤

自动化工具交叉验证

单一工具可能漏报或误报,建议组合使用并关注输出细节:

  • rkhunter:首次运行后必须执行 sudo rkhunter --propupd 初始化文件属性库;后续用 sudo rkhunter -c --enable all --disable none 全面扫描,重点看 /var/log/rkhunter.log 中 “Warning” 和 “Suspicious” 条目
  • chkrootkit:轻量快速,适合初筛;注意它不依赖特征库更新,但对新型劫持(如 LD_PRELOAD + 自定义 so)检出率有限;若输出含 “INFECTED” 或 “TESTING”,需人工跟进对应进程或文件
  • AIDE:部署越早越好;在系统干净时运行 sudo aide --init,生成基线;之后定期 sudo aide --check,重点关注 /bin/usr/bin/sbin/usr/sbin 下命令是否被修改

辅助线索与上下文印证

很多Rootkit会伴随其他入侵迹象,结合排查能提高命中率:

  • 异常高CPU或内存占用:用 top -b -n1 | head -20 快速抓取,再用 ps -eo pid,ppid,comm,%cpu,%mem --sort=-%cpu | head -10 定位可疑进程;注意名称伪装成 kthreaddcryptosshd(但非 root 用户启动)等
  • SSH 后门痕迹:检查 /root/.ssh/authorized_keys 和各用户家目录下的同名文件;用 grep -r "ssh-rsa\|ssh-ed25519" /home/*/\.ssh/ 2>/dev/null 批量扫描;比对 /var/log/secure 中成功登录 IP 与业务白名单是否一致
  • 定时任务与启动项:检查 crontab -lsudo crontab -l/etc/crontab/etc/cron.d/*;查看 systemctl list-unit-files --state=enabled 中非系统服务项;检查 /etc/init.d/ 下可疑脚本

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

248

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

906

2024.03.01

sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

404

2023.09.04

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

377

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2097

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

356

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

259

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

329

2023.10.09

Golang 实际项目案例:从需求到上线
Golang 实际项目案例:从需求到上线

《Golang 实际项目案例:从需求到上线》以真实业务场景为主线,完整覆盖需求分析、架构设计、模块拆分、编码实现、性能优化与部署上线全过程,强调工程规范与实践决策,帮助开发者打通从技术实现到系统交付的关键路径,提升独立完成 Go 项目的综合能力。

1

2026.02.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.8万人学习

Git 教程
Git 教程

共21课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号