Return Writeup HTB (OSCP Style)

Reconocimiento

Primero agregaremos nuestra ip al archivo /etc/hosts con el dominio return.htb

nmap

Como siempre comenzaremos con un escaneo a los 65535 puertos TCP/IP para verificar cuales se encuentran abiertos, para esto ejecutaremos el siguiente comando:

nmap -n -p- -T4 –min-rate 10000 return.htb –open -oA alltcp

Como observamos en la siguiente imagen encontramos con los siguientes puertos abiertos:

  • 53 (domain)
  • 80 (http)
  • 135 (msrpc)
  • 139 (netbios-ssn)
  • 445 (microsfot-ds)
  • 464 (kpasswd5)
  • 593 (http-rpc-epmap)
  • 3269 (globalcatLDAPssl)
  • 49675 (unknown)

Una vez identificados los puertos abiertos, procederemos a identificar las versiones y servicios de cada uno, y de igual manera arrojaremos los script por defecto de nmap:

Cabe mencionar que el argumento -sCV es una union de usar -sV y -sC

nmap -sCV -n -p 53,80,135,139,445,464,593,3269,49675 -T4 return.htb -oA tcp-scripts

Al identificar una máquinas Windows con varios puertos abiertos, podemos hacer uso de la herramienta Crackmapexec, para confirmar el hostname.

Haciendo una búsqueda por internet encontré una guía para recopilar información utilizando Python3: Hacktricks (https://book.hacktricks.xyz/network-services-pentesting/pentesting-ldap).

Agregamos el host en nuestro etc/hosts

Printer Admin

Observando los puertos abiertos que encontramos en la fase de reconocimiento nos percatamos que teniamos el puerto 80 abierto, lo cual visitamos en el navegador y nos aparece un panel de administración de impresion.

Navegamos sobre la web y encontramos información relevante en la configuración

Observando la contraseña se encuentra cifrada, por lo cual buscando en la red nos encontramos con este artículo (https://www.ceos3c.com/security/obtaining-domain-credentials-printer-netcat/) lo cual podemos interceptar la contraseña en texto plano con netcat.

Crackmapexec

Ahora que tenemos las credenciales, trataremos de obtener más información con Crackmapexec.

SMBMap

De igual forma podemos conectarnos ahora que ya tenemos credenciales.

smbmap -H return.local -u «svc-printer» -p «1edFg43012\!\!»

Observamos que tenemos permisos de (Lectura y Escritura) sobre el disco C.

smbmap -H return.local -u «svc-printer» -p «1edFg43012\!\!» -r C$

Nos vamos a la carpeta Usuarios para darle un vistazo.

smbmap -H return.local -u «svc-printer» -p «1edFg43012\!\!» -r C$/Users/

Nos dirigos a el usuario con el cual iniciamos sesión.

smbmap -H return.local -u «svc-printer» -p «1edFg43012\!\!» -r C$/Users/svc-printer

Hechamos un vistazo a las carpetas y nos vamos sobre Desktop

smbmap -H return.local -u «svc-printer» -p «1edFg43012\!\!» -r C$/Users/svc-printer/Desktop

Tenemos la primer bandera de user.txt, ahora la descargamos sobre nuestra máquina.

smbmap -H return.local -u «svc-printer» -p «1edFg43012\!\!» -r C$/Users/svc-printer/Desktop -A «user.txt»

Evil-WinRM

Con las credenciales que obtuvimos anteriormente de igual forma podremos obtener una shell interactiva usando Evil-WinRM

Recopilación de Información del Usuario

Ahora que tenemos una shell interactiva podemos investigar, usuarios, grupos y permisos.

  • whoami
  • whoami /groups
  • net users
  • net groups
  • net usr svc-printer

Arriba hemos recopilado mucha información útil, lo más interesante que vemos es que nuestro usuario está en los grupos de Operadores del servidor. Detallado aquí (https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/active-directory-security-groups#bkmk-serveroperators) vemos que esto nos da:

Configuración de Servicios

El enfoque de nuestro próximo paso es interactuar con los servicios. Podemos ver desde dentro de Evil-WinRM a qué tenemos acceso:

Primero tendremos que subir a Windows la versión de netcat.

Después de subirlo trataremos de crear nuestro propio servicio:

Luego intenté cambiar la configuración de un servidor existente para que use mi netcat en su lugar para su binario:

Finalmente, obtenemos el servicio VSS y anclamos nuestro binario a este:

Verificamos que este servicio exista:

Antes de iniciarlo tendremos que poner a la escuche netcat en lel puerto especificado:

nc -nvlp 4444

Iniciamos el servicio:

Obtenemos Shell de Administrador

Una vez comenzado el servicio nos arrojará una shell en netcat.

Ahora unicamente tendremos que encontrar nuestra bandera de root:

Cabe mencionar que las acciones las tendremos que hacer rápido ya que en cierto tiempo de termina el servicio y tendremos que volver iniciar netcat junto con el servicio:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *