Track Windows  /  Teoría
05 Vector · Servicios mal configurados

Servicios inseguros

Los servicios corren casi siempre como SYSTEM. Si puedes influir en QUÉ ejecuta un servicio (su binario, su ruta, su configuración o su DLL), cuando arranque te da SYSTEM. Es el vector más metódico y uno de los que más caen. Cinco sabores, todos con el mismo final.

📎1) Unquoted Service Path (ruta sin comillas)

Si el binario de un servicio tiene espacios y NO está entre comillas (ej.: C:\Program Files\Mi App\svc.exe), Windows prueba a ejecutar, en orden: C:\Program.exe, C:\Program Files\Mi.exe, etc. Si puedes ESCRIBIR en una de esas carpetas, plantas ahí tu Mi.exe y al reiniciar el servicio corre tu binario como SYSTEM.

1
Busca
wmic service get name,pathname,startmode | rutas con espacios y sin comillas.
2
Comprueba escritura
icacls "C:\Program Files\Mi App" -> ¿tienes (W) o (F)?
3
Planta y reinicia
copia tu payload como Mi.exe y reinicia el servicio (o espera un reboot).

⚙2) Permisos débiles del servicio (reconfigurarlo)

Si tu usuario tiene SERVICE_CHANGE_CONFIG sobre un servicio, puedes cambiar su binario directamente:

1
Detecta
PowerUp (Invoke-AllChecks) o accesschk.exe -uwcqv usuario * marca servicios modificables.
2
Reconfigura
sc config NOMBRE binPath= "C:\Windows\Temp\rev.exe" (ojo al espacio tras binPath=).
3
Reinicia
sc stop NOMBRE & sc start NOMBRE -> tu binario corre como SYSTEM.

📄3) Permisos débiles del BINARIO (reemplazarlo)

Aunque no puedas reconfigurar el servicio, si puedes escribir sobre su .exe, lo sustituyes por el tuyo:

1
Comprueba
icacls C:\ruta\al\servicio.exe -> ¿(M)/(F) para tu usuario o un grupo tuyo?
2
Reemplaza
copia de seguridad del original, pon tu payload con el mismo nombre.
3
Dispara
reinicia el servicio / espera reboot -> SYSTEM.

🔑4) Permisos débiles en el REGISTRO del servicio

La config de cada servicio vive en HKLM\SYSTEM\CurrentControlSet\Services\NOMBRE. Si tienes escritura sobre esa clave, cambias ImagePath a tu binario, igual que con sc config pero por el registro.

1
Comprueba
Get-Acl HKLM:\SYSTEM\CurrentControlSet\Services\NOMBRE o PowerUp.
2
Modifica ImagePath
reg add HKLM\...\NOMBRE /v ImagePath /t REG_EXPAND_SZ /d "C:\...\rev.exe" /f.
3
Reinicia
-> SYSTEM.

🧩5) DLL hijacking en un servicio

Si un servicio carga una DLL que no existe o que está en una carpeta donde puedes escribir, colocas tu DLL maliciosa con ese nombre y la carga como SYSTEM. (Más detalle en el módulo de Path/DLL hijacking.)

"sc config dice Access Denied"
No tienes SERVICE_CHANGE_CONFIG sobre ese servicio. Prueba reemplazar el binario, el registro, o busca otro servicio. accesschk/PowerUp te dicen CUÁLES puedes tocar.
"Puse mi binario pero el servicio no arranca / da error 1053"
Tu payload debe comportarse como un servicio o salir rápido; usa un exe que lance la shell y termine, o un service-exe de msfvenom. El 1053 es 'no respondió a tiempo': lanza la reverse shell en un hilo/proceso aparte.
"No puedo reiniciar el servicio (no tengo permiso de stop/start)"
Mira su StartMode: si es Auto, un reboot lo reinicia. A veces puedes forzarlo por otra vía (dependencias, o esperar su reinicio programado).
🔎 No memorices comandos. Ten el Arsenal abierto en otra pestaña y busca ahí el comando exacto cuando lo necesites. Entiende el POR QUÉ aquí; el COMANDO lo copias del Arsenal.
Abrir Arsenal