JuicyPotato
JuicyPotato не працює на Windows Server 2019 та Windows 10 версії 1809 і новіших. Однак, PrintSpoofer, RoguePotato, SharpEfsPotato можуть бути використані для отримання тих же привілеїв і доступу на рівні NT AUTHORITY\SYSTEM
. Перевірте:
Juicy Potato (зловживання золотими привілеями)
Цукрова версія RottenPotatoNG, з трохи соку, тобто інший інструмент для підвищення локальних привілеїв, з облікових записів служб Windows до NT AUTHORITY\SYSTEM
Ви можете завантажити juicypotato з https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts
Резюме
RottenPotatoNG та його варіанти використовують ланцюг підвищення привілеїв на основі BITS
сервісу, маючи MiTM слухача на 127.0.0.1:6666
, і коли у вас є привілеї SeImpersonate
або SeAssignPrimaryToken
. Під час огляду збірки Windows ми виявили налаштування, де BITS
був навмисно вимкнений, а порт 6666
був зайнятий.
Ми вирішили озброїти RottenPotatoNG: Привітайте Juicy Potato.
Для теорії дивіться Rotten Potato - Підвищення привілеїв з облікових записів служб до SYSTEM і слідкуйте за ланцюгом посилань і посилань.
Ми виявили, що, окрім BITS
, є кілька COM-серверів, які ми можемо зловживати. Вони просто повинні:
бути інстанційованими поточним користувачем, зазвичай "користувачем служби", який має привілеї імперсонації
реалізовувати інтерфейс
IMarshal
працювати як підвищений користувач (SYSTEM, Адміністратор, …)
Після деяких тестувань ми отримали та протестували розширений список цікавих CLSID на кількох версіях Windows.
Соковиті деталі
JuicyPotato дозволяє вам:
Цільовий CLSID виберіть будь-який CLSID, який ви хочете. Тут ви можете знайти список, організований за ОС.
COM порт прослуховування визначте COM порт прослуховування, який ви віддаєте перевагу (замість зашитого 6666)
IP-адреса прослуховування COM прив'яжіть сервер до будь-якої IP-адреси
Режим створення процесу в залежності від привілеїв імперсованого користувача ви можете вибрати з:
CreateProcessWithToken
(потрібенSeImpersonate
)CreateProcessAsUser
(потрібенSeAssignPrimaryToken
)обидва
Процес для запуску запустіть виконуваний файл або скрипт, якщо експлуатація успішна
Аргумент процесу налаштуйте аргументи запущеного процесу
Адреса RPC-сервера для прихованого підходу ви можете аутентифікуватися на зовнішньому RPC-сервері
Порт RPC-сервера корисно, якщо ви хочете аутентифікуватися на зовнішньому сервері, а брандмауер блокує порт
135
…РЕЖИМ ТЕСТУ в основному для тестування, тобто тестування CLSID. Він створює DCOM і виводить користувача токена. Дивіться тут для тестування
Використання
Final thoughts
Якщо у користувача є привілеї SeImpersonate
або SeAssignPrimaryToken
, то ви SYSTEM.
Майже неможливо запобігти зловживанню всіма цими COM-серверами. Ви можете подумати про зміну дозволів цих об'єктів через DCOMCNFG
, але удачі, це буде складно.
Фактичне рішення полягає в захисті чутливих облікових записів та програм, які працюють під обліковими записами * SERVICE
. Зупинка DCOM
безумовно завадить цій експлуатації, але може мати серйозний вплив на основну ОС.
З: http://ohpe.it/juicy-potato/
Examples
Note: Visit this page for a list of CLSIDs to try.
Get a nc.exe reverse shell
Powershell rev
Запустіть новий 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
Посилання
Last updated