En el presente post se llevara a cabo la configuración de un entorno que se utilizará en explotaciones posteriores en el kernel de windows, además como demostración para proximas explotaciones donde se omita la instalación de otros drivers se instalara un driver cargandolo como servicio usando OsrLoader
en lugar de instalar la aplicación.
Virtual Machines
A diferencia de la explotación en modo usuario, para modo kernel ya que una máquina depura el kernel de la otra necesitaremos 2 máquinas virtuales:
• Debugger: Esta máquina será un Windows 10 x64 por defecto que se utilizará para depurar el kernel de la máquina depurada y así desarrollar el exploit.
• Debuggee: Esta máquina también será un Windows 10 x64 por defecto que se utilizará para depurar y explotar las vulnerabilidades en el driver.
Luego de instalar ambos windows deberiamos tener 2 máquinas, en este caso estan conectadas mediante un adaptador NAT y sus ips son:
• Debugger: 192.168.100.5
• Debuggee: 192.168.100.92
Debugger
Iniciemos con la máquina debugger, esta tendra instalado de primeras WinDbgX
que se puede instalar desde la Microsoft Store sin problemas, como herramientas adicionales podriamos incluiir IDA Free
para reversear el driver y Visual Studio
para desarrollar el exploit, sin embargo lo que mas nos interesa es el debugger
En la máquina que se va a depurar habilitaremos el modo debug y en los ajustes haremos que se conecte al debugger por el puerto 50000
con la key 1.1.1.1
C:\Windows\system32> bcdedit /debug on
La operación se completó correctamente.
C:\Windows\system32> bcdedit /dbgsettings net hostip:192.168.100.5 port:50000 key:1.1.1.1
Key=1.1.1.1
C:\Windows\system32>
En la máquina debugger ejecutaremos WinDbg y en la pestaña Attach to kernel
, añadimos el puerto y la key que especificamos antes en la máquina a depurar
Finalmente solo necesitamos reiniciar la máquina a depurar y automáticamente se conectara al debugger, podemos ejecutar g
para dejar que arranque con normalidad
Connected to target 192.168.100.5 on port 50000 on local IP 192.168.100.5.
You can get the target MAC address by running .kdtargetmac command.
Connected to Windows 10 19041 x64 target
Kernel Debugger connection established.
************* Path validation summary **************
Response Time (ms) Location
Deferred SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 10 Kernel Version 19041 MP (1 procs) Free x64
Edition build lab: 19041.1.amd64fre.vb_release.191206-1406
Kernel base = 0xfffff806`55800000 PsLoadedModuleList = 0xfffff806`5642a790
nt!DebugService2+0x5:
fffff806`55c07445 cc int 3
kd> g
Driver
Para finalizar solo nos queda instalar el driver, para ello usaremos OsrLoader, que se encuentra en la ruta kit\WNET\AMD64\FRE\
y una vez ahi seleccionamos el driver driver.sys
que vayamos a explotar, basta con hacer clic en los botones Register Service y Start Service para instalarlo creando un servicio del mismo nombre
Ahora solo verificamos que el driver se haya instalado conrrectamente y configuramos el servicio driver
para que inicie automaticamente con el sistema al encender
C:\Windows\system32> driverquery | findstr driver
driver driver Kernel 02/07/2019 14:18:56
C:\Windows\system32> sc config driver start=system
[SC] ChangeServiceConfig CORRECTO
C:\Windows\system32>
Con esta configuración tendriamos listo el entorno con ambas máquinas para explotar el driver, pero eso será en el siguiente post donde lo analizaremos poco a poco