Сугаренная версия Rottenpotatong, с небольшим количеством сока, то есть еще один локальный инструмент эскалации привилегий, от учетных записей услуг Windows до NT Authority System
Rottenpotatong и его варианты используют цепочку эскалации привилегий на основе службы BITS , имеющая слушателя MITM на 127.0.0.1:6666 , и когда у вас есть привилегии SeImpersonate или SeAssignPrimaryToken . Во время обзора сборки Windows мы обнаружили установку, где BITS были намеренно отключены, и был взят порт 6666 .
Мы решили вооружить Rottenpotatong: поздороваться с Juicy Potato .
Теорию см. В гнилой картофеле - привилегированная эскалация от счетов обслуживания в систему и следуйте цепочке ссылок и ссылок.
Мы обнаружили, что, кроме BITS , мы можем злоупотреблять несколькими COM -серверами. Им просто нужно:
IMarshalПосле некоторого тестирования мы получили и протестировали обширный список интересных CLSID в нескольких версиях Windows.
Juicypotato позволяет:
Цель CLSID
Выберите любой CLSID, который вы хотите. Здесь вы можете найти список, организованный ОС.
Com прослушивание порта
Определите Com прослушивания, который вы предпочитаете (вместо маршалированного жестко -кодированного 6666)
Com прослушивание IP -адрес
Свяжите сервер на любом IP
Режим создания процесса
В зависимости от привилегий выданного пользователя вы можете выбрать:
CreateProcessWithToken (нуждается SeImpersonate )CreateProcessAsUser (нужен SeAssignPrimaryToken )both Процесс запуска
запустить исполняемый файл или сценарий, если эксплуатация успешна
Процесс аргумент
Настройка запускаемых аргументов процесса
Адрес сервера RPC
Для скрытного подхода вы можете аутентифицировать на внешний сервер RPC
Порт сервера RPC
Полезно, если вы хотите аутентифицировать на внешний сервер, а брандмауэр блокирует порт 135 ...
Тестовый режим
В основном для тестирования, т.е. тестирование 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)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
-z only test CLSID and print token's user

Если у пользователя есть привилегии SeImpersonate или SeAssignPrimaryToken , то вы являетесь системой .
Практически невозможно предотвратить злоупотребление всеми этими COM -серверами. Вы можете подумать, чтобы изменить разрешения этих объектов через DCOMCNFG но удачи, это будет сложно.
Фактическое решение состоит в том, чтобы защитить чувствительные учетные записи и приложения, которые работают в соответствии с * SERVICE . Остановка DCOM , безусловно, препятствует этому эксплойту, но может оказать серьезное влияние на основную ОС.
Автоматическая сборка доступна. Двоичные файлы могут быть загружены из раздела артефактов здесь.
Также доступен в Blackarch.