2011年12月1日木曜日

boot.tidserv or TROJAN:DOS/Alureon.E

職場の人の PC がヘンだというので見にいってみたら、見慣れないチェックソフトが動いていてエラーが続出している。Windows Recovery 系のウイルスっぽい症状。

職場の方針で Norton が入っているのでどのファイルが問題が確認して (というか Norton は何をしてたんだろう?)、手持ちの RIP Linux を CD から起動して削除、再起動かけたらビックリ。ファイルが悉く見えなくなっていた。
そもそも Windows (XP) は起動しているし、Norton も動いているのでファイルが削除されたわけではないようだ。おそらく不可視属性が付いているだけだろう。

そこで cmd で見てみようとしたが、「ファイル名を指定して実行」が見えない (あれって exploror に書いてあるわけじゃなくってファイルなんだ。IE のブックマークみたいな?) 。タスクマネージャーも「禁止」されていて起動しない。でも、たまたま動いていた explorer のアドレスバーに "C:\windows\system32\cmd.exe" と入れると cmd が起動した。
それで見るとシステム属性と不可視属性が付いている。ディレクトリの中のファイルにもついている。その下のディレクトリのファイルにも付いている。どうもどこまでもシステムと不可視が付いているらしい。
このへんは attrib のオプションでなんとでもなる (attrib -S -H /S /D) ので、サブディレクトリまでまとめて解除したが、どうもまだ挙動がおかしい。例えば「my computer」を表示するのにえらく時間がかかる (数分とか)。Norton は何も言わないが (言わなかったと思う)、これはまだ何かいると (ノートンのではなく私の) ゴーストが囁いた。

私が Windows に詳しけりゃもっとなんとかなるのだろうが、そうではないので諦めてリカバリを助言、というか私がリカバリすることにした。(お世話になっている人なので)
HDD  からリカバリ、(Linux なら upgrade 一発で済むのになあとボヤきつつ) 延々と 延々と延々とWin の パッチを当てて 、再度 Norton をインストール、全チェックをかけたら「MBR に boot.tidserv がいる」と言う。MBR なら上書きすれば OK?

と思って WinPE から bootrec /fixmbr (と /fixboot (/rebuildbcd もすべきらしい)) したり、MBM を入れたりしてみたが、やっぱり「MBR に boot.tidserv がいる」と言う。あれー?どっか他のところにウイルスがいて書き戻しているという話?
単なる検出ミスかもしれないと思って Norton から Microsoft Security Essentials に替えたら、とたんにうるさく騒ぎだした。どうも実際にいるらしい。こっちの識別名は TROJAN:DOS/Alureon.E。

ネットで調べたところ、この系列は MBR からパーティション末尾に書き込まれたウイルス本体を起動し、後に Windows を起動するようになっているようで、いわば Windows はウイルスの仮想環境で動いているようなものであり、ウイスルやりたい放題といった恐しいやつらしい。勘弁して欲しいよな。

RIP Linux に戻ってじっくり見ると、基本パーティションが 4 つある。p1 は FAT でユーティリティ (つまり HDD リカバリのためのプログラム)、p2 が WinXP (NTFS) で、 p3 は HDD イメージ (FAT)、p4 は NTFS というがマウント出来ないし正体不明。
この p4 には、最初見たときから気付いていたが、この PC のメーカー (つまり DELL) は、変なことするメーカーだからなあ、とそれほど気にしてなかった、が、どうやらここにウイルス本体がいるらしい。(暗号化仮想ファイルシステムを作って隠れている。マウントポイントはおそらく C:\。通常のシステムはその上に再マウントされているのだと思う)

一応念のため dd でバックアップしてからゼロクリア (dd if=/dev/zero of=/dev/sda4)、さらにパーティションを削除、さらにさらに MBR 修復とやったら、やっと警告が出なくなった。
つまり NTFS に偽装することで (おせっかいな) Windows が自動でマウント、ウイルス本体をロードする仕組みだったようだ。よく考えている。

しかし、リカバリしても退治出来ないウイルスって始めてみたなあ。HDD リカバリじゃなくって CD からリカバリすれば大丈夫だったかな?