## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-TALHA3117-OPENSSH-4.7P1-CVE-2008-5161-EXPLOIT
# CVE-2008-5161 OpenSSH 4.7p1 監査ヘルパー
Metasploitの`auxiliary/scanner/ssh/ssh_login`モジュールをpwntools経由でPythonから駆動し、レガシーなOpenSSH 4.7p1 (Debian-8ubuntu1) ターゲットのバージョンチェックと認証情報監査を自動化します。
このプロジェクトは研究および許可されたセキュリティテスト専用です。
root@kitploit:~
____ _____ _____ _ _
/ __ \ / ____/ ____| | | |
| | | |____ ___ _ __ | (___| (___ | |__| |
| | | | '_ \ / _ \ '_ \ \___ \\___ \| __ |
| |__| | |_) | __/ | | |____) |___) | | | |
\____/| .__/ \___|_| |_|_____/_____/|_| |_|
| |
|_|
* 作者: Talha Ahmed (CoreBridge)
* CVE コンテキスト: CVE-2008-5161
* スクリプト言語: Python 3
* ツール: pwntools + Metasploit Framework
* * *
## このツールの機能
* 指定されたホストのSSHサービスに接続します(デフォルトポート22)。
* バナーを読み取り、`OpenSSH_4.7p1 Debian-8ubuntu1` が含まれていることを確認します。
* 一致した場合、`msfconsole` を静かに起動し、以下を実行します:
* `auxiliary/scanner/ssh/ssh_login`
* `RHOSTS`、`userpass_file`、`stop_on_success`、`threads`、`verbose` を設定します
* モジュールを起動し、インタラクティブなMetasploitに移行します
* pwntoolsのロガーを介して基本的な進捗とステータスメッセージを表示します。
CVE-2008-5161に関する重要な注意:
* CVE-2008-5161は、SSHにおけるCBCモードの情報漏洩問題です。このスクリプトはCBC平文回復攻撃を実装していません。代わりに、バージョンチェックを実行し、Metasploitの`ssh_login`モジュールを使用してそのターゲットに対する認証情報監査を自動化します。これはスタンドアロンのCVEエクスプロイトではなく、ヘルパー/自動化レイヤーとして扱ってください。
* * *
## 倫理と法的注意
* 自分が所有するシステム、または明示的にテストを許可されたシステムでのみ使用してください。
* コンピュータシステムへの無許可アクセスは違法かつ非倫理的です。
* 作者および貢献者は誤用や損害に対する責任を負いません。
* * *
## 必要条件
* OS: Linux (Kali, Ubuntu など)
* Python: 3.8+
* ツール:
* Metasploit Framework (`msfconsole` が PATH に含まれていること)
* pwntools (`pip install pwntools`)
* ワードリスト:
* 結合された`user:pass`ファイル。スクリプトは次のパスを参照しています: `/usr/share/wordlists/metasploit/piata_ssh_userpass.txt` このパスをシステムで利用可能なワードリストに合わせて調整してください。
* * *
## インストール
1. Metasploit Framework をインストール
* Kaliの場合: `sudo apt install metasploit-framework`
* 確認: `msfconsole -v`
2. Python 依存関係をインストール
* `python3 -m pip install --upgrade pip`
* `python3 -m pip install pwntools`
3. ユーザー:パスワードリストを入手または作成
* 形式例(1行に1つ): `user1:password1`
* ワードリストが別の場所にある場合は、スクリプト内のパスを更新してください。
4. スクリプト(例: `exploit_ssh.py`)をプロジェクトディレクトリに配置します。
注意:
* スクリプトはバナー表示に`random.choice(...)`を使用していますが、`random`をインポートしていません。`NameError: name 'random' is not defined` が表示された場合は、先頭に`import random`を追加してください。
* * *
## 使用方法(管理下のラボ環境で)
* 実行: `python3 exploit_ssh.py`
* プロンプトが表示されたらターゲットIPを入力します。
* バナーが一致した場合、ツールはMetasploitを起動し、`ssh_login`を自動化します。
* 成功すると、セッションを表示し、対話を試みます。
環境例:
* ターゲットはポート22でSSHを公開し、次のようなバナーを提示する必要があります: `SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1`
注:
* 現在のバナーチェックは完全一致で厳格です。バナーに小さなバリエーション(例: `Debian-8ubuntu1.2`)があるシステムは一致しません。チェックを緩和するには、以下の「カスタマイズ」を参照してください。
* * *
## カスタマイズ
* ポート:
* `ExploitSSH(ip, port=22)` を編集してデフォルトポートを変更します。
* ワードリストのパス:
* 次の行をファイルに合わせて更新します: `set userpass_file /path/to/your/userpass.txt`
* スレッドと動作:
* `set threads 12` および `set stop_on_success true` はラボ環境に合わせて調整できます。
* バナーチェック:
* 現在のロジックでは以下を使用:
* `io.recvuntil(b"SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1")`
* そして `"OpenSSH_4.7p1"` を確認
* より広いマッチングを行うには、厳格な `recvuntil(...)` を以下に置き換えてください:
* `banner = io.recvline(timeout=5)` で取得し、`"OpenSSH_4.7p1"` のような部分文字列を検索
* 一致しないターゲットでのハングを防ぐため、タイムアウトの追加を検討してください。
* * *
## トラブルシューティング
* msfconsole が見つからない
* Metasploit がインストールされ、`msfconsole` が PATH に含まれていることを確認してください。
* No module named pwn
* pwntools をインストール: `python3 -m pip install pwntools`
* スクリプトがバナーチェックでハングする
* バナーが異なる場合、厳格な `recvuntil(...)` がブロックする可能性があります。
* `recvline(timeout=5)` に切り替え、部分文字列ロジックで確認してください。
* ワードリストファイルが見つからない
* パスが存在することを確認するか、スクリプトの `userpass_file` 設定を更新してください。
* Metasploit セッションの処理
* スクリプトは `msf.interactive()` を実行するため、以降の行はセッションが終了するまで実行されない可能性があります。完全自動のセッション処理が必要な場合は、インタラクティブモードを削除し、`sessions` をプログラムで解析してください。
* * *
## プロジェクト構造
* 単一のPythonスクリプト:
* シンプルなバナー
* `ExploitSSH` クラス
* SSHバナー検証
* pwntools 経由の Metasploit 自動化
* * *
## ロードマップのアイデア
* タイムアウトと正規表現マッチングによる緩やかなバナー検出
* 追加の OpenSSH バージョンとフィンガープリントのサポート
* モジュールオプションとワードリストパス用の設定ファイル
* 対話型入力の代わりにネイティブなパラメータ解析(`argparse`)
* 非対話型のセッション処理とレポート
* Docker化されたラボ用ハーネス
* * *
## クレジット
* 作者: Talha Ahmed | CoreBridge
* 使用したツール:
* pwntools — https://docs.pwntools.com/
* Metasploit Framework — https://www.metasploit.com/
* CVE 参照:
* CVE-2008-5161 — https://vulners.com/cve/CVE-2008-5161
* * *
## ライセンス
LICENSEファイルをリポジトリに追加してください。一般的な選択肢:
* MIT — 寛容、シンプル、広く使われている
* Apache-2.0 — 特許付与付きの寛容ライセンス
* GPL-3.0 — 強いコピーレフト
* * *
## 免責事項
このプロジェクトは教育および許可されたセキュリティテスト専用です。作者および貢献者は誤用や損害に対する一切の責任を負いません。