McAfee Avert Labs Blog
Conficker Worm using Metasploit payload to spread」より
January 15,2009 Posted by Xiao Chen

 最近になって,ワーム「W32/Conficker」の分析用サンプルを新たにいくつか入手した。調査の結果,同ワームは最近話題の「MS08-067」(関連記事:Windowsの「緊急」脆弱性を突くウイルスが続出,パソコンを乗っ取られる恐れ)のぜい弱性を突き,セキュリティ検証ツール「Metasploit Framework」のモジュール「ms08_067_netapi」を流用して拡散を図っていた。以下は,ワームから送信されたトラフィック・パケットのキャプチャ(スナップショット)だ。

 上記の画像から明らかな通り,このパケットにはms08_067_netapi.rbの「Rex::Text.rand_text_alpha」から生成されたと思われるランダムな英数字列がある。赤枠で囲んだデータのバイト順を変えたところ,「0x00020408」「0x6f8917c2」「0x6f88f807」という三つのアドレスが得られた。以下に示す通り,これらはms08_067_netapi.rbのエクスプロイトにおける内部ターゲットだ(metasploitから引用)。

# Metasploit's NX bypass for XP SP2/SP3
[ 'Windows XP SP3 English (NX)',
{

# Metasploit's NX bypass for XP SP2/SP3
[ 'Windows XP SP3 English (NX)',
	{
 
                     'Ret'       => 0x6f88f807,
                     'DisableNX' => 0x6f8917c2,
                     'Scratch'   => 0x00020408
	}
], # JMP ESI ACGENRAL.DLL, NX/NX BYPASS ACGENRAL.DLL

 metasploitの最新エクスプロイトは,Windows XP/2003を含め,複数の言語をターゲットとしている。英語,アラビア語,チェコ語,デンマーク語,ドイツ語,ギリシャ語,スペイン語,フィンランド語,フランス語,ヘブライ語,日本語,中国語などだ。metasploitのエクスプロイト・モジュールであるms08_067_netapiは,Windowsのバージョン情報,サービス・パック情報,ターゲットOSの言語情報を検出する「smb_fingerprint()」関数も備えている。こうした機能のおかげで,Confickerワームはプログラミングが大幅に簡易化され,非常に大きな被害を与えるられるようになる。metasploitの同モジュールをベースにコードを作ると,ウイルス/ワームのプログラマは,ダウンロードと感染を自動化する関数を実装するだけで済む。この作業は,エクスプロイトの基本知識と,そこそこのプログラミング・スキルを持つプログラマであれば可能だと思う。このトラフィック・キャプチャをさらに分析したところ,今回のワームにはOSバージョン情報とサービス・パック情報を検出する関数のみが組み込まれていた。OSの対応言語を判定する「機能」は備わっておらず,今回のワームは(当ブログ記事の執筆時点で)英語版のみをターゲットとしている。

 我々は,今回のマルウエアがOSバージョン情報とサービス・パック情報を取得する際にやり取りしたパケットをとらえた。その一部を以下に示す。

 SMBセッション設定要求を送ることで,ターゲット・マシンのOS情報を取得できる。OSが「Windows Server 2003」の場合,サービス・パック情報も返される。

タイトル

 Windows XPシステムの数は膨大なため,ワーム作者はこの情報を取り逃がしたくなかったに違いない。このため,Confickerワームでは「\SRVSVC」と名付けたパイプにアクセスし,サービス・パックのレベルを判断している。これは,metasploitのsmb_fingerprint()関数の方法とよく似ている。

 
if (os == 'Windows XP' and sp.length == 0)
            # SRVSVC was blocked in SP2
            begin
                         smb_create("\\SRVSVC")
                         sp = 'Service Pack 0 / 1'
            rescue ::Rex::Proto::SMB::Exceptions::ErrorCode => e
                         if (e.error_code == 0xc0000022)
                                 sp = 'Service Pack 2+'
                         end
            end
end

 つまり,今回の例では,マルウエア/ワームの作者は,オープンソース・ツールを悪用して,作業を簡易化していた。

 マシンに修正パッチを当てていないなら,今すぐMS08-067の修正パッチを適用してほしい。当社のホスト型IPS(不正侵入防止)製品またはネットワーク型IPS製品のユーザーは,それぞれシグニチャ「3961」および「0x40709d00」で対策済みだ。当社のウイルス対策ソフト「VirusScan」のユーザーは,ウイルス定義ファイル(DAT)「5444」で当該ワームが検出される。


Copyrights (C) 2009 McAfee, Inc. All rights reserved.
本記事の内容は執筆時点のものであり,含まれている情報やリンクの正確性,完全性,妥当性について保証するものではありません。
◆この記事は,マカフィーの許可を得て,米国のセキュリティ・ラボであるMcAfee Avert Labsの研究員が執筆するブログMcAfee Avert Labs Blogの記事を抜粋して日本語化したものです。オリジナルの記事は,「Conficker Worm using Metasploit payload to spread」でお読みいただけます。