
Подслащенная версия RottenPotatoNG, с небольшим соком, т.е. еще один инструмент для локального повышения привилегий от учетных записей служб Windows до NT AUTHORITY\SYSTEM.
Подслащенная версия RottenPotatoNG с небольшим соком, т.е. еще один инструмент локального повышения привилегий от учётных записей служб Windows до NT AUTHORITY\SYSTEM
RottenPotatoNG и его вариации используют цепочку повышения привилегий, основанную на BITS службе, имеющей MiTM-слушатель на 127.0.0.1:6666, и когда у вас есть привилегии SeImpersonate или SeAssignPrimaryToken. Во время проверки сборки Windows мы обнаружили конфигурацию, где BITS был намеренно отключен, а порт 6666 был занят.
Мы решили вооружить RottenPotatoNG: Познакомьтесь с Juicy Potato.
Теорию см. в Rotten Potato - Privilege Escalation from Service Accounts to SYSTEM и следуйте цепочке ссылок и источников.
Мы обнаружили, что помимо BITS существует несколько COM-серверов, которыми можно злоупотребить. Им достаточно:
IMarshalПосле некоторых тестов мы получили и протестировали обширный список интересных CLSID на нескольких версиях Windows.
JuicyPotato позволяет:
Целевой CLSID
выберите любой CLSID. Здесь вы найдете список, упорядоченный по ОС.
Порт прослушивания COM
задайте предпочитаемый порт прослушивания COM (вместо жестко заданного 6666)
IP-адрес прослушивания COM
привяжите сервер к любому IP
Режим создания процесса
в зависимости от привилегий олицетворенного пользователя можно выбрать:
CreateProcessWithToken (требуется SeImpersonate)CreateProcessAsUser (требуется SeAssignPrimaryToken)both (оба)Запускаемый процесс
запустите исполняемый файл или скрипт при успешной эксплуатации
Аргументы процесса
настройте аргументы запускаемого процесса
Адрес RPC-сервера
для скрытного подхода можно аутентифицироваться на внешнем RPC-сервере
Порт RPC-сервера
полезно, если вы хотите аутентифицироваться на внешнем сервере, а брандмауэр блокирует порт 135...
Режим ТЕСТ
в основном для целей тестирования, например, проверки CLSID. Создает DCOM и выводит пользователя токена. См.
T:\>JuicyPotato.exe
JuicyPotato v0.1
Обязательные аргументы:
-t вызов createprocess: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> попробовать оба
-p <program>: программа для запуска
-l <port>: порт прослушивания COM-сервера
Необязательные аргументы:
-m <ip>: адрес прослушивания COM-сервера (по умолчанию 127.0.0.1)
-a <argument>: аргумент командной строки для передачи программе (по умолчанию NULL)
-k <ip>: IP-адрес RPC-сервера (по умолчанию 127.0.0.1)
-n <port>: порт прослушивания RPC-сервера (по умолчанию 135)
-c <{clsid}>: CLSID (по умолчанию BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
-z только проверить CLSID и вывести пользователя токена

Если пользователь имеет привилегии SeImpersonate или SeAssignPrimaryToken, то вы SYSTEM.
Предотвратить злоупотребление всеми этими COM-серверами практически невозможно. Можно попробовать изменить разрешения этих объектов через DCOMCNFG, но удачи, это будет непросто.
Реальное решение — защита чувствительных учётных записей и приложений, которые работают под учётными записями * SERVICE.
Отключение DCOM безусловно подавит эту эксплуатацию, но может серьезно повлиять на работу базовой ОС.
Доступна автоматическая сборка. Бинарные файлы можно загрузить из раздела Artifacts здесь.
Также доступно в BlackArch.