Hydra を用いて Apache Tomcat 管理ページのアカパスを解析する

Linux

Metasploitable へのポートスキャンにより、Apache Tomcat の管理ページに使われる開放されていることがわかっています。

8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1

今回は、この管理ページのアカウントとパスワードを解析していきます。

Apache Tomcat 管理ページへのアクセス

ポートスキャンの結果、HTTPで8180ポートが開放されていることがわかっているので、Kali のブラウザで「http://10.0.0.5:8180」にアクセスしてみます。

Tomcat のページが開きました。
画面左の「Tomcat Administration」をクリックすると、認証画面に遷移します。

現時点ではアカウント/パスワードがわからないためログインできません。

HTTPのパスワード解析構文

FTP や SSH では必要ありませんでしたが、HTTPでは認証失敗時のメッセージを指定する必要があります。

HTTP認証の成否はログイン試行を行った際のHTTPレスポンスの内容で決まります。この内容はWEBアプリケーションによって異なるため、認証前提のプロトコルとは異なり、Hydra のコマンド上で認証成否のメッセージを指定する必要があります。

アカパスがわからない関係上、ログイン成功時のレスポンス内容は表示できないため、自ずとログイン失敗時のレスポンスを指定することとなります。

また、ログイン失敗時のメッセージ以外にも、「認証ページのパス」「POSTリクエストの送信パラメータ」がコマンドで必要となるため、これらの情報を入手するためにパケットキャプチャを取得します。

ログイン失敗時のパケットキャプチャ取得

まず、ログイン失敗時の画面を見てみます。

URL部を見ると 「認証ページのパス」 が”/admin/j_security_check”であることがわかります。
更に、ログイン失敗時のメッセージも”Invalid username or password”であることがわかります。

ただ、これだけだと 「POSTリクエストの送信パラメータ」 がわからないため、パケットキャプチャを取得する必要があります。

Kali で Wireshark ( パケットキャプチャツール )を起動します。

Metasploitable との通信に用いるネットワークアダプタである「eth0」を選択します。
クリックするとパケットキャプチャが開始するので、Tomcat へのログイン試行を行いパケットキャプチャを停止します。

取得したパケットキャプチャを http でフィルタリングすると、ログイン試行を行ったPOSTリクエストのパケットが見つかりました。

このパケットを確認すると、送信パラメータである以下がわかります。
ユーザー名の変数:j_username
パスワードの変数:j_password

以上の情報をもって、 「認証ページのパス」「POSTリクエストの送信パラメータ 」「 ログイン失敗時のメッセージ 」をコマンドで指定します。

Hydra によるパスワード解析

コマンドは以下になります。
hydra -L user.lst -P pass.lst -s 8180 10.0.0.5 http-form-post “/admin/j_security_check:j_username=^USER^&j_password=^PASS^:Invalid username or password”

-L user.lst -P pass.lst」については、 辞書攻撃に用いるリストを指定します。
-s 8180 」はポート番号を指定します。指定しないと 80 番で接続しにいくため今回は必要です。
10.0.0.5 」はターゲット端末のIPアドレスです。
http-form-post “/admin/j_security_check:j_username=^USER^&j_password=^PASS^:Invalid username or password” 」の””で囲われている部分は、先ほど調べた 「認証ページのパス」「POSTリクエストの送信パラメータ 」「 ログイン失敗時のメッセージ 」 を指定します。

なお、今回は演習であり管理ページのアカパスはどちらも「tomcat」であることがわかっているため、辞書攻撃に用いるリストに「tomcat」が含まれていることを事前に確認してください。

それでは hydra コマンドを実行してみます。

root@kali:~# hydra -L user.lst -P pass.lst -s 8180 10.0.0.5 http-form-post "/admin/j_security_check:j_username=^USER^&j_password=^PASS^:Invalid username or password"
Hydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2020-03-24 10:48:11
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 16 tasks per 1 server, overall 16 tasks, 72 login tries (l:8/p:9), ~5 tries per task
[DATA] attacking http-post-form://10.0.0.5:8180/admin/j_security_check:j_username=^USER^&j_password=^PASS^:Invalid username or password
[8180][http-post-form] host: 10.0.0.5   login: tomcat   password: tomcat
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2020-03-24 10:48:23
root@kali:~#

以下表示からわかるように、ユーザー名「tomcat」、パスワード「tomcat」のアカウントが特定できました。

[8180][http-post-form] host: 10.0.0.5   login: tomcat   password: tomcat
1 of 1 target successfully completed, 1 valid password found

このアカウントでログインも成功しました。

今回は以上です。

くどり

この記事は「ハッキング・ラボのつくりかた 第6章 」をベースに作成しています。購入リンクは以下です。
※Amazonアソシエイトを使用しています。

コメント

タイトルとURLをコピーしました