
Presentación
Return forma parte del Hack The Box printer track, junto a máquinas como Driver y Antique. La primera parte de la instrucción es muy sencilla es simplemente redirigir la ip o el (FQDN), que se encuentra apuntando a un url interno en el panel web y obtener credenciales de LDAP mientras te mantienes en escuchas por el puerto 389, luego en la fase de reconocimiento para escalar privilegios vemos posibilidades de hacerlo abusando de SetBackupPrivilege o SetLoadDriverPrivilege, pero eso lo traeremos más adelante, en esta ocasión escalaremos privilegios a través del Server Operator Group, que es un privilegio con el que cuenta el usuario, del cual obtuvimos credenciales en primer lugar.
Reconocimiento
En la fase de reconocimiento realizamos el siguiente network map, exportando el output en formato grep a un archivo llamado allports:
nmap -p- --min-rate 5000 10.10.11.108 -oG allports
Output
[*] IP Address: 10.10.11.108
[*] Open ports: 53,80,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49674,49675,49679,49682,49697,59724
Puertos y Servicios
Por la cantidad de puertos y servicios involucrados luce comno un Domain Controller, puertos como 53, 88, DNS y Kerberos respectivamente, servicios y puertos de RPC 135-139, 389 LDAP como mencionamos anteriormente. Ahora procederemos con ejecutar las opciones sCV para reconocimiento básico de scripts para dichos puertos y servicios.
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,49697,59724 -sCV 10.10.11.108 -oN targeted
Servicio SMB 445
Utilizando cramapexec smb y smbclient en la fase de reconocimiento, para saber frente a que estamos:
SMB 10.10.11.108 445 PRINTER [*] Windows 10.0 Build 17763 x64 (name:PRINTER) (domain:return.local) (signing:True) (SMBv1:False)
La máquina se llama Printer, al parecer un Windows 10.0, la cual pertene al dominio return.local, que añadiremos a nuestro /etc/hosts.
smbclient -L 10.10.11.108 -N
Anonymous login successful
Sharename Type Comment
--------- ---- -------
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 10.10.11.108 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available
smbmap -H 10.10.11.108 -u 'null'
[!] Authentication error on 10.10.11.108
Servicio DNS 53
nslookup
> server 10.10.11.108
Default server: 10.10.11.108
Address: 10.10.11.108#53
> 10.10.11.108
;; connection timed out; no servers could be reached
Tampoco funcionó el ataque de transferencia de zona a dicho servicio.
Servicio HTTP puerto 80 Pass-Back Attack
En la sessión de settings dentro del panel web, encontramos:

Un Pass-Back Attack ocurre cuando forzamos un servicio en este caso la impresora desde el panel de setting, a que se conecte a nuestro equipo de atacante, esto al momento de clickear en update envía la autenticación de LDAP a nuestra ip y/o dispositivo, interceptando nosotros dicha autenticación y poder ver credenciales en texto plano en este caso al realizarse a través del puerto 389 y no el 636 que es LDAP-Secure.

Nota Nos ponemos en escuha por el puerto 389,podemos utilizar rlwrap,que nos da acceso inmediatamente al history, auto-complete y a poder utilizar las arrow keys, en caso de tenerla instalada, sino (sudo apt install rlwrap) damos clic en update y recibimos las siguientes credenciales.

Ya con estas credenciales y validando dicho usuarios con crackmapexec, y sabiendo que el puerto de Winrm esta abierto probamos una conexión.

Desde aquí podemos obtener la user.txt flag.
Recon-PrivEsc
En un principio y sabiendo lo que involucra escalar privilegios con SeBackupPrivilege o SeLoadDriverPrivilege, me dije que entonces HTB hubiese etiquetado la máquina como medium al menos 💁♂️.

Por lo que volvi a ver e invetigar sobre el grupo que no conocia cuando hice el comando net user.

E ivestigando sobre el mismo en la web oficial de Microsoft, encontré el siguiente artículo, Microsoft, y que observando sus capacidades hace sentido que por defecto no tengan miembros, lol :p cito: By default, the group has no members. Members of the Server Operators group can sign in to a server interactively, create and delete network shared resources, start and stop services, back up and restore files, format the hard disk drive of the computer, and shut down the computer. This group cannot be renamed, deleted, or moved.
Es decir que puedo listar, iniciar y detener servicios!? y si yo modifico el binpath, algo como _sc.exe config binPath= _ de un servicio que haga una conexión a mi equipo de atacante.
PoC
Probamos listandos los servicios, con el comando services.

Y si, si podemos listar servicios, luego añadimos nuestro nc.exe al escriorio del user del que tenemos capacidad de escritura.

En la siguiente imagen intentamos crear un servicio, pero no fue posible, así que modificamos uno existente en este caso VMTools, modificamos el binpath hacia nuestro nc.exe en el escritorio del user svc-printer que nos inicie una conexión, mientras estamos en escuchas, detenemos dicho servicios…

y reiniciamos el mismo y así obtemos una shell como nt authority\system.

🖱️by: @DaVinciRoot