Windows Privilege Escalation - Técnicas y Herramientas

🎯 Objetivo

Escalar privilegios en el sistema Windows aprovechando una tarea programada que ejecuta un script PowerShell (backupprep.ps1) con permisos de Administrador, al cual tenemos acceso de lectura y escritura.


⚙️ Contexto

Durante la fase de vulnerability assessment, confirmamos:

Esto nos permite inyectar código malicioso en un proceso legítimo de automatización del sistema.


🧩 Opciones de Escalada de Privilegios

💡 Posibles técnicas:

  1. 🧠 Code Injection – Modificar el script para añadir un usuario al grupo de administradores o ejecutar una reverse shell.

  2. 🔐 Credential Harvesting – Usar el script para recolectar credenciales o registrar teclas.

  3. ♻️ Persistence – Añadir código que cree una nueva tarea programada que mantenga acceso.

  4. 🔑 Password Reset – Cambiar la contraseña del administrador y abrir sesión RDP.

Cada enfoque depende de los permisos disponibles y los mecanismos de ejecución del script.


👤 Verificando el Usuario Actual

Antes de realizar cambios, confirmamos los grupos locales del usuario john:

net user john

📄 Resultado:

Pasted image 20251006190208.png

🧩

El usuario john aún no pertenece al grupo Administrators, por lo que cualquier acción que requiera privilegios elevados está restringida.


⏰ Analizando la Tarea Programada

Desde una sesión RDP, abrimos el Task Scheduler con:

[WIN + R] → taskschd.msc
{F8A3BB0B-4823-4DF8-BAD9-4171E209271F}.png
📅 Tarea relevante:

Tip

Esto significa que cada 2 minutos, Windows ejecuta el script con privilegios administrativos.
Si el script está comprometido, cualquier código agregado se ejecutará como Administrator 🧨.


💥 Inyección de Código

Abrimos el script vulnerable con Notepad:

notepad .\backupprep.p

Agregamos la siguiente línea al final del archivo:
{18F7F6D4-6582-4E9E-9249-E981A9B220BE}.png

Add-LocalGroupMember -Group "Administrators" -Member "WIN01\john"
⚠️

Esta línea añade el usuario john al grupo Administrators cada vez que el script se ejecuta.
Además, actúa como persistencia, ya que si el usuario es removido, el script lo volverá a añadir en el siguiente ciclo de ejecución.


🕐 Ejecución Automática

Esperamos 2 minutos para permitir que la tarea programada se ejecute.

Luego verificamos nuevamente los grupos del usuario:

PS C:\Users\john> net user john

📋 Nuevo resultado:

Pasted image 20251006190952.png

Éxito:

El usuario john ahora pertenece al grupo Administrators.
Esto confirma que el script fue ejecutado por la tarea programada y que el código inyectado se corrió con privilegios elevados.


🔓 Verificación de Acceso

Podemos validar el privilegio accediendo a directorios restringidos, como:

PS C:\> cd C:\Users\Administrator

Check

Si el acceso es exitoso, confirmamos que el usuario john posee permisos administrativos efectivos.


🧠 Resumen de la Escalada

Paso Descripción
🔍 1 Identificamos que el script backupprep.ps1 se ejecuta con privilegios de Administrator
🧾 2 Confirmamos permisos de lectura/escritura sobre el script
🧩 3 Inyectamos una línea que añade el usuario john al grupo Administrators
⏱️ 4 Esperamos la ejecución automática de la tarea programada
🧑‍💻 5 Verificamos que john ahora pertenece al grupo Administrators
🔐 6 Confirmamos acceso administrativo al sistema

⚙️ Alternativa: Ejecución vía Meterpreter

🧰

Si contamos con una sesión Meterpreter, podemos realizar los mismos pasos sin RDP:

meterpreter > upload backupprep.ps1 meterpreter > shell C:\> powershell Add-LocalGroupMember -Group "Administrators" -Member "WIN01\john"

Esto logra el mismo resultado, automatizando la escalada directamente desde la shell de post-explotación.


🧾 Conclusión

🏁 Resumen Final

  • Se explotó una tarea programada insegura que ejecutaba código con privilegios administrativos.

  • El script backupprep.ps1 era modificable por usuarios estándar.

  • Se inyectó una instrucción PowerShell que otorgó privilegios de Administrador al usuario john.

  • Se confirmó el éxito mediante verificación de grupo y acceso a rutas protegidas.

🚀 Resultado: Privilegios elevados y control total del sistema Windows.