
セキュリティ研究と検知エンジニアリング向けのカスタマイズ可能なLinux永続化ツール。

PANIX は、セキュリティ研究者、検知エンジニア、ペネトレーションテスター、CTF 愛好家などを対象とした、強力でモジュール式、かつ高度にカスタマイズ可能な Linux 永続化フレームワークです。汎用性を重視して設計された PANIX は、幅広い永続化テクニックの理解と実装に欠かせないツールとして機能します。

PANIX は、Linux 永続化メカニズムのシミュレーションと研究のための多用途な機能スイートを提供します。
| 機能 | 説明 | Root | User |
|---|---|---|---|
| at ジョブ永続化 | システムジョブにエントリを追加して永続化を実装します。 | ✅ | ✅ |
| 認証済み鍵 | SSH アクセスのために authorized_keys ファイルに公開鍵を追加します。 | ✅ | ✅ |
| バックドアユーザー | UID=0(root 権限)のバックドアユーザーを作成します。 | ✅ | ❌ |
| システムユーザーのバックドア化 | システムユーザーをバックドア化します(news/nobody への SSH アクセス)。 | ✅ | ❌ |
| バックドア化された /etc/passwd | /etc/passwd に悪意のあるユーザーエントリを直接追加します。 | ✅ | ❌ |
| バックドア化された /etc/init.d | SysVinit(/etc/init.d)を介して永続化を確立します。 | ✅ | ❌ |
| バックドア化された /etc/rc.local | ランコントロール(/etc/rc.local)を介して永続化を確立します。 | ✅ | ❌ |
| バインドシェル | リモートアクセスのためにプリコンパイル済み/LOLBin バインドシェルを実行します。 | ✅ | ✅ |
| ケーパビリティバックドア | バイナリに特定のケーパビリティを追加して永続化を維持します。 | ✅ | ❌ |
| cron ジョブ永続化 | 再起動後も永続化を確保するために cron ジョブを設定します。 | ✅ | ✅ |
| ユーザー作成 | システムに新しいユーザーアカウントを作成します。 | ✅ | ❌ |
| D-Bus バックドア | root リバースシェルアクセスのための D-Bus サービスを作成します。 | ✅ | ❌ |
| Diamorphine ルートキット | Diamorphine ローダブルカーネルモジュールルートキットをインストールします。 | ✅ | ❌ |
| initramfs 永続化 | 再起動時に UID=0 のバックドアユーザーを initramfs に注入します。 | ✅ | ❌ |
| Git 永続化 | Git フックまたはページャを利用して Git リポジトリ内で永続化します。 | ✅ | ✅ |
| ジェネレータ永続化 | systemd ジェネレータを活用して永続的なサービスを作成します。 | ✅ | ❌ |
| GRUB バックドア | GRUB を操作して起動時にバックドアを実行します。 | ✅ | ❌ |
| 悪意のあるコンテナ | ホストエスケープを目的とした Docker コンテナを展開します。 | ✅ | ✅ |
| 悪意のあるパッケージ | DPKG/RPM パッケージをインストールして永続化を実現します。 | ✅ | ❌ |
| NetworkManager | ネットワークアクション発生時に永続化するディスパッチャスクリプトをインストールします。 | ✅ | ❌ |
| LD_PRELOAD バックドア | LD_PRELOAD を使用して悪意のあるライブラリを注入し、永続化を図ります。 | ✅ | ❌ |
| LKM バックドア | 永続化を維持するためにローダブルカーネルモジュールをロードします。 | ✅ | ❌ |
| MOTD バックドア | メッセージオブザデイ(MOTD)を変更して永続化を確立します。 | ✅ | ❌ |
| パッケージマネージャ | APT/YUM/DNF を操作して、使用時に永続化を確立します。 | ✅ | ❌ |
| PAM 永続化 | 不正なモジュールまたは pam_exec を使用して PAM バックドアをインストールします。 | ✅ | ❌ |
| パスワード変更 | バックドアアカウントを保護するためにユーザーパスワードを変更します。 | ✅ | ❌ |
| Polkit バックドア | 過度に寛容な Polkit 設定バックドアを作成します。 | ✅ | ❌ |
| リバースシェル | リバースシェルを確立します(複数の LOLBin をサポート)。 | ✅ | ✅ |
| シェルプロファイル永続化 | ユーザーログイン時にスクリプトを実行するようシェルプロファイルを変更します。 | ✅ | ✅ |
| SSH 鍵永続化 | SSH 経由の永続的なアクセスを維持するために SSH 鍵を操作します。 | ✅ | ✅ |
| sudoers バックドア | /etc/sudoers ファイルを変更して昇格した特権を付与します。 | ✅ | ❌ |
| SUID バックドア | SUID ビットを設定してバイナリをバックドア化します。 | ✅ | ❌ |
| システムバイナリバックドア | バックドア機能を含むようにシステムバイナリをラップします。 | ✅ | ❌ |
| systemd サービス | 再起動時の永続化を保証する systemd サービスを作成します。 | ✅ | ✅ |
| udev 永続化 | ドライバを利用してハードウェア対話レベルで永続化します。 | ✅ | ❌ |
| Web シェル永続化 | Web インターフェースを介したリモートアクセス用に Web サーバーを展開します。 | ✅ | ✅ |
| XDG 自動起動 | XDG 自動起動ディレクトリを使用してユーザーログイン時に永続化します。 | ✅ | ✅ |

PANIX は、さまざまな Linux ディストリビューションにわたる包括的なサポートを提供します。
| ディストリビューション | サポート | テスト済みバージョン |
|---|---|---|
| Debian | ✅ | Debian 11 & 12 |
| Ubuntu | ✅ | Ubuntu 22.04(Diamorphine は利用不可) |
| RHEL | ✅ | RHEL 9(MOTD および Pre-OS 起動テクニックは利用不可) |
| CentOS | ✅ | CentOS Stream 9 & 7(MOTD および Pre-OS 起動テクニックは利用不可) |
| 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` を生成します。
