💻
My Personal Hacking Path
  • 👓Wellcome
    • My Personal Hacking Path
      • Whoami
  • 📚Mi Metodología de Pentesting
    • Tipos de evaluaciones
      • El día a día en pentesting
    • Metodología Propia
      • OWASP
      • OSSTMM
      • PTES
      • CEH Hacking Metodology (CHM)
      • Cyber Kill Chain
      • MITRE Att&ck
    • Fase 0 - Pre Evalaución
    • Fase 1 - Reconocimiento
      • Web / Host
      • SubDominios
      • Descubrimiento de correos electrónicos
      • Escaneo de Puertos
      • Credenciales y brechas de seguridad
      • ¿Sin Ideas?
    • Fase 2 - Explotación
      • Shells
        • Diferencia entre una WebShell y Reverse Shell
      • Payload
      • Network Penetration Services
        • 20|21 - FTP
        • 22 - SSH
        • 139|445- SMB
        • 80|443 - HTTP/HTTPS
    • Fase 3 - Post Explotación
      • Enumeración
      • Linux
        • Enumeración
        • Privilege Escalation
      • Windows
        • Revershell
        • Windows Enum
        • Privilege Escalation
    • Fase 4 - Reporting
      • CVSS
        • v4.0
      • Toma de notas
  • 👾Malware
    • Malware DevOps
    • Arquitectura de Windows
      • Windows API
      • Procesos de Windows
      • Estructuras no documentadas
    • PE
      • DLL
    • Almacenamiento del Payload
      • .data & .rdata
      • .text
      • .rsrc
    • Cifrado de Payload
      • XOR
      • RC4
      • AES
    • Ofuscación de Payload
      • IPv4/IPv6Fuscation
      • MACFucscation
      • UUIDFuscation
    • Process Injectión
      • DLL Injection
      • Shellcode Injection
      • APC Injection
  • 🌐Web-Pentesting
    • Metodología para Pentesting Web
    • Footprinting
      • Identificación Tecnologías web
        • WordPress
        • Joomla
        • Drupal
        • Magento
      • Fuzzing
      • Validación de los certificados
    • Vulnerabilidades comunes
      • File Upload
      • SQL Injection
      • Cross-site scripting
      • XXE Injection
      • LFI - Local File Inclusion
        • Log Poisoning
      • RFI - Remote File Inclusión
      • CSRF - Cross-Site Request Forgery
      • SSRF - Server-Side Request Forgery
      • SSTI - Server-Side Template Injection
      • CSTI - Client-Side Template Injection
      • Padding Oracle Attack
      • NoSQL Injection
      • LDAP Injection
    • Laboratorios
  • ☁️AWS Pentesting
    • Introducción a Amazon Web Services AWS
    • Acceso Inicial
    • IAM
      • Políticas de IAM
      • Enumeraciones
      • Privesc-Paths
        • Permisos de IAM
        • Permisos sobre políticas
        • AssumeRolePolicy Update
        • IAM:PassRole*
          • PassExistingRoleToCloudFormation
    • S3
      • Enumeración
      • S3_public
      • OSINT
    • Lambda
      • Enum Lambda
      • Enum API Gateway
      • Privesc-Paths
        • RCE sobre Lambda
        • PassExistingRoleToNewLambdaThenInvoke
        • PassRoleToNewLambdaThenTrigger
        • EditExistingLambdaFunctionWithRole
    • EC2
      • Enumeración
      • Privesc-Paths
        • EC2_SSRF
        • CreateEC2WhithExistingIP
        • PassExistingRoleToNewGlueDevEndpoint
        • ECS_takeover
    • VPC
      • Enumeración
      • PivotingInTheCloud
    • Bases de Datos
      • RDS
        • Enumeración
      • DynamoDB
        • Enumeración
    • ECS
      • Enum ECR
      • Enum ECS
      • Enum EKS
    • AWS Secrets Manager
      • Enumeración
    • Análisis de vulnerabilidades Automatizado
    • Blue Team AWS
      • CloudTrail
      • CloudWatch
      • GuardDuty
      • AWS Inspector
      • AWS Shield
      • Web Application Firewall
    • Notas
      • Terraform
  • 🔫Red_Team
    • Introducción a Red Team
      • Assume breach
    • ¿Qué es MITRE ATT&CK?
      • Guia de uso de Invoke-AtomicRedTeam
    • C2 Comando y control
      • Sliver C2
        • Instalación
        • Beacons y Sesiones
        • Perfiles
        • mTLS y WiewGuard
        • HTTP / HTTPS
        • DNS
        • Stagers: Basics
        • Stagers: Proccess Injection
        • Basics de Implates
        • Ejecución de Assembly
        • Sideload
        • SpawnDLL
        • Sliver Extensions
  • 💾Active Directory
    • Teoria
      • Componentes Físicos
      • Componentes Lógicos
      • GPO VS ACL
      • Kerberos
        • Funcionamiento de Kerberos
      • Usuarios por defecto
    • Enumeraciones
      • ¿Por qué enumerar?
      • Enumeración manual
      • Enumeración con PowerView
    • Ataques en AD
      • Mimikats
        • Comandos
      • Password Spraying
      • LLMNR Poisoning
      • Relay Attacks
        • NTLM
      • Kerberoasting
    • Tools
      • AuxRecon
      • Powershell
      • PowerView.ps1
      • ADPeas
      • Mimikatz
        • Comandos
    • AD Lab
  • 🌩️Azure Coud Pentesting
    • Introducción a Azure y Office 365
    • Introducción a Microsoft Indentity Services
    • Enumeración
    • Azure Files
      • Encontrar Fuga de Datos
    • Microsoft Graph
    • Notas
  • 📱Mobile Pentesting
    • Análisis de Aplicaciones Móviles en MobSF
    • ¿Cómo interceptar tráfico de una aplicación Flutter Android con Burp?
  • 📶Wireless
    • Terminología
    • Tipos de Wireless Networks
    • Formas de Autenticación
    • Cifrados
      • WEP
      • WPA
      • WPA2
      • WPA3
    • Ataques
  • 😎Extras
    • Docker
      • Port Forward y volúmenes
      • Docker Compose
      • Container Breakouts
    • Comandos Utiles
    • Fliper Zero
    • Páginas útiles
  • Kali Set Up
Con tecnología de GitBook
En esta página
  • Componentes Principales:
  • Términos Adicionales:
  • Flujo de Autenticación:
  • Ejemplo práctico:
  • S4U (Service for User)
  1. Active Directory
  2. Teoria
  3. Kerberos

Funcionamiento de Kerberos

El protocolo Kerberos es un sistema de autenticación de red que utiliza criptografía de clave simétrica para proporcionar autenticación fuerte para las comunicaciones cliente-servidor. La versión más comúnmente utilizada es Kerberos V5, que está diseñada para funcionar en redes inseguras y proporcionar autenticación mutua entre el cliente y el servidor. Veamos los detalles del flujo de autenticación y los términos asociados:

Componentes Principales:

  1. Key Distribution Center (KDC): Es una instancia de confianza centralizada que provee los servicios AS y TGS.

  2. Authentication Service (AS): Es el servicio dentro del KDC que autentica a los usuarios y servicios y emite TGTs.

  3. Ticket Granting Service (TGS): Es otro servicio dentro del KDC que emite tickets de servicio para acceder a recursos después de que el cliente ha sido autenticado inicialmente por el AS.

  4. Ticket Granting Ticket (TGT): Es un "boleto" que el AS emite a los clientes cuando se autentican con éxito, que a su vez es utilizado para solicitar tickets de servicio del TGS.

Términos Adicionales:

  • Principal: En Kerberos, un principal es una entidad única (usuario o servicio) identificada por su nombre completo en el dominio.

  • Session Key: Es una clave criptográfica simétrica utilizada para cifrar y descifrar comunicaciones durante una sesión específica.

  • Pre-authentication: Es un proceso donde el cliente debe demostrar conocimiento de la contraseña antes de que el AS emita un TGT, para prevenir ataques de repetición.

  • Service Ticket: Es un ticket emitido por el TGS que permite al cliente acceder a un servicio en particular.

  • Realm: Es un dominio administrativo para Kerberos, generalmente corresponde a un dominio en una red.

Flujo de Autenticación:

  1. Pre-Autenticación:

    • El usuario inicia sesión en su cliente Kerberos proporcionando su identificador de usuario y contraseña.

    • El cliente Kerberos genera una clave de cifrado a partir de la contraseña del usuario y la utiliza para cifrar un timestamp, enviando este paquete al AS como parte de su AS_REQ.

  2. AS_REQ / AS_REP:

    • El AS valida la pre-autenticación y luego crea el TGT y una clave de sesión para el usuario.

    • El TGT está cifrado con la clave secreta del servicio TGS, y solo el TGS puede descifrarlo.

    • El AS envía de vuelta al cliente el TGT y la clave de sesión (AS_REP), cifrada con la clave generada a partir de la contraseña del usuario.

  3. TGS_REQ / TGS_REP:

    • Cuando el cliente necesita acceder a un servicio, cifra una solicitud con la clave de sesión y envía esta solicitud junto con el TGT al TGS.

    • El TGS descifra el TGT, verifica la validez y autenticidad de la solicitud y genera un ticket de servicio para el recurso solicitado, cifrado con la clave del servicio en cuestión.

  4. Acceso al Servicio:

    • El cliente recibe el ticket de servicio y la nueva clave de sesión asociada, y se conecta al servidor del recurso solicitado, enviando el ticket de servicio y una autenticación cifrada con la clave de sesión.

    • El servidor de recursos descifra el ticket de servicio, verifica la autenticidad de la autenticación del cliente y, si todo es correcto, permite el acceso.

Ejemplo práctico:

Supongamos que Bop quiere acceder a un servidor de archivos en su empresa:

  1. Bop ingresa su nombre de usuario y contraseña en su cliente Kerberos.

  2. El cliente solicita un TGT al AS pre-autenticándose con un timestamp cifrado.

  3. El AS valida la solicitud, crea un TGT y una clave de sesión, y los envía a Bop cifrados con su clave de contraseña.

  4. Bop desea acceder al servidor de archivos y envía un TGS_REQ al TGS, incluyendo el TGT y una solicitud cifrada con su clave de sesión.

  5. El TGS valida el TGT, crea un ticket de servicio para el servidor de archivos, y se lo envía a Bop.

  6. Bop accede al servidor de archivos presentando el ticket de servicio y su autenticación cifrada.

  7. El servidor valida el ticket y la autenticación, y permite a Bop acceder a los archivos.

Este proceso garantiza que solo usuarios autenticados y con los permisos correctos puedan acceder a los recursos protegidos en la red. Además, la autenticación mutua asegura tanto al cliente como al servidor que están comunicándose con las partes correctas.

S4U (Service for User)

S4U (Service for User) es un conjunto de extensiones Kerberos que incluye S4U2self y S4U2proxy, utilizadas en Active Directory para la delegación de credenciales:

  • S4U2self: Permite a un servicio obtener un ticket Kerberos para un usuario en específico, incluso si el usuario no ha iniciado sesión. Esto es útil para escenarios donde un servicio necesita actuar en nombre de un usuario.

  • S4U2proxy: Extiende la funcionalidad de S4U2self, permitiendo a un servicio usar un ticket obtenido a través de S4U2self para solicitar tickets adicionales para acceder a otros servicios en nombre del usuario.

En ataques de Active Directory, estas extensiones pueden ser explotadas para escalar privilegios o moverse lateralmente en una red. Por ejemplo, un atacante con control sobre una cuenta que puede utilizar S4U2proxy podría obtener acceso a servicios adicionales que están fuera de su alcance directo. Estos ataques requieren comprensión detallada de Kerberos y la configuración del Active Directory.

AnteriorKerberosSiguienteUsuarios por defecto

Última actualización hace 1 año

💾