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.
wmic service get name,pathname,startmode | rutas con espacios y sin comillas.icacls "C:\Program Files\Mi App" -> ¿tienes (W) o (F)?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:
accesschk.exe -uwcqv usuario * marca servicios modificables.sc config NOMBRE binPath= "C:\Windows\Temp\rev.exe" (ojo al espacio tras binPath=).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:
icacls C:\ruta\al\servicio.exe -> ¿(M)/(F) para tu usuario o un grupo tuyo?🔑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.
Get-Acl HKLM:\SYSTEM\CurrentControlSet\Services\NOMBRE o PowerUp.reg add HKLM\...\NOMBRE /v ImagePath /t REG_EXPAND_SZ /d "C:\...\rev.exe" /f.🧩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.)