Escalado de privilegios local vía CdpSvc

Connected Devices Platform Service (CDPSvc) es un servicio que se ejecuta como NT AUTHORITY\LOCAL SERVICE e intenta cargar la DLL cdpsgshims.dll faltante al inicio con una llamada a LoadLibrary(), sin especificar su ruta absoluta. Por lo tanto, se puede secuestrar la dll en la carpeta siguiendo el orden de búsqueda de Dlls (si tenemos permisos de escritura por supuesto) y obtendremos acceso al proceso o shell con NT AUTHORITY\LOCAL SERVICE. Luego, simplemente esto se puede combinar con la técnica PrintSpoofer de @itm4n para obtener acceso como NT AUTHORITY\SYSTEM.

Uso:
- Encontrar el SYSTEM PATH con permisos de escritura con acltest.ps1 (como C:\python27)
     C:\CdpSvcLPE> powershell -ep bypass ". .\acltest.ps1"
- Copiar cdpsgshims.dll en C:\python27
- Crear la carpeta C:\temp y copiar impersonate.bin dentro
     C:\CdpSvcLPE> mkdir C:\temp
    C:\CdpSvcLPE> copy impersonate.bin C:\temp

- Reiniciar (o detener/iniciar CDPSvc como administrador)
- Un prompt aparecerá con nt Authority\system. Después podremos parar el servicio cpdsvc y borrar la dll y el binario.

Repo: https://github.com/sailay1996/CdpSvcLPE

Fuentes:


Comentarios

  1. Alguien ha visto el fuente de https://github.com/sailay1996/CdpSvcLPE/raw/main/bin/impersonate.bin ?

    ResponderEliminar

Publicar un comentario