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, 恶意软件, 无后门, 端口敲门, 网络信息收集, 隐蔽通道