
PANIX 是一个功能强大、模块化且高度可定制的 Linux 持久化框架,专为安全研究人员、检测工程师、渗透测试人员、CTF 爱好者等设计。PANIX 以多功能性为设计核心,强调功能性,是理解和实施各种持久化技术的重要工具。

PANIX 提供了一套多功能特性,用于模拟和研究 Linux 持久化机制。
| 功能 | 描述 | Root | 用户 |
|---|---|---|---|
| At Job Persistence | 通过向系统作业添加条目来实现持久化。 | ✅ | ✅ |
| Authorized Keys | 将公钥添加到 authorized_keys 文件以实现 SSH 访问。 | ✅ | ✅ |
| Backdoor User | 创建一个具有 UID=0(root 权限)的后门用户。 | ✅ | ❌ |
| Backdoor System User | 将系统用户作为后门(允许以 news/nobody 身份进行 SSH 访问)。 | ✅ | ❌ |
| Backdoored /etc/passwd | 直接将恶意用户条目添加到 /etc/passwd。 | ✅ | ❌ |
| Backdoored /etc/init.d | 通过 SysVinit(/etc/init.d)建立持久化。 | ✅ | ❌ |
| Backdoored /etc/rc.local | 通过运行控制(/etc/rc.local)建立持久化。 | ✅ | ❌ |
| Bind Shell | 运行预编译的/LOLBin 绑定 shell 以进行远程访问。 | ✅ | ✅ |
| Capabilities Backdoor | 向二进制文件添加特定 capabilities 以维持持久化。 | ✅ | ❌ |
| Cron Job Persistence | 设置 cron 作业以确保跨重启持久化。 | ✅ | ✅ |
| Create User | 在系统上创建新用户账户。 | ✅ | ❌ |
| D-Bus Backdoor | 创建 D-Bus 服务以实现 root 反向 shell 访问。 | ✅ | ❌ |
| Diamorphine Rootkit | 安装 Diamorphine 可加载内核模块 Rootkit。 | ✅ | ❌ |
| Initramfs Persistence | 在重启时将 UID=0 后门用户注入 initramfs。 | ✅ | ❌ |
| Git Persistence | 利用 Git 钩子或分页器在 Git 仓库中实现持久化。 | ✅ | ✅ |
| Generator Persistence | 利用 systemd 生成器创建持久化服务。 | ✅ | ❌ |
| GRUB Backdoor | 操纵 GRUB 以在启动时执行后门。 | ✅ | ❌ |
| Malicious Container | 部署专为容器逃逸设计的 Docker 容器。 | ✅ | ✅ |
| Malicious Package | 安装 DPKG/RPM 包以实现持久化。 | ✅ | ❌ |
| NetworkManager | 安装 dispatcher 脚本,在触发网络操作时实现持久化。 | ✅ | ❌ |
| LD_PRELOAD Backdoor | 使用 LD_PRELOAD 注入恶意库以实现持久化。 | ✅ | ❌ |
| LKM Backdoor | 加载可加载内核模块以维持持久化。 | ✅ | ❌ |
| MOTD Backdoor | 修改每日消息(MOTD)以建立持久化。 | ✅ | ❌ |
| Package Manager | 操控 APT/YUM/DNF,在使用时建立持久化。 | ✅ | ❌ |
| PAM Persistence | 使用恶意模块或 pam_exec 安装 PAM 后门。 | ✅ | ❌ |
| Password Change | 更改用户密码以保护后门账户。 | ✅ | ❌ |
| Polkit Backdoor | 创建权限过高的 Polkit 配置后门。 | ✅ | ❌ |
| Reverse Shell | 建立反向 shell(支持多种 LOLBin)。 | ✅ | ✅ |
| Shell Profile Persistence | 修改 shell 配置文件,以便在用户登录时执行脚本。 | ✅ | ✅ |
| SSH Key Persistence | 操控 SSH 密钥以维持通过 SSH 的持久访问。 | ✅ | ✅ |
| Sudoers Backdoor | 修改 /etc/sudoers 文件以授予提升的权限。 | ✅ | ❌ |
| SUID Backdoor | 通过设置 SUID 位对二进制文件植入后门。 | ✅ | ❌ |
| System Binary Backdoor | 包装系统二进制文件以包含后门功能。 | ✅ | ❌ |
| Systemd Service | 创建 systemd 服务以确保重启后持久化。 | ✅ | ✅ |
| Udev Persistence | 利用驱动程序在硬件交互层面实现持久化。 | ✅ | ❌ |
| Web Shell Persistence | 部署 Web 服务器,通过 Web 界面进行远程访问。 | ✅ | ✅ |
| XDG Autostart | 利用 XDG 自启动目录在用户登录时实现持久化。 | ✅ | ✅ |

PANIX 在各种 Linux 发行版上提供全面支持。
| 发行版 | 支持 | 测试版本 |
|---|---|---|
| Debian | ✅ | Debian 11 & 12 |
| Ubuntu | ✅ | Ubuntu 22.04(Diamorphine 不可用) |
| RHEL | ✅ | RHEL 9(MOTD 和预操作系统启动技术不可用) |
| CentOS | ✅ | CentOS Stream 9 & 7(MOTD 和预操作系统启动技术不可用) |
| Fedora | ✅ | 尚未完全测试 |
| Arch Linux | ✅ | 尚未完全测试 |
| OpenSUSE | ✅ | 尚未完全测试 |
自定义或过期的 Linux 发行版可能具有不同的配置或缺少特定功能,导致机制在未经测试的版本上失效。如果默认命令失败,请使用大多数功能中提供的 --custom 标志来调整适合你环境的路径和命令。如果这仍不能解决问题,请查看并修改脚本以满足你的需求。
我们始终欢迎通过拉取请求或 issue 提交新功能、更新或想法!

PANIX 仓库的设计注重模块化、可维护性和易于扩展。每种持久化机制都包含安装和还原脚本,简化了管理和移除。```plaintext PANIX/ ├── main.sh # Core logic and argument parsing. ├── modules/ # Persistence mechanism scripts. │ ├── common.sh # Shared functions. │ ├── setup_*.sh # Setup scripts. │ └── revert/ # Revert scripts. ├── build.sh # Builds the distributable script. ├── panix.sh # Final distributable script. └── README.md # Documentation.
## 主要优势
- **成对设置与还原**:每个 `setup_*.sh` 都有对应的 `revert_*.sh`,确保持久化机制易于移除。
- **模块化设计**:可以轻松修改现有模块或添加新模块,而不会影响核心脚本。
- **简单扩展**:要添加新功能:
1. 在 `modules/` 中创建新的 `setup_*.sh`。
2. 在 `modules/revert/` 中添加对应的 `revert_*.sh`。
3. 更新 `main.sh` 以包含新脚本。
4. 更新 `common.sh` 以在帮助菜单中包含该模块。
4. 运行 `build.sh` 以生成更新后的 `panix.sh`。

# 快速入门
让 PANIX 启动并运行非常简单,只需从 [发布页面](https://github.com/Aegrah/PANIX/releases/tag/panix-v2.1.0) 下载脚本并执行即可:```
curl -sL https://github.com/Aegrah/PANIX/releases/download/panix-v2.1.0/panix.sh | bash
或者下载并手动执行:```
curl -sL https://github.com/Aegrah/PANIX/releases/download/panix-v2.1.0/panix.sh -o panix.sh wget https://github.com/Aegrah/PANIX/releases/download/panix-v2.1.0/panix.sh -O panix.sh
chmod +x panix.sh ./panix.sh
执行脚本时,将根据当前用户拥有的权限显示 `root` 或 `user` 帮助菜单。```
panix@panix-demo:~$ sudo ./panix.sh
__
|__) /\ |\ | | \_/
| /~~\ | \| | / \
@RFGroenewoud
Root User Options: