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:
- http://zeifan.my/security/eop/2019/11/05/windows-service-host-process-eop.html
- https://itm4n.github.io/cdpsvc-dll-hijacking/
- https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/
- https://github.com/itm4n/PrintSpoofer
- https://gist.github.com/wdormann/eb714d1d935bf454eb419a34be266f6f
Escalada.
ResponderEliminarAlguien ha visto el fuente de https://github.com/sailay1996/CdpSvcLPE/raw/main/bin/impersonate.bin ?
ResponderEliminar