はじめに
「ハッキング・ラボのつくりかた」p.640-643を参考にして、KaliLinux2022.1で検証した記事となります。
注意事項
記事で紹介されている行為を他人や団体、インフラなどの許可を得ずに行った場合、犯罪となる可能性が有ります。
あくまでも、記事の内容は情報セキュリティの学習です。読者様の所有・管理の機器、システムでのみ実行してください。
また、読者さまのシステムにトラブルが起きたとしても、私は責任を負いかねます。
認証ページに対する辞書攻撃
"http://192.168.56.60/bWAPP/portal.php"にアクセスして、プルダウンメニューから、「Broken Authentication - Password Attacks」を選択する。選択すると、"http://192.168.56.60/bWAPP/ba_pwd_attacks_1.php"に遷移する。
適当な文字列で試してみる。(ただし、正しいユーザー名、パスワードであるbee/bugは避ける)
すると、次のようなエラーが返される。
Invalid credentials! Did you forgot your password?
Burpでhttp要求を補足する
Firefoxでの設定
URL入力欄に"about:preferences"と入力して、一番下の「ネットワーク設定」の「接続設定」をクリックする。「手動でプロキシを設定する」を選択して、全ての欄を"127.0.0.1"と設定、ポート番号は"9500"と設定する。
BurpSuiteの起動
ランチャーから「BurpSuite」を起動する。
メッセージ画面は、「temporary project」→「Use Burp defaults」と選択する。
メイン画面が表示されることを確認。
メイン画面
「Proxy」タブの「Options」タブからBurpのポート番号を8080から9500に変更する。
プロキシの設定
Burpのプロキシタブにて、「Intercept is on」にする。
Firefoxでログインを試みる
Firefoxで前述のURLに戻り、Login:test,Password:testとして、ログインを試す。結果は失敗するが、Burpのプロキシタブには補足したhttp要求が表示される。「Action」ボタン>「Send to Intruder」を選ぶ。その後、「Intercept is off」に戻す。
ポジションを設定する
「Intruder」タブ>「Positions」タブを開く。「Clear」ボタンを押して、http要求のポジションを全て解除する。
- ポジションの設定
"login="以降の"test"を選択して、「Add」ボタンを押下、次に、「password=」以降の"test"を選択して、「Add」ボタンを押下する。 - 「Attack type」の変更
「Cluster bomb」に変更する。
辞書の作成
辞書攻撃で用いる辞書を作成する。
「Payloads」タブを押す。「Payload Sets」で1が選ばれた状態で、「Payload Options [Simple list] 」の「Add」ボタンの右入力欄にユーザー名の候補文字列を入力する。
"root","bee","john","alice"を追加する。ユーザー名候補となる。
今度は、「Payload Sets」で2が選ばれた状態で、「Payload Options」にてパスワードの候補文字列を入力する。
"pass","password","toor","admin","1234","bug","1111","test"を追加する。パスワード候補となる。
辞書攻撃の実行
「Start attack」を押下する。
下の画像のようなダイアログが表示される。
"The Community Edition of Burp Suite contains a demo version of Burp Intruder.
Some functionality is disabled, and attacks are time throttled.
Please visit https://portwigger.net for more details about Burp Suite Professional which contains the full version."
デモバージョンなので、フル機能は利用できないらしい。「OK」をクリックする。
Lengthの値に注目します。大多数の攻撃は失敗しているので、そのhttp応答のLengthは同じ値になるはずです。これと異なる値があれば、攻撃に成功したと考えられます。
残念ながら、すべて同じ値である。BurpのIntruderがデモバージョンであることが原因か・・・?