
これは、Advenced Cyber Attacksコースのために私が作成したHeratbleedバグ(CVE-2014-0160)のドキュメントです。
このリポジトリは、Heartbleed脆弱性(CVE-2014-0160)を実証するためのカスタムJavaベースのエクスプロイトであるHeartbleed.javaを特徴としています。脆弱なサーバ(IP:192.168.1.132)上でApache(ポート443)とPostfix(ポート465)を実行している環境から機密データを抽出します。このエクスプロイトは、不正なTLSハートビートリクエストを送信し、パッチが適用されていないOpenSSLバージョン(1.0.1から1.0.1f)の脆弱性を利用して、リクエストごとに最大64KBのメモリをリークさせます。サポートするBashスクリプト(apache_memload.shとpostfix_memload.sh)は、サービスのメモリにユーザー認証情報、メールサーバのパスワード、SSL証明書などの機密データを大量に書き込み、Javaエクスプロイトがそれを抽出します。
このプロジェクトは、詳細なWord文書に記載された包括的なセキュリティデモの一部であり、ApacheとPostfixサービスの両方に対する攻撃手法、結果、および影響を概説しています。この作業では、メモリにデータをロードするスクリプトの作成、Windowsクライアント(IP:192.168.1.99)からのエクスプロイトの実行、リークされたデータの分析を行い、脆弱性の影響を強調しています。
Heartbleed.javaはこのデモの中核であり、合理化された攻撃プロセスを実装しています:
sendHeartbeatsメソッドを介して不正なハートビートリクエストを送信します。このメソッドがエクスプロイトの中心です。主要なコンポーネントであるsendHeartbeatsメソッドは、細工されたハートビートメッセージをサーバに繰り返し送信することで攻撃を調整し、Heartbleed脆弱性を悪用してメモリ内容を抽出します。このメソッドの役割は、付属のWord文書にその実装のスクリーンショットとともに詳しく説明されています。
この作業の全範囲は以下の通りです:
apache_memload.shを開発し、50回のcurlリクエストでApacheのメモリをフラッディングし、PHPスクリプト(memload.php)を介してSHA-512パスワードハッシュなどの機密データを埋め込みました。同様に、postfix_memload.shは50のSMTPペイロードをPostfixに送信し、メール認証情報とパスワードを埋め込みました。Heartbleed.javaを実行し、Apache(ポート443)とPostfix(ポート465)をターゲットにし、ユーザー認証情報、パスワード、証明書などのデータをリークさせることに成功しました。sendHeartbeatsメソッドの説明、および将来の緩和戦略を含む結論が含まれています。https://localhost/phpmyadmin/memload.phpにあるmemload.php。sudo apt install openjdk-11-jdk。リポジトリのクローン:
git clone https://github.com/Shayhha/HeartbleedAttack
エクスプロイトのコンパイル:
javac -d bin Heartbleed.java
~/Desktop/apache_memload.sh
~/Desktop/postfix_memload.sh
Heartbleed.javaを編集してSERVER_PORT = APACHE_PORTに設定し、再コンパイルしてから:javac -d bin Heartbleed.java
java -cp bin Heartbleed
Heartbleed.javaを編集してSERVER_PORT = POSTFIX_PORTに設定し、再コンパイルしてから:javac -d bin Heartbleed.java
java -cp bin Heartbleed
このエクスプロイトは教育目的のみです。明示的な許可なくシステムに害を及ぼすために使用しないでください。法規および倫理基準への準拠を確実にしてください。
MITライセンス – 詳細についてはLICENSEを参照してください。