【悪用禁止】hydraで超簡単にブルートフォースアタック(辞書攻撃)する
自分がmacを使っているので、 mac用の記事です。
ブルートフォース攻撃の準備
いくつか準備を施します。
- hydraのインストール
- 攻撃対象のログインフォームの準備
- ID・パスワードの辞書の準備
homebrewでhydraをインストール
hydraは昔から存在するパスワードクラッキングツールです。
brew install hydra
これで hydra
コマンドが使えるようになります。
テスト用のログインフォームを作成する
自分でログインフォームが作れる方は自分で作っても大丈夫です。
実際に運用されているサイト/サービスで行うのだけは絶対にやめてください。迷惑です。
テスト用のログインフォームをGitHubのパブリックリポジトリに置いていますので、よろしければこちらをお使いください。
こちらのリポジトリをフォークしてきます。(クローンしてプッシュするのはご遠慮くださいませ)
あとはリポジトリのREADME.mdに書いてある通りに進めれば、ログインフォームが完成します。
ID・パスワードの辞書の準備
テスト用のログインフォームを用意する際にリポジトリをフォークしてきた方は、 filesディレクトリの中にすでにidとpassword というファイルがあると思います。
ない方は、下記URLを参照してidとパスワードのファイルを作ってください。
テスト用ログインフォームで、用意したidとpasswordのユーザーが存在していることを確認してください。
実際にログインできるアカウント情報が、 idとpasswordのファイルの中に存在していないとヒットしません。
実際にブルートフォース攻撃をやってみる
hydraコマンドの構文はこのような感じです
hydra -L {ユーザーIDの辞書ファイルへのパス} -P {パスワードの辞書ファイルへのパス}} {ドメインもしくはIPアドレス} http-post-form '{パス}:{ログインフォームのログインIDのname}=^USER^&{ログインフォームのパスワードのname}=^PASS^:{ログイン失敗時のメッセージ}'
「ログインフォームのログインIDのname」と「ログインフォームのパスワードのname」はHTMLで指定しているnameの話です。
今回のパブリックリポジトリに置いているログインフォームを構築した場合はこのようなコマンドになります。
hydra -L files/id -P files/password example.com http-post-form '/login.php:email=^USER^&password=^PASS^:メールアドレスもしくはパスワードが異なります'
hydraでは80番ポートを想定しているようなので、おそらくローカル環境では試せません。何かのサーバーにアップして試すしかなさそうです。
これを試すだけならおすすめは無料で使えるngrokかherokuです。
コマンドを打てば、すぐに解析が始まり、ログインIDとパスワードを特定されました。
こんな感じで誰でも簡単にブルートフォースアタックができてしまいます。
悪用はしないようにお願いします^^
こちらではWebログインフォームのブルートフォース攻撃の方法とZIPファイルのブルートフォース攻撃の方法について解説していますので、ご興味がございましたらぜひみてみてください
Discussion