🎃

【悪用禁止】hydraで超簡単にブルートフォースアタック(辞書攻撃)する

2021/09/08に公開

自分がmacを使っているので、 mac用の記事です。

ブルートフォース攻撃の準備

いくつか準備を施します。

  • hydraのインストール
  • 攻撃対象のログインフォームの準備
  • ID・パスワードの辞書の準備

homebrewでhydraをインストール

hydraは昔から存在するパスワードクラッキングツールです。

brew install hydra

これで hydra コマンドが使えるようになります。

テスト用のログインフォームを作成する

自分でログインフォームが作れる方は自分で作っても大丈夫です。
実際に運用されているサイト/サービスで行うのだけは絶対にやめてください。迷惑です。

テスト用のログインフォームをGitHubのパブリックリポジトリに置いていますので、よろしければこちらをお使いください。

https://github.com/n-oshiumi/brute_force_test

こちらのリポジトリをフォークしてきます。(クローンしてプッシュするのはご遠慮くださいませ)

あとはリポジトリのREADME.mdに書いてある通りに進めれば、ログインフォームが完成します。

ID・パスワードの辞書の準備

テスト用のログインフォームを用意する際にリポジトリをフォークしてきた方は、 filesディレクトリの中にすでにidとpassword というファイルがあると思います。

ない方は、下記URLを参照してidとパスワードのファイルを作ってください。
https://github.com/n-oshiumi/brute_force_test/tree/main/files

テスト用ログインフォームで、用意した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ファイルのブルートフォース攻撃の方法について解説していますので、ご興味がございましたらぜひみてみてください
https://www.youtube.com/watch?v=Ho80DqqZbFE

Discussion