TheFrizz WriteUp

Se hace un escaneo de nmap para reconocer el entorno con los parametros:
-sVPara identificar las versiones de los servicios expuestos.-PnPara omitir el ping a los hosts (asumiendo que están activos).-sCPara utilizar los scripts por defecto denmap.
Al acceder a http://frizz.htb/, el navegador nos redirige automáticamente a:
http://frizzdc.frizz.htb/home/
Al hacer clic en el botón Staff Login, se nos redirige a la ruta /Gibbon-LMS/, donde aparece un panel de login. Allí se identifica que el CMS utilizado es Gibbon, versión 25.0.00.
Powered by [Gibbon](https://gibbonedu.org) v25.0.00 | © [Ross Parker](http://rossparker.org) 2010-2025
Buscando en Google encontramos dos vulnerabilidades que afectan a esta versión:
CVE-2023-34598 – LFI
Repositorio:
https://github.com/maddsec/CVE-2023-34598
Esta vulnerabilidad permite Local File Inclusion en el CMS. Lo comprobamos accediendo a: http://frizzdc.frizz.htb/Gibbon-LMS/?q=gibbon.sql
Lo cual nos muestra el contenido del archivo gibbon.sql, confirmando la existencia del LFI:
⚠️ Sin embargo, tras analizar más a fondo, esta vulnerabilidad resultó ser un rabbit hole (camino sin salida), ya que no permite escalar ni obtener acceso al sistema directamente.
CVE-2023-45878 – File Upload to RCE
Referencia:
https://pentest-tools.com/vulnerabilities-exploits/gibbon-lms-v25001-file-upload-to-rce_27078
Tras investigar un poco más, encontramos el código del exploit:
Exploit en GitHub:
https://github.com/0xyy66/CVE-2023-45878_to_RCE
Este exploit automatiza una cadena de vulnerabilidades que permite escribir archivos arbitrarios y luego ejecutar código remotamente (RCE).
Al ejecutarlo, conseguimos una reverse shell con netcat, logrando acceso inicial al sistema.
En el sistema encontramos un archivo de configuración con credenciales de la base de datos:
\(databaseServer = 'localhost';\)databaseUsername = 'MrGibbonsDB';\(databasePassword = 'MisterGibbs!Parrot!?1';\)databaseName = 'gibbon';
Enumeramos los usuarios del sistema:
net user /domain
Nos conectamos a MySQL usando las credenciales encontradas, y listamos las bases de datos:
Accedemos a las tablas de la base gibbon, donde encontramos un hash y su salt correspondiente al usuario f.frizzle.
Como hashcat tardaba demasiado, pedimos ayuda a ChatGPT para generar un script en Python que rompiera el hash mediante diccionario.
El script logra encontrar la contraseña:
[+] Contraseña encontrada: Jenni_Luvs_Magic23
Editamos el archivo de configuración de Kerberos y lo configuramos en el dominio de FRIZZ.HTB
Generamos un ticket en Kerberos con el usuario f.frizzle:
Accedemos por ssh usando Kerberos:
Obtenemos la flag de usuario:
type user.txt05613e97dfb8c5b0880e8b29c08000b9
Escalada De Privilegios
Encontramos archivos en la papelera de reciclaje:
Los copiamos a /Documents:
Vemos que se trata de una copia de seguridad (backup):
Lo copiamos a nuestra maquina por scp:
Descomprimimos el archivo 7z:
Encontramos un archivo waptserver.ini con credenciales:
Obtenemos una clave codeada en base64:
!suBcig@MehTed!R
Enlistamos los usuarios en /Users:
Usamos Kerberos nuevamente con m.schoolbus para generar un ticket:
Accedemos por ssh usando Kerberos:
ssh m.schoolbus@frizz.htb -k
Verificamos los privilegios del usuario:
Vemos que tenemos los permisos:
SeMachineAccountPrivilege
SeChangeNotifyPrivilege
SeIncreaseWorkingSetPrivilege
Descargamos SharpGPOAbuse.exe en nuestra maquina
Levantamos un servidor web con:
python3 -m http.server 80
Y descargamos SharpGPOAbuse.exe en la maquina victima con certutil
Verificamos que no somos administradores
Listamos todas las GPO:
Creamos un nuevo GPO malicioso "Evil-GPO" y lo vinculamos a la OU del DC, luego utilizamos SharpGPOAbuse para modificarlo e incluir al usuario M.SchoolBus dentro del grupo de Administrators de la maquina:
Forzamos a que se apliquen las políticas del GPO malicioso y verificamos que el usuario M.SchoolBus sea agregado como administrador del sistema:
Levantamos un servidor web con:
python3 -m http.server 80
Ponemos un listener de netcat a la escucha en el puerto 4445 y descargamos RunasCs.exe en la maquina victima con certutil:
Ejecutamos RunasCs como M.SchoolBus para recibir una shell inversa como administradores:
Tras ejecutarlo, recibiremos una conexión inversa como administrador:
Obtenemos la flag de root:
type root.txtccb695f45b54d1804fb24ff0e66ad815




