このリポジトリには、脆弱なバージョンのOpenSSHを実行しているSSHサーバー上のCVE-2024-6387脆弱性を悪用するためのProof of Concept(POC)が含まれています。
POC(Proof of Concept)とは、セキュリティ脆弱性の悪用を、制御された再現可能な方法で実証するプログラムまたはスクリプトです。その主な目的は、脆弱性が存在し、悪意のあるコードを実行したり、影響を受けるシステム上で不正な操作を行ったりするために悪用され得ることを示すことです。
このリポジトリ内のPOCは、SSHサーバー上のCVE-2024-6387脆弱性を悪用するように設計されています。以下では、コードの各部分がどのように機能するかを簡単に説明します。
CVE-2024-6387.py: このファイルにはPOCのメインコードが含まれています。ここでは、SSHサーバーへの接続を確立し、サーバーのヒープを操作する特定のパケットを送信し、応答時間を測定し、サーバー上のレースコンディションを悪用するための関数が定義されています。
setup_connection(ip, port): リモートサーバーとのTCP/IP接続を確立します。 send_packet(sock, packet_type, data): リモートサーバーにパケットを送信します。 perform_ssh_handshake(sock): 完全なSSHハンドシェイクを実行します。 prepare_heap(sock): 脆弱性を悪用するための特定のパケットでサーバーのヒープを準備します。 time_final_packet(sock, parsing_time): サーバーの最終応答時間を測定します。 attempt_race_condition(sock, parsing_time, glibc_base): SSHサーバー上のレースコンディションを悪用しようとします。 perform_exploit(ip, port): 複数のglibcベースアドレスを試しながら完全なエクスプロイトを実行します。 使用方法
このPOCをCVE-2024-6387脆弱性に対して機能させるには、以下の修正または考慮事項を実施する必要があります。
シェルコードの更新: シェルコードのプレースホルダー shellcode = b"\x90\x90\x90\x90" を、影響を受けるサーバー上で目的のアクションを実行する実際のシェルコードに置き換えてください。
CVE-2024-6387 への適合: prepare_heap 関数と create_public_key_packet 関数で送信されるデータ構造とパケットが、CVE-2024-6387 に記載されている脆弱性を悪用するために特別に設計されていることを確認してください。
このリポジトリは教育および研究目的で提供されています。許可なく脆弱性を悪用することは違法となる可能性があり、許可されていない環境では固く禁止されています。著者は、このコードの不正使用について一切の責任を負いません。