◎Code Redについて

●時期 感染活動は、2001年9月30日まで。それ以降は無い。。模様。

●感染するOSは
1.Win NTのIIS4.0/5.0
2.Win 2000のIIS4.0/5.0
*しかし、Code Red__はWinNTに対してバッファオバーフロー
させる事は出来ても、その後メモリ空間の間違った部分にジャンプ
してしまうので、バックドアをインストールすることができず、
サーバをクラッシュさせてしまうだけ。完全に感染するのは
Win2000だけだと思われる。

●感染方法
壱:ターゲットIPのTCP:80に対して、3ハンドシェイクで接続を試みる。

似:接続確認後、コードをアップロードする。(サイズ=約3.5Kバイト)

参:次ターゲット探索

四:ワームコードを実行し、感染済の有無を確認する。既に感染していればスリープする。
CodeRedの稼働中の多重感染はありえない。ただし、再起動されると、CodeRedが
メモリー中から消えるので再感染!!

#ターゲットへの接続に非ブロッキングモードのソケットを使っており、
#接続の完了を待たずに次の接続に移ることができるため高速な感染を実現している。



●活動内容
一度感染すると
1.バックドア
◎行動
システムディレクトリにあるcmd.exeを、root.exeというファイル名で、
CとDドライブの

\inetpub\scripts\

\Program Files\Common Files\System\Msadc\

にコピーする。(Dドライブが無い場合は、Dへのコピーは失敗)

◎結果
このroot.exeはリモートからコマンドを実行するために使用。

2.トロージャンのインストール

壱:ドライブCとDのルートディレクトリに、explorer.exeというファイルを生成
(Dドライブが無い場合は、Dへの生成は失敗する。)

弐:explorer.exeに、CodeRedのバイナリーコード部分にあるトロージャンコードをコピー。

参:このトロージャン(explorer.exe)は、次にシステムにログインしたときに起動する。

四:トロージャンはその実行に当って、内部から本物のExplorer.exeを呼び出す。

伍:レジストリの変更や仮想ディレクリの作成を行います。
#ログインしたアカウントが管理者権限を持っていなければ失敗する。
#システムにSP2かMS00-052のパッチが当っていれば、トロージャン
(explorer.exe)
は起動せず、本物のExplorer.exeが動作し、レジストリの変更や仮想ディレクリの作成はしない。

3.レジストリの書き換え
壱:トロージャンが起動し次のレジストリを変更する。

◎行動
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
のキーSFCDisableに、値 0xFFFFFF9D をセット。

◎結果
Windowsのシステムファイルプロテクション機能(SFP)を無効にする設定で、
システムファイルの変更を防止しているSFPの機能が無効になり、重要なシステム
ファイルの変更が可能になる。以降の侵入でシステムファイルを変更するための下準備。

弐:次のレジストリを変更する。

◎行動
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\scripts
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\msadc
のレジストリに 値 ,,217を設定。
◎結果
scriptsとmsadcディレクトリが、読み書き実行が可能になる。
scriptsやmsadcは先ほどのバックドア(root.exe)をコピーしたディレクトリなので、
リモートからroot.exeを使って読み書き実行が可能になります。
4.仮想ディレクトリの作成
◎行動
壱:CとDという、2つの仮想ディレクトリを作成をおこなう。
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\c
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\d

弐:この2つの仮想ディレクトリにそれぞれ、c:\,,217、d:\,,217という値をセットする。
#ドライブCとDと仮想ディレクトリ/c、/dがマッピングされ、rwxの権限を与える。

◎結果
scriptsおよびmsadcのバックドア(root.exe)を発見、削除しても、/c、/d
の仮想ディレクトリを経由してコマンドを起動できる。予備のバックドアというところ。

参:ロージャン(explorer.exe)はスリープするが、10分ごとレジストリ変更の監視を行う。
また、削除、変更されていると、再度設定しなおします。

◎考査
壱:scriptsやmsadcのroot.exeを削除してもバックドア削除にならない。
C,Dの仮想ディレクトリの予備バックドアがある。
弐:仮想ディレクトリを削除しても、最大10分後か、次にログオンしたとき起動する
トロージャンがレジストリを書き換えおよび、仮想ディレクトリの再生成をおこなう。

5.他ホストへの感染活動
壱:感染活動用のスレッドを300個生成します。

弐:スレッドは24時間感染活動を行います。

参:感染活動を終えると、システムをリブートしCodeRedはメモリー上から消える。

四:最後には、バックドアとトロージャンだけが残る。

ターゲットの洗い出しは?
感染させる他のホストのアドレスをランダムに生成するが完全にランダムではない。
自端末のIPを元に次のような割合でターゲットIPを生成する。

自IPが10.41.xx.xxxの時
*.*.*.* 12.5%
10.41.*.* 37.5%
10.*.*.* 50%

以上の結果より、ローカルセグメントより感染が侵攻して行くのが分かる。
また、
127.*.*.*
244.*.*.*
最後が0のアドレス
最後が255のアドレス
自分自身のアドレス
の生成は行わない模様。

●判別
ログに次のような記録が残っていれば、アタックを受けています。

GET /default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u685
8%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9
090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%
u0000%u00=a

●対処
IISに
1.MS01-033のパッチをあてる
2.idq, idaへのマッピングを外す

●感染する条件
idq.dllというコンポーネントのバッファオーバーフローを利用し
ているため、Indexing Service(Index Server)が動作して
いるいないに関わらず、

1.パッチのあたっていないidq.dllがインストールされてる
2.IISが稼動している
3.idq, idaへのマッピングがある
4.HTTPで当該Webに接続できる限り影響を受る
ISAPI
idq.dll→IndexServer

管理スクリプト→ida
Internet Data Queries→idq
idq.dllのURL処理のコードに未チェックのバッファオーバフローがある

idq.dllはsystemコンテキストで動作するのでサーバを完全掌握できる

*バッファのオーバランはインデックス機能がリクエストされる前に起きる。
その結果、idq.dllはIndexServer/IndexinServerのコンポーネントにもかかわらず
サービスが稼動していなくても攻撃される。
idqまたはidaはスクリプトマッピングが存在しており、攻撃者はWebセッションを確立
出来る限り攻撃されつづける。

・この攻撃はWebセッションが確立できた場合に限る。IndexServer/IndexServicesを
インストールし、IISをインストールしていない場合は大丈夫。
・Internet Data Administration(ida)とInternet Data Query(idq)
ファイルのスクリプトマッピングが設定されていない場合は大丈夫。また、このマッピング
を削除してもシステムにより元に戻ってしまうため修正プログラムを適用することが推奨
されている。

戻る