
CVE-2020-0665(別名 SID Filter Bypass)の概念実証コード
Active Directoryフォレスト(クロスフォレスト攻撃)におけるSIDフィルタリングをバイパスするCVE-2020-0665の概念実証。
SYSTEMユーザーとしての高い権限が必要です)。双方向の推移的信任関係が確立されていること。python2.7がインストールされており、侵害された信頼フォレスト内にfridaライブラリ(pip2 install frida)がインストールされていること。追記:python3ではテストしていませんが、動作するかもしれません。contoso.localを侵害した場合、子ドメインchild.contoso.localが必要です。test.local(侵害したドメインcontoso.localとの間に双方向の推移的信任がある)がある場合、SQL.test.local、DEV.test.local、MSSQL01.test.localなどのワークステーションが必要です。ワークステーションとしてDCを使用すると攻撃は機能しません。lsass.exe。NetLogon呼び出しNetrGetForestTrustInformationを実行する必要があります。これは24時間ごとに発生するため、忍耐が必要です。スクリプトに子SIDとローカルSID(ワークステーション)を渡します。スクリプトはfrida_intercept.pyの一部を使用して、プロセス名またはPIDでプロセスをインターセプトおよびフックします。このスクリプトはpython2.7でテストされていますが、python3でも動作する可能性があります(どちらもそれぞれのソフトウェアにfridaライブラリがインストールされている必要があります)。
侵害されたドメインコントローラ上でnt authority/systemとしてシェルを開き、以下を実行します:
python .\CVE-2020-0665.py --process <フックするプロセス> --child-sid <子SID> --local-sid <ローカルSID>
例:
python .\CVE-2020-0665.py --child-sid S-1-5-21-3878752286-62540090-653003637 --local-sid S-1-5-21-2327345182-1863223493-3435513819 -p lsass.exe -v
これにより、現在制御下にあるActive Directoryフォレスト内の子ドメインSID(S-1-5-21-3878752286-62540090-653003637)によって、ワークステーションのターゲットSID(S-1-5-21-2327345182-1863223493-3435513819)が変更されます。
[!WARNING] これにより、被害ワークステーションのSIDが変更されます。攻撃を実行する前にすべてのSID値を保存し、後で復元できるようにしてください。
この攻撃の詳細については、攻撃の続行方法(例えば、ExtraSid攻撃によるゴールデンチケットの偽造)を説明するこのブログを参照してください。
倫理的な目的のために。常に倫理的でありましょう (: