跳到主要内容
项目档案插件 / 扩展

Diamorphine Linux内核Rootkit详解:支持2.6-6.x内核的进程隐藏、文件隐身与权限提升工具安装使用指南

Diamorphine 是一个支持多版本Linux内核的LKM rootkit,通过信号控制实现进程隐藏、文件隐身和用户提权。本页提供项目定位、安装编译步骤、信号使用方式及卸载方法,适用于安全研究与红队演练。

2,460CStar 于 2026年4月15日2026年9月19日 更新

AI 总结

Diamorphine 是一个针对 Linux 内核的 LKM rootkit,支持 2.6.x 至 6.x 版本及 x86/x86_64/ARM64 架构,通过信号控制实现进程与文件隐藏、用户权限提升,主要用于内核级隐蔽操作研究。

中文项目介绍

Diamorphine 是一个加载即隐身的 Linux 内核模块(LKM)rootkit,旨在提供深层的系统隐蔽能力和权限提升功能。 它通过 Unix 信号机制实现核心操作:发送信号 31 可隐藏或取消隐藏任意进程;信号 63 用于切换模块自身的可见性;信号 64 能使指定用户获得 root 权限。此外,任何以 MAGIC_PREFIX 开头的文件或目录都会自动隐藏。 该项目适用于安全研究人员分析内核隐藏技术,或红队演练中测试隐蔽持久化访问。其技术特征包括对多版本内核(2.6.x-6.x)和多架构(x86/x86_64/ARM64)的支持,以及依赖内核模块加载的安装方式。所有功能均基于内核层挂钩实现,无需修改内核源码。

详细信息与使用说明

1. 项目定位与用途

Diamorphine 是一个 LKM(可加载内核模块)形式的 rootkit,专门设计用于 Linux 内核环境。其核心定位是提供内核级的隐蔽操作能力,包括进程、文件的隐藏以及用户权限的提升。该项目主要面向安全研究领域,用于分析攻击者如何在系统中隐藏恶意活动,或用于红队演练中模拟高级持久化威胁。它并非通用安全工具,而是专注于演示内核层的隐藏技术,帮助理解操作系统底层安全机制。

2. 解决的问题

Diamorphine 解决了在入侵系统中实现深度隐蔽和权限持久化的问题。具体而言,它允许攻击者或研究人员:1)隐藏特定进程,使其不显示在进程列表中;2)隐藏文件或目录,避免被常规文件系统浏览发现;3)将普通用户提升为 root,绕过用户权限限制;4)使 rootkit 自身模块在加载后不可见,增加检测难度。这些功能共同实现了内核层的“隐身”与“权限维持”,模拟了真实高级威胁的行为模式。

3. 适用场景

该项目的适用场景主要集中在安全研究与红队演练。对于安全研究人员,Diamorphine 可用于分析 rootkit 的工作原理、测试内核安全监控工具的检测能力,或作为教学示例展示内核挂钩技术。对于红队成员,它可在授权演练中用于模拟攻击者获取持久化、隐蔽访问的战术,评估防御体系对内核级威胁的响应。需要注意的是,该项目仅限在合法授权的测试环境中使用,任何未经授权的使用均违反法律与伦理准则。

4. 安装方式

安装 Diamorphine 需要 root 权限并遵循以下步骤:首先验证内核版本是否在支持范围(2.6.x/3.x/4.x/5.x/6.x)内,使用命令 `uname -r`;然后克隆仓库 `git clone https://github.com/m0nad/Diamorphine` 并进入目录 `cd Diamorphine`;接着执行 `make` 编译生成 diamorphine.ko 模块;最后以 root 身份加载模块 `insmod diamorphine.ko`。安装过程依赖标准内核头文件与构建工具,如 gcc、make 及对应内核版本的开发包。仓库中未明确给出依赖列表,但通常需要内核头文件匹配当前运行内核。

5. 使用方式

模块加载后自动进入隐藏状态,无法通过常规命令(如 lsmod)查看。其功能通过向任意进程发送特定 Unix 信号触发:发送信号 31(kill -31 <pid>)可隐藏或取消隐藏目标进程;发送信号 63(kill -63 <pid>)切换模块自身的可见性;发送信号 64(kill -64 <pid>)使目标用户获得 root 权限。此外,创建以 MAGIC_PREFIX(定义于 diamorphine.h)开头的文件或目录将自动隐藏。卸载模块前必须先发送 `kill -63 0` 使模块可见,然后执行 `rmmod diamorphine`。所有操作均需 root 权限。

6. 补充说明与实现特点

Diamorphine 的实现基于 LKM 技术,通过挂钩内核关键函数(如进程列表遍历、文件系统查询)实现隐藏。其特点包括:默认加载即隐身,增加检测难度;使用信号作为控制通道,避免创建额外可见实体;支持多架构(x86/x86_64/ARM64)与多内核版本,体现较好的兼容性设计。文件隐藏依赖于 MAGIC_PREFIX 前缀匹配,具体值在源码中定义。项目参考了多篇经典内核 hacking 文献,如 THC 的 LKM HACKING 和 Phrack 论文。需要注意的是,此类工具可能触发安全软件告警,且内核版本不匹配时可能导致系统不稳定。

思维导图

当前仓库信息不足,或结构不够稳定,暂时没有生成可靠的思维导图。

常见问题

如何卸载 Diamorphine 模块?

由于模块默认隐藏,需先发送 kill -63 0 使其可见,然后以 root 身份执行 rmmod diamorphine 完成卸载。

如何隐藏或取消隐藏特定进程?

向目标进程的 PID 发送信号 31(例如 kill -31 <pid>),每次发送会切换该进程的隐藏状态。

如何使某个用户获得 root 权限?

向任意 PID 发送信号 64(kill -64 <pid>),该用户将获得 root 权限。具体生效用户与发送信号时的上下文相关。

哪些文件或目录会自动隐藏?

文件名或目录名以 MAGIC_PREFIX 开头时会自动隐藏,该前缀常量定义在 diamorphine.h 头文件中,仓库未明确给出具体值。

Diamorphine 支持哪些内核版本和硬件架构?

根据 README,它支持 Linux 内核 2.6.x、3.x、4.x、5.x、6.x 版本,以及 x86、x86_64 和 ARM64 架构。实际兼容性可能受具体内核配置影响。