初めに
株式会社シーエー・アドバンスで脆弱性診断をしている宮里と申します。
普段はwebアプリケーションやAndroid,iOSなどのネイティブアプリの脆弱性診断をしています。
今回は普段の診断では行っていない部分に触れてみたいと思い、簡単にですがhydraを利用したパスワードのクラッキングを試してみました。
真似する場合は自身で環境を用意し、絶対に自分以外の環境に対して行わないでください。
hydraとは
パスワードクラックを行うツールです。
SSHやFTPなどのサービスや、webアプリのログインフォームに対して攻撃が出来ます。
攻撃時は、あらかじめ攻撃する値を記載したファイルを利用することが出来ます。
環境
攻撃側はhydraがデフォルトで入っているkali linuxを利用します。
また、今回はFTPサービスに対して攻撃を行います。
こちらのサイトを参考にvirtualboxで上記環境を用意しました。
https://www.dot-plus.com/server/linux/kalilinux/1851/
https://ts0818.hatenablog.com/entry/2015/12/24/134100
攻撃の準備
先ほども触れましたが、hydraはあらかじめ攻撃する値を記載したファイルを使うことが出来ます、今回はファイルを利用して攻撃をしてみようと思います。
下記リンクにてよく使われているユーザ名、パスワードがまとめられています。
https://github.com/danielmiessler/SecLists/blob/master/Usernames/xato-net-10-million-usernames-dup.txt
https://github.com/danielmiessler/SecLists/blob/master/Passwords/xato-net-10-million-passwords-1000000.txt
実際に攻撃してみる
kali linuxにて実行したコマンドは下記です。
hydra -l userlist.txt -P passwordlist.txt 192.168.0.107 ftp
利用したオプションは下記です。
-l: ユーザ名で利用するファイルを指定
-P: パスワードで利用するファイルを指定
今回はFTPサーバ側のユーザ名、パスワードはとても脆弱です、が実際に攻撃してみるとやっぱりわくわくしますね
わくわく.....
わくわく。。。。。。
₍₍◝((((((΄◞ิ(΄◞ิ(΄◞ิ౪◟ิ‵)◟ิ‵)◟ิ‵))))))◟⁾あ、終わらないかも...
ファイルの中身を見てみたらユーザの数は2132563、パスワードの数は9999998でした。
1ユーザに対しての総当たりがだいたい57分くらいで終わるので、57×2132563で121556091分、時間だと2025934時間、日数だと84413日。
このまま続けるとこの記事は2254年度のアドベントカレンダーでやっと間に合う計算になります、僕はそこまで長生き出来る自信がちょっとないので、今回はユーザ名は予めわかっているシチュエーションで攻撃をやり直します。
下記のコマンドにて再度攻撃します
hydra -l ftpuser -P passwordlist.txt 192.168.0.107 ftp
結果
ユーザ名はftpuser,パスワードはpasswordでした。
こちらのユーザとパスワードを利用して実際にftpにログインしてみます。
出来ました!
まとめ
今回はhydraを利用してパスワードのクラッキングに挑戦してみました。
やっている内容は簡単な事でしたが、やったことのない攻撃をしてみるのはやっぱり楽しかったです。
また、普段の診断ではアカウントロック機能の有無を確認しているのですが、ただ無い事を確認するだけでなく、こういった攻撃が実行可能になってしまう事を実際に触って理解することが出来たので良い機会でした。
簡単にでも実際に攻撃に触れる事でほかの脆弱性についてももっと理解が深まる気がしたので、自己学習として今後もこういった自分の環境で試してみて、得た知識を普段の業務でも生かせるようになればいいなと思いました。
次記事を書くときはもっとレベルの高い事を書けるようにこれからも頑張ります、ここまで読んで頂きありがとうございました!