heartbleed-vulnerability-exploitation
説明
Heartbleed脆弱性(CVE-2014-0160)のハンズオン調査。
概要
このラボは、OpenSSLのTLSハートビート拡張機能の実装における重大な欠陥であるHeartbleed脆弱性のハンズオン調査を記録したものです。目的は、プロトコルレベルで脆弱性がどのように機能するかを理解し、制御された環境でそれを悪用して影響を観察することであり、SOC分析(脆弱性評価と影響分析)に直接関連するスキルを実践することでした。
目的
- Heartbleedの根本原因(OpenSSLのハートビート拡張機能における不適切な境界チェック)を理解する。
- 偵察およびスキャンツールを使用して、脆弱なOpenSSLサービスを特定する。
- 制御されたラボ環境で脆弱性を悪用し、データ漏洩を観察する。
- SOC/アナリストの観点から修復戦略を文書化する。
環境とツール
- ターゲット: 古いOpenSSLバージョンを実行している脆弱なWebサーバー(ポート443上のnginx 1.15.7)、隔離されたラボVM。
- 攻撃者/アナリストマシン: Linuxベースの分析環境。
- 使用ツール:
nmap - サービス列挙と脆弱性発見。
Metasploit - 悪用のためのauxiliary/scanner/ssl/openssl_heartbleedモジュール。
方法論
1. 偵察
- サービス/バージョン検出を伴う完全なTCPポートスキャンを実行(nmap -sS -vv -p-p -A )
- 開いているポートを特定: 22(SSH)、111(rpcbind)、443(SSL/HTTP)。
- ポート443をSSL/TLS上のnginx 1.15.7を実行しているとフィンガープリント(古いOpenSSLの候補)
2. 脆弱性の特定
- (nmap -sV --script vuln )を実行して、発見されたすべてのサービスを既知の脆弱性スクリプトと照合。
- ssl-heartbleed NSEスクリプトを介して、ターゲットがHeartbleedに対して脆弱であることを確認、高リスクとしてフラグ付け。
3. 悪用
- Metasploitフレームワーク(msfconsole)を起動し、(search heartbleed)で関連モジュールを特定。
- auxiliary/scanner/ssl/openssl_heartbleedを選択し、モジュールオプションを確認。
- RHOSTS、RPORT 443、verbose trueを設定し、モジュールを実行。
- モジュールは不正なTLSハートビートリクエストを送信し、サーバーの過大な応答をキャプチャして、隣接するプロセスメモリを漏洩させた。
調査結果
- ターゲット(nginx 1.15.7、ポート443)は、nmapのssl-heartbleedスクリプトとMetasploitのopenssl_heartbleedスキャナーの両方を介してCVE-2014-0160に対して脆弱であることが確認された。
- 悪用はサーバーからヒープメモリを正常に漏洩させ、バイナリデータとともに印刷可能な文字列を返した。
- 漏洩したメモリには、以前のHTTPリクエストボディの断片が含まれており、「user_name、user_email、user_message」パラメータが含まれていた。これは、Heartbleedが隣接するメモリにたまたま存在していたアプリケーション層データを露出させる可能性があることを示している。
- 脆弱性を悪用するために認証は不要であり、ネットワークに隣接する任意の攻撃者によって悪用可能である。
修復
- OpenSSLをパッチ適用済みバージョンにアップグレードする。
- パッチ適用前に露出した可能性のあるSSL証明書/秘密鍵を失効させ、再発行する。
- 脆弱な期間中にセッションがアクティブだったアカウントのパスワードリセットを強制する。
- すぐにパッチ適用が不可能な場合は、ハートビート拡張機能を完全に無効にする。
実証されたスキル
- 全範囲のポートスキャンとサービス列挙(nmap)。
- NSEスクリプト(vuln、ssl-heartbleed)による脆弱性スキャン
- Metasploitフレームワークでのエクスプロイトモジュールの設定と実行。
- メモリ安全性脆弱性の根本原因分析。
- セキュリティレポートと修復計画。
参考文献