Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
SSH-Terrapin-Prefix-Truncation-Weakness-CVE-2023-48795-Checker — CVE-2023-48795(SSH Terrapin prefix truncation)用の軽量Pythonスキャナー。パッシブバナーグラブとKEXINIT解析を実行して、脆弱なcipher/MACの組み合わせと欠落したstrict-KEX軽減策を検出します。 | Kitploit
ツール/GitHubGitHub/mr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker
偵察脆弱性スキャナーエクスプロイト情報収集ネットワークセキュリティペネトレーションテスト
GitHubmr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker

SSH-Terrapin-Prefix-Truncation-Weakness-CVE-2023-48795-Checker

CVE-2023-48795(SSH Terrapin prefix truncation)用の軽量Pythonスキャナー。パッシブバナーグラブとKEXINIT解析を実行して、脆弱なcipher/MACの組み合わせと欠落したstrict-KEX軽減策を検出します。

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
12ヶ月前未レビュー

terrapin_check.py

軽量なPythonスキャナです。CVE-2023-48795 — SSH Terrapin プレフィックス切り詰め脆弱性のための。

TerrapinはSSHにおけるプロトコルレベルの脆弱性で、アクティブなMitM攻撃者がネゴシエーションされた拡張情報を切り詰め、接続のセキュリティを低下させることができます。特に致命的なのはext-info(サーバ署名アルゴリズムに使用)とping(OpenSSHのno-auth拡張で使用)を無効化することです。


📋 目次

  • 脆弱性について
  • 動作の仕組み
  • 要件
  • インストール
  • 使用方法
  • 出力
  • 脆弱な条件
  • 修復方法
  • 免責事項

脆弱性について

フィールド詳細
CVECVE-2023-48795
CVSS5.9(中)
タイプSSHプロトコル — プレフィックス切り詰め / 整合性バイパス
公開日2023年12月
影響を受けるOpenSSH < 9.6、PuTTY < 0.80、libssh < 0.10.6、その他多数
参照terrapin-attack.com

この脆弱性は、特定のSSH暗号/MACの組み合わせ(具体的にはchacha20-poly1305およびEncrypt-then-MACを伴うCBCモード暗号)において、アクティブなMitM攻撃者がハンドシェイク中にSSHシーケンス番号を注入・削除し、検出されずにネゴシエーションされた拡張データを切り詰めることが可能になるために存在します。

修正として、strict KEX拡張(kex-strict-*[email protected])が導入され、クライアントとサーバの両方がこれをアドバタイズすることで耐性を持ちます。


動作の仕組み

このスクリプトはパッシブなバナー取得とKEXINIT解析のみを行います。完全なSSHハンドシェイク、認証、悪用は行いません。

  1. 対象のSSHポートにTCP接続を開く
  2. SSH識別バナーを交換する
  3. サーバのSSH_MSG_KEXINITパケットを受信し解析する
  4. アドバタイズされたアルゴリズム名リストを調べ、脆弱な組み合わせを検出する
  5. strict-KEX緩和拡張の有無を確認する
  6. 接続を閉じる

チェックは鍵交換フェーズ内で完全に行われるため、非侵入的であり、通常のTCP接続試行以上の痕跡は残りません。


要件

  • Python 3.8+
  • サードパーティの依存関係はありません — stdlibのみ(socket、struct、argparse、concurrent.futures)

インストール

root@kitploit:~
git clone https://github.com/Mr-Whiskerss/terrapin_check
cd terrapin_check
chmod +x terrapin_check.py

使用方法

単一ホスト

root@kitploit:~
python3 terrapin_check.py <host> [port]
root@kitploit:~
python3 terrapin_check.py 192.168.1.10
python3 terrapin_check.py 192.168.1.10 2222

ファイルからの一括スキャン

1行に1つのターゲット — host または host:port 形式を受け付けます。

root@kitploit:~
python3 terrapin_check.py -f targets.txt
python3 terrapin_check.py -f targets.txt --threads 20 --timeout 3

サマリーのみの出力(大規模スキャンに便利)

root@kitploit:~
python3 terrapin_check.py -f targets.txt --summary

全オプション

root@kitploit:~
usage: terrapin_check.py [-h] [-f FILE] [-p PORT] [--threads THREADS] [--timeout TIMEOUT] [--summary] [host] [port]

positional arguments:
  host                  ターゲットホスト
  port                  SSHポート(デフォルト: 22)

options:
  -h, --help            このヘルプメッセージを表示して終了
  -f, --file FILE       ホストリストを含むファイル(1行に host または host:port)
  -p, --port-flag PORT  -f 使用時のデフォルトポート(デフォルト: 22)
  --threads THREADS     一括スキャンの同時スレッド数(デフォルト: 10)
  --timeout TIMEOUT     ソケットタイムアウト(秒)(デフォルト: 5.0)
  --summary             ホストごとに1行のサマリーのみを表示

終了コード

コード意味
0脆弱なホストが見つかりませんでした
11つ以上の脆弱なホストが検出されました

これにより、スクリプトをパイプラインや自動化ワークフローでクリーンに使用できます。


出力

単一ホスト(詳細)

root@kitploit:~
───────────────────────────────────────────────────────────
  Target : 192.168.1.10:22
  Banner : SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
  Status : VULNERABLE

  Strict-KEX : No
  ✗ ChaCha20-Poly1305 advertised → prefix-truncation possible
  ✗ CBC+ETM combination advertised
      CBC ciphers : aes128-cbc, aes256-cbc
      ETM MACs    : [email protected], [email protected]

  KEX algorithms:
    curve25519-sha256
    ecdh-sha2-nistp256
    diffie-hellman-group14-sha256
───────────────────────────────────────────────────────────

一括スキャン(サマリー)

root@kitploit:~
  [VULN]  192.168.1.10:22                  VULNERABLE (CVE-2023-48795)
  [SAFE]  192.168.1.20:22                  Not vulnerable
  [MIT]   192.168.1.30:22                  Algorithms present but strict-KEX mitigates
  [?]     192.168.1.99:22                  ERROR: Connection refused

脆弱な条件

スクリプトは、以下のいずれかが真であり、かつstrict-KEX拡張がアドバタイズされていない場合、ホストをVULNERABLEとしてフラグ付けします。

1. ChaCha20-Poly1305

サーバが暗号化のどちらかの方向で[email protected]をアドバタイズしている。

2. CBC暗号 + ETM MACの組み合わせ

サーバが任意のCBCモード暗号および任意のETM MACを一緒にアドバタイズしている。

確認されるCBC暗号: aes128-cbc、aes192-cbc、aes256-cbc、3des-cbc、blowfish-cbc、cast128-cbc、idea-cbc、arcfour、arcfour128、arcfour256、[email protected]

確認されるETM MAC: [email protected]、[email protected]、[email protected]、[email protected]、およびそのバリアント

緩和策 — Strict KEX

サーバがKEXアルゴリズムリストで[email protected]をアドバタイズしている場合、提供されている暗号やMACに関係なく接続は保護されます。この場合、スクリプトはVULNERABLEではなくMITIGATEDを報告します。


修復方法

アクション詳細
OpenSSHのアップグレードクライアントとサーバの両方を**≥ 9.6**にアップグレード。Strict KEXはデフォルトで有効。
他の実装の修正PuTTY ≥ 0.80、libssh ≥ 0.10.6、Paramiko ≥ 3.4.0、AsyncSSH ≥ 2.14.2
root@kitploit:~
# /etc/ssh/sshd_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
MACs hmac-sha2-256,hmac-sha2-512

アルゴリズムを削除すると暗号の柔軟性が低下します。アップグレードが常に推奨される修復方法です。


免責事項

このツールは許可されたセキュリティ評価のみを目的としています。自分が所有するシステム、または明示的な書面によるテスト許可を得たシステムに対してのみ使用してください。著者は誤用に対する責任を負いません。


Mr-Whiskerssペネトレーションテストツールキットの一部。

ツールをダウンロード
脆弱なアルゴリズムの削除すぐにアップグレードできない場合は、sshd_configからchacha20-poly1305、CBC暗号、ETM MACを削除: