Ir ao contido

Laboratorio Vulnerable de Active Directory (VULN-HE.LAB) con Packer

Repositorio vuln-he.lab

git clone https://github.com/ricardofc/vuln-he.lab.git
cd vuln-he.lab

Este proxecto automatiza con Packer e PowerShell a creación dun Controlador de Dominio Windows Server 2019 intencionadamente vulnerable. O obxectivo é dispoñer dun contorno didáctico e realista para practicar técnicas de Red Team / Pentesting Active Directory, cubrindo todo o ciclo do ataque, incluíndo persistencia avanzada en Kerberos.

Idioma do Sistema: Español (es-ES)

Aviso Legal e de Seguridade

NON EXPOÑAS ESTA MÁQUINA A INTERNET.
Este sistema ten o firewall desactivado, antivirus desactivado, protocolos inseguros habilitados e contrasinais débiles. Úsaa unicamente nunha rede illada (Host-Only / NAT Network illada).

O autor do presente documento declina calquera responsabilidade asociada ao uso incorrecto e/ou malicioso que puidese realizarse coa información exposta no mesmo. Por tanto, non se fai responsable en ningún caso, nin pode ser considerado legalmente responsable en ningún caso, das consecuencias que poidan derivarse da información contida nel ou que estea enlazada dende ou hacia el, incluíndo os posibles erros e información incorrecta existentes, información difamatoria, así como das consecuencias que se poidan derivar sobre a súa aplicación en sistemas de información reais e/ou virtuais. Este documento foi xerado para uso didáctico e debe ser empregado en contornas privadas e virtuais controladas co permiso correspondente do administrador desas contornas.

Credenciais e Acceso

  • Dominio: VULN-HE.LAB (NetBIOS: VULN-HE)
  • DC IP: 192.168.56.100 (Estática)
  • Credenciais de Dominio:
Usuario Contrasinal Rol / Vulnerabilidade Clave Acceso Viable Utilidade
Administrador abc123. Domain Admin (LLMNR Poisoning) Game Over - Control total
brais.t iloveyou Backup Operator (SeBackupPrivilege → DA) Escalada crítica - Dump NTDS
maria.g dragon Potato Attack (SeImpersonatePrivilege → SYSTEM) Escalada crítica - SYSTEM vía Potato
nopreauth.user AsrepMePlease123 AS-REP Roasting (Sen pre-autenticación) ⚠️ Demostración - Hash non crackeable facilmente
svc_sql SvcPassw0rdKerb! Kerberoasting (SPN MSSQL) + Silver Ticket ⚠️ Persistencia crítica - Silver Ticket (10 anos)
helpdesk.user HelpDeskP@ss1 Abuso de ACLs sobre maria.g (vía rpcclient) Movemento lateral - GenericAll sobre maria.g
krbtgt N/A Conta de servizo KDC N/A Persistencia MÁXIMA - Golden Ticket (10 anos)

Lenda:
- ✅ Acceso directo viable (password spraying ou LLMNR)
- ⚠️ Acceso indirecto (require compromiso previo para obter hash/contrasinal)
- N/A Non aplicable (conta de sistema, non de acceso directo)

Vulnerabilidades Implementadas

1. Fase 1-3: Recopilación, Análise e Explotación

Rede e Protocolos:

  • LLMNR/NBT-NS Poisoning: Tráfico xerado automaticamente por unha tarefa programada do Administrador.
  • SMBv1 & Signing Disabled: Permite ataques de NTLM Relay.
  • Firewall & Defender: Desactivados.

Kerberos:

  • AS-REP Roasting: Usuario nopreauth.user sen pre-autenticación.
  • Kerberoasting: Usuario svc_sql con SPN asociado e servizo SQL real instalado.

Password Spraying:

  • Contrasinais débiles en brais.t e maria.g (presentes en rockyou.txt).

2. Fase 4: Post-Explotación e Escalada de Privilexios

Privilexios Windows:

  • SeBackupPrivilege: Usuario brais.t pode ler NTDS.dit e SAM.
  • SeImpersonatePrivilege: Usuario maria.g vulnerable a ataques tipo Potato.

ACLs Débiles:

  • GenericAll ACL: Grupo HelpDesk (usuario helpdesk.user) ten control total sobre maria.g.
  • Explotación viable: Mediante rpcclient desde Linux (cambio remoto de contrasinal sen necesidade de shell).

3. Fase 5: Persistencia Avanzada (Kerberos)

Silver Ticket (Persistencia por Servizo):

  • Conta obxectivo: svc_sql (Hash NTLM: ad2896ecfb9b443720bab09bb020f852)
  • SPN: MSSQLSvc/VULN-DC-01.vuln-he.lab:1433
  • Capacidades:
    • Forxado de TGS para MSSQL válido 10 anos
    • Acceso persistente como Administrador ao servizo SQL
    • Execución remota vía xp_cmdshell
    • Escalada a SYSTEM mediante SeImpersonatePrivilege
  • Invalidación: Cambiar contrasinal de svc_sql

Golden Ticket (Persistencia Total de Dominio):

  • Conta crítica: krbtgt (Hash NTLM: f8d660354307503cae5a4a735d110da0)
  • Capacidades:
    • Forxado de TGT válido para TODO o dominio durante 10 anos
    • Acceso ilimitado a calquera recurso/servizo
    • Non require comunicación co KDC
    • Practicamente indetectable
  • Invalidación: Resetar contrasinal de krbtgt DÚAS veces consecutivas

Despregamento

1. Requisitos Previos (Descargas)

Debido ás restricións de descarga automática, debes descargar manualmente o instalador de SQL Server e colocalo no directorio raíz do proxecto antes de executar Packer.

  1. Windows Server 2019 ISO: Microsoft Evaluation Center
  2. SQL Server 2019 Express (Inglés - Offline Installer):
    Debes obter o ficheiro SQLEXPR_x64_ENU.exe (aprox. 250MB).
    Para iso:
    1. Usa un ordenador con Windows
    2. Descarga o instalador web oficial (pequeno): SQL2019-SSEI-Expr.exe.
    3. Execútao
    4. Na xanela que se abre:
      • Selecciona "Download Media" (Descargar medios).
      • Selecciona paquete Express Core.
      • Selecciona idioma English.
      • Escolle o cartafol onde gardalo.
    5. Cando remate, terás o ficheiro SQLEXPR_x64_ENU.exe. Móveo ao cartafol do teu proxecto Packer (vía USB, cartafol compartido, scp, etc.).

2. Construción da Imaxe

  1. Edita windows2019.pkr.hcl coa ruta e checksum da túa ISO de Windows Server 2019.
  2. Asegúrate de que SQLEXPR_x64_ENU.exe está no mesmo cartafol.
  3. Executa:
    packer init .
    packer build .
    

3. Importación e Configuración Final

  1. Importa a VM resultante (VULN-DC-01.ovf) en VirtualBox.

    $ tree output-autogenerated_1
    output-autogenerated_1
    ├── VULN-DC-01-disk001.vmdk
    └── VULN-DC-01.ovf
    

  2. IMPORTANTE: Antes de arrincar a máquina, comproba a configuración de rede en VirtualBox:

    • Adaptador 1:
      • Conectado: "Host-Only Adapter" (Adaptador só anfitrión)
      • Nome: vboxnet0
  3. Arrinca a máquina. A IP estará configurada estaticamente en 192.168.56.100

Rutas de Ataque Principais

Acceso Inicial (Fases 1-3)

  1. Ruta Rápida (Poisoning): Responder → Crack hash Admin (abc123.) → Domain Admin
  2. Ruta Password Spraying: Rockyou.txt → brais.t ou maria.g → Shell WinRM

Escalada de Privilexios (Fase 4)

  1. Ruta SeBackup (brais.t): SeBackupPrivilege → Dump SAM/NTDS → Pass-the-Hash → Domain Admin
  2. Ruta Potato (maria.g): SeImpersonatePrivilege → SigmaPotato → SYSTEM
  3. Ruta ACLs (helpdesk.user): rpcclient → Cambio contrasinal maria.g → Potato → SYSTEM

Persistencia Avanzada (Fase 5)

  1. Silver Ticket (svc_sql): Hash NTLM → Forxar TGS → Acceso persistente MSSQL (10 anos)
  2. Golden Ticket (krbtgt): Hash NTLM → Forxar TGT → Control total dominio (10 anos)