SpXn-Blog

Metasploit+docker(+nmap)で試すHeartbleed

April 10, 2019

Heartbleedというメモリリークから個人・機密情報を漏洩させる脆弱性。頑張ればこの脆弱性を持ったサーバーをイントラネットに立てて擬似攻撃できるんじゃね?って思ったのでやってみました。サーバーを立てるのにdockerを使い、コンテナイメージはhmlio/vaas-cve-2014-0160 を使用します(VaaSなんて言葉があるのな…)。
以下に手順記載しますー

1.dockerでhmlio/vaas-cve-2014-0160をプル

2.ポート(usageに書いてあったので8443にした)を指定して起動(dockerhub内の手順に従った。このコンテナが被害者側)

2’.nmapのHeartbleed検知スクリプトを使って被害者側が脆弱性を持つか確認)

3.攻撃者側(Kali Linux)でMetasploitを起動

4.CVE番号で検索をかけてHeartbleedモジュールを使用

5.オプションをいくつか設定して実行(RHOST, RPORT, VERBOSEの三つを設定した)

6.被害者側のメモリがリークしたのを確認できた。

ちなみに、HeartbleedはOpenSSLで暗号化通信をしていても通信の末端では復号してメモリに展開されているという隙をついた脆弱性です。もともとは接続確認とか応答の意味を兼ねてパケットをとんぼ返りするHeartbeatパケットというのがあり、その中のLengthというパケットの大きさを返すパラメータに実際の大きさを超える値をセットし、偽装した大きさと実際の大きさの差分だけメモリがリークする仕組みだ。JVNのデータを見るとOpenSSLはv1.0.1~v1.0.1fまでとのこと。執筆時点での最新版がv3.0.0なのでアップデートしていれば心配することはない。ただ、2014年に見つかったこの脆弱性は2016年ごろまで被害が起きていたことからユーザのインシデント対応の遅さが問題に繋がる原因ともなるので注意が必要です。

うーん、それにしてもただただマニュアル読んでその通りにしただけでは?スクリプトキディみたい…。でもそれだけツールが充実しているということですね。手順がかなり端折っているのは詳しく書きすぎるとクラッキングの助長になってしまうかなと思ったからです。たぶんこの記事を読んだだけでクラッキングができたら元から知ってたよね?くらいの抽象度合いなので大目にみてくださいー。あ、このコンテナでOpenSSLをアップデートして脆弱性が解消されてるか確認しようとしたけどアップデートができなかった…脆弱性確認用だから対策されてるのかな…?おわり。

参考:
・ JVNDB-2014-001920
・ え?今さらHeartBleedの話ですか?


[object Object]

セキュリティ, エクスプロイト, Tor, 仮想化とか - written by "_spxn"
  '