Esta vez tenemos una máquina Windows de nivel Easy en la que explotaremos un servidor web de Administración de Impresora para obtener unas credenciales con las que posteriormente nos conectaremos a la máquina a través de Winrm y escalaremos privilegios a través de una mala configuración de grupos de usuario con la que podremos crear, modificar, iniciar y parar servicios.
Reconocimiento
Reconocimiento de Puertos📌
PORT STATE SERVICE REASON
53/tcp open domain syn-ack ttl 127
80/tcp open http syn-ack ttl 127
88/tcp open kerberos-sec syn-ack ttl 127
135/tcp open msrpc syn-ack ttl 127
139/tcp open netbios-ssn syn-ack ttl 127
445/tcp open microsoft-ds syn-ack ttl 127
464/tcp open kpasswd5 syn-ack ttl 127
636/tcp open ldapssl syn-ack ttl 127
3269/tcp open globalcatLDAPssl syn-ack ttl 127
5985/tcp open wsman syn-ack ttl 127
49664/tcp open unknown syn-ack ttl 127
49665/tcp open unknown syn-ack ttl 127
49674/tcp open unknown syn-ack ttl 127
49682/tcp open unknown syn-ack ttl 127
Como podemos ver tenemos un listado de puertos bastante amplio, pero esa información no es suficiente, necesito saber que servicios y versiones se ejecutan en cada puerto.
Lo más relevante es que tenemos el protocolo SMB, HTTP y en el puerto 5985 el servicio de Administración Remota (WinRM)
SMB
Comenzaré por enumerar un poco más el protocolo SMB.
Usaré crackmapexec bajo el protocolo SMB para obtener más información acerca del objetivo.
Como vemos ya vamos obteniendo algo de info
1. Nombre de la máquina -> Printer
2. Dominio -> return.local
3. Protocolo SMB firmado
Ahora vamos a ver si tenemos algún recurso compartido pero claro, no tenemos credenciales, así que debemos usar el parámetro -N
(Null session).
NO hay nada
Por lo tanto hasta que no tengamos credenciales no hay mucho que hacer.
Así que paso a enumerar el servidor web.
Enumeración Web 📌
Al acceder a la ip desde el navegador encontramos lo siguiente:
Es un panel de administración de una impresora
Enumerando encuentro que en settings tenemos un formulario con credenciales y el dominio...
Igual si cambio el campo del dominio por la ip de mi VPN (interfaz tun0) y abro un listener en netcat podría conectarme a la máquina así que probemos.
Ponemos el netcat en escucha en puerto 389
Y en la web añadimos nuestra ip.
Clickamos en update y en la sesión de netcat recibimos unas credenciales
Evil Winrm
Ahora que tenemos credenciales podríamos probar a conectarnos a través de WinRm...
Y conseguimos conectarnos.
Escalada de Privilegios
Server Operators👽
Para escalar primero debemos enumerar, comenzando por los permisos del usuario actual svc-printer.
Si nos fijamos el usuario pertenece a los grupos "Print Operators" , "Remote Management Use" y "Server Operators".
Lo que más me llama la atención es "Server Operators", pero no tengo ni idea de que podríamos hacer para escalar así que busqué información sobre este grupo.
Y buscando di con este artículo:
http://0xma.com/hacking/privilege_escalation_via_server_operators_group.html
Por lo que he podido investigar, al pertener a este grupo podemos arrancar, parar y reiniciar servicios, por lo tanto podríamos crear o modificar un servicio en ejecución y editarlo para así obtener una conexión reversa.
Sigo los pasos del post:
1. Subir netcat a la máquina víctima.
2. Vemos que servicios hay en ejecución y lo modificamos.
Tenemos varios servicios en ejecución, ahora procedemos a modificar uno de ellos.
Ya lo tenemos modificado
3. A continuación toca poner netcat en escucha en el puerto configurado (443), y ahora debemos arrancar el servicio.
Y ya hemos escalado privilegios, estamos logueados usuario Administrador.