JuicyPotato
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
JuicyPotatoは Windows Server 2019 および Windows 10 ビルド 1809 以降では動作しません。しかし、PrintSpoofer、 RoguePotato、 SharpEfsPotato を使用して 同じ特権を利用し、NT AUTHORITY\SYSTEM
レベルのアクセスを取得できます。 確認してください:
少しのジュースを加えた RottenPotatoNG の甘いバージョン、つまり Windows サービスアカウントから NT AUTHORITY\SYSTEM への別のローカル特権昇格ツール
RottenPotatoNG とその バリアント は、BITS
サービス に基づく特権昇格チェーンを利用し、127.0.0.1:6666
で MiTM リスナーを持ち、SeImpersonate
または SeAssignPrimaryToken
特権を持っている場合に機能します。Windows ビルドレビュー中に、BITS
が意図的に無効にされ、ポート 6666
が使用されている設定を見つけました。
私たちは RottenPotatoNG を武器化することに決めました: Juicy Potato にこんにちはを言いましょう。
理論については、Rotten Potato - サービスアカウントから SYSTEM への特権昇格 を参照し、リンクと参考文献のチェーンをたどってください。
私たちは、BITS
以外にも悪用できるいくつかの COM サーバーがあることを発見しました。これらは次の条件を満たす必要があります:
現在のユーザーによってインスタンス化可能であること、通常は偽装特権を持つ「サービスユーザー」
IMarshal
インターフェースを実装していること
高い権限のユーザー(SYSTEM、Administrator など)として実行されること
いくつかのテストの後、私たちは複数の Windows バージョンでの 興味深い CLSID のリスト を取得し、テストしました。
JuicyPotato を使用すると、次のことができます:
ターゲット CLSID 任意の CLSID を選択できます。 こちら で OS ごとに整理されたリストを見つけることができます。
COM リスニングポート 好みの COM リスニングポートを定義します(ハードコーディングされた 6666 の代わりに)
COM リスニング IP アドレス 任意の IP にサーバーをバインドします
プロセス作成モード 偽装されたユーザーの特権に応じて、次のいずれかを選択できます:
CreateProcessWithToken
(SeImpersonate
が必要)
CreateProcessAsUser
(SeAssignPrimaryToken
が必要)
両方
起動するプロセス エクスプロイトが成功した場合に実行する実行可能ファイルまたはスクリプト
プロセス引数 起動するプロセスの引数をカスタマイズします
RPC サーバーアドレス ステルスアプローチのために、外部 RPC サーバーに認証できます
RPC サーバーポート 外部サーバーに認証したい場合に便利で、ファイアウォールがポート 135
をブロックしている場合…
テストモード 主にテスト目的、つまり CLSID のテスト。DCOM を作成し、トークンのユーザーを表示します。 テスト用はこちら
ユーザーが SeImpersonate
または SeAssignPrimaryToken
権限を持っている場合、あなたは SYSTEM です。
これらのCOMサーバーの悪用を防ぐことはほぼ不可能です。これらのオブジェクトの権限を DCOMCNFG
を介して変更することを考えるかもしれませんが、うまくいくことは難しいでしょう。
実際の解決策は、* SERVICE
アカウントの下で実行される敏感なアカウントとアプリケーションを保護することです。DCOM
を停止することは確かにこのエクスプロイトを抑制しますが、基盤となるOSに深刻な影響を与える可能性があります。
出典: http://ohpe.it/juicy-potato/
注意: 試すためのCLSIDのリストはこちらのページを訪れてください。
多くの場合、JuicyPotatoが使用するデフォルトのCLSIDは機能しないため、エクスプロイトが失敗します。通常、動作するCLSIDを見つけるには複数の試行が必要です。特定のオペレーティングシステムで試すためのCLSIDのリストを取得するには、このページを訪問してください:
まず、juicypotato.exe以外のいくつかの実行可能ファイルが必要です。
Join-Object.ps1をダウンロードしてPSセッションにロードし、GetCLSID.ps1をダウンロードして実行します。そのスクリプトは、テストする可能性のあるCLSIDのリストを作成します。
次に、test_clsid.batをダウンロードし(CLSIDリストとjuicypotato実行可能ファイルへのパスを変更)、実行します。これにより、すべてのCLSIDを試し始め、ポート番号が変更されると、CLSIDが機能したことを意味します。
-cパラメータを使用して動作するCLSIDを確認してください
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)