projlabs/advanced-linux-rootkit

GitHub: projlabs/advanced-linux-rootkit

一个纯 Python 实现的 Linux 用户态 rootkit 教学项目,演示了 C2 架构、隐蔽通信通道、端口敲击及多种后渗透技术。

Stars: 0 | Forks: 0

# 高级 Linux Rootkit (C2 架构) ## 1. 项目概述 本项目是一个完全使用 Python 编写的隐蔽型 Linux 用户态 rootkit。其目的是深入理解现代恶意软件如何绕过端点和网络安全设备。它实现了命令与控制 (C2) 架构、复杂的网络规避技术以及深度的操作系统级后渗透能力,且无需依赖标准的第三方 payload 框架。 ## 2. 系统架构 该 rootkit 采用客户端-服务器模型,分为两个独立的组件: * **Commander (攻击者节点):** 一个远程控制台,负责发起连接、发送精心构造的恶意 payload,并接收窃取的数据。 * **Victim (被控节点):** 一个在目标 Linux 机器上运行的隐藏 daemon,用于监听特定的网络触发条件并执行操作系统级命令。 ## 3. 高级网络规避 (隐蔽性) 为了规避标准的入侵检测系统 (IDS) 和防火墙,该 rootkit 实现了多种底层规避技术: * **Port-Knocking 初始化:** Victim 程序保持完全休眠状态,对标准端口扫描 (例如 Nmap) 不可见。Commander 必须在严格的时间窗口内,向预定义的关闭端口发送特定的数据包序列 (例如 `4001 -> 8080 -> 5050`),才能触发 Victim 的监听器。 * **自定义隐蔽通道:** 为了规避深度包检测 (DPI) 和基于特征的检测,该 rootkit 利用 Raw Sockets 将 C2 数据嵌入到有效的 IP header 选项中,而不是显式的 payload 中。通过结构化模式 (“意义即选择”) 进行通信,流量保持了严格的“有效性且无可疑”,并无缝绕过传统的 L3/L4 过滤。 * **进程隐藏:** 执行后,Victim 程序会使用 Linux `libc.so.6` 库 (`PR_SET_NAME`) 动态更改自身的进程名称。这会将恶意 Python 脚本伪装成合法的系统进程,使其在 `top` 或 `ps` 等标准系统监控工具中隐藏起来。 ## 4. 后渗透能力 一旦建立了安全的隐蔽通道,Commander 就可以执行以下远程操作: * **底层键盘记录:** 直接读取 Linux 设备文件 (`/dev/input/eventX`) 以实时捕获原始击键 (包括 Shift/Caps Lock 修饰键)。日志被隐蔽存储,并通过自定义的 IP header 通道进行外发。 * **双向文件传输:** 通过自定义的 Raw Socket 隐蔽通道 (IP header 选项) 安全地 PUSH 和 PULL 敏感文件,绕过标准的应用层协议 (FTP, SCP, SMB) 以避免基于端口的检测。 * **目录与文件监控:** 监控目标目录的 `IN_MODIFY` 和 `IN_CREATE` 事件,在任何系统发生更改时向 Commander 发出警报。 * **远程命令执行与权限提升:** 在受害机器上执行任意的 OS 命令。包含针对性的功能,可操纵用户凭证并更改 `/etc/shadow` 文件以建立持久化。 ## 5. 技术栈 * **语言:** Python 3 * **操作系统/环境:** Linux (兼容 POSIX) * **核心库:** `socket` (Raw Sockets), `struct` (Packet Crafting), `ctypes` (用于进程隐藏的 C-library 加载), `select` (I/O 多路复用) * **网络:** 深度包检测、Checksum 计算、L3/L4 协议操纵
标签:Bing搜索, C2架构, DNS 反向解析, Python, Rootkit, Zeek, 恶意软件, 无后门, 端口敲门, 网络信息收集, 隐蔽通道