Tal y como
describe Alejandro Hernando en su post de Linkedin, la investigación «Plug and Pwn» se basa en lo siguiente: al conectar un dispositivo USB a un equipo
Windows, el sistema operativo puede acceder a Windows Update, descargar un
paquete con certificación WHQL y ejecutar código del proveedor como
NT AUTHORITY\SYSTEM. Esto ocurre sin aviso de Control de cuentas de usuario (UAC), sin permisos de
administrador y sin que haya ningún usuario conectado.
Los investigadores
Alejandro Hernando
y Borja Martinez dedicaron aproximadamente
un año a este tema y analizaron cerca de 7.000 paquetes. Muchos de ellos
ejecutan código como SYSTEM durante la instalación, y parte de ese código
presenta problemas graves: tuberías con nombre abiertas a todos los usuarios,
secuestro de DLL y valores de depuración codificados.
La charla fue presentada en DEF CON 34 y, en su sitio web «Plug and Pwn» explican lo siguiente:
-
La cadena física. Un servicio de un proveedor expone una tubería con nombre
que modifica el DNS del equipo para cualquier usuario que lo solicite. La
utilizamos para que actúe como servidor de confianza para un paquete de otro
proveedor. Este paquete obtiene su configuración mediante HTTP sin cifrar y
escribe nuestra DLL en System32, y el primer paquete la carga. Windows 11
completamente actualizado, sin usuario conectado, con privilegios de SYSTEM,
sin clics». -
La conexión remota. La redirección USB de RDP crea el nodo del dispositivo a
partir de los descriptores que envía el cliente, y el servidor simplemente
los acepta. No es necesario que haya un dispositivo en el otro extremo.
Existe una puerta de enlace, un bit de política en el lado del servidor, por
lo que solo se ejecuta donde la redirección USB se ha activado
deliberadamente. Principalmente VDI gestionado. Desarrollamos un cliente RDP
en Python que simula una cámara USB sin hardware alguno, y un usuario
estándar con una sesión RDP termina con privilegios de SYSTEM.
Crearon la herramienta PNP simulate para reproducir el flujo de
instalación desde el modo de usuario, más una cadena que incluye dos
proveedores adicionales. Uno de sus servicios abre una consola interactiva de
SYSTEM cuando encuentra cuatro bytes específicos en un valor del registro. Un
usuario estándar no puede escribir allí, pero el otro paquete lo hace por él,
y coincidía con una vulnerabilidad CVE de 2019 y aún se instala correctamente.
Los autores, que brindaron su charla en DEF CON, publicaron artículos, videos
de demostración, herramientas y pruebas de concepto.
Fuente:
Plug and Pwn

