「W32/Conficker」は、MS08-067の脆弱性で感染する他に、外部メディアで感染する機能を持っているため、脆弱性を修正しても感染する危険のあるワームです。セキュリティ検証ツール「Metasploit Framework」のモジュール「ms08_067_netapi」を流用して拡散を行う性質もあり、注意が必要です。
以下は、ワームから送信されたトラフィックパケットのスクリーンショットです。
上記の画像から明らかな通り、このパケットにはms08_067_netapi.rbの「Rex::Text.rand_text_alpha」から生成されたと思われるランダムな英数字列があります。赤枠で囲んだデータのバイト順を変えたところ、「0x00020408」「0x6f8917c2」「0x6f88f807」という三つのアドレスが得られました。以下に示す通り,これらはms08_067_netapi.rbのエクスプロイトにおける内部ターゲットです。
# 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の最新エクスプロイトは、複数の言語をターゲットとしています。英語、アラビア語、チェコ語、デンマーク語、ドイツ語、ギリシャ語、スペイン語、フィンランド語、フランス語、ヘブライ語、日本語、中国語などです。metasploitのエクスプロイトモジュールであるms08_067_netapiは、Windowsのバージョン情報、サービスパック情報、ターゲットOSの言語情報を検出する「smb_fingerprint()」関数も備えています。こうした機能のおかげで、Confickerワームはプログラミングが大幅に簡易化され、非常に大きな被害を与えるられるようになります。metasploitの同モジュールをベースにコードを作成すると、ウイルス/ワームのプログラマーは、ダウンロードと感染を自動化する関数を実装するだけで済みます。この作業はエクスプロイトの基本知識と、ある程度のプログラミングスキルを持つプログラマーであれば可能だと思われます。このトラフィックキャプチャをさらに分析したところ、このワームにはOSバージョン情報とサービスパック情報を検出する関数のみが組み込まれていました。
このマルウェアがOSバージョン情報とサービスパック情報を取得する際にやり取りしたパケットの一部を以下に示します。
SMBセッション設定要求を送ることで、ターゲットマシンのOS情報を取得することができます。
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の修正パッチ適用をお願いします。
関連記事
- [2010/09/08] 再度活発化するConfickerワーム
関連情報
※本ページの内容はMcAfee Blogの抄訳です。
原文:Conficker Worm using Metasploit payload to spread