JuicyPotato
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する: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)