• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Повышение привилегий с помощью сторонних установщиков Windows

propensity

HDD-drive
Пользователь
Регистрация
02.02.2023
Сообщения
40
Реакции
19
Оригинал: Escalating Privileges via Third-Party Windows Installers
Перевод от propensity для xss.pro

Представьте себе, что вы наконец-то проникли за периметр строго охраняемой организации. Вы чувствуете себя вполне довольным собой, пока не осознаете, что обладаете правами Active Directory («Активный каталог», AD) только что принятого на работу стажера, и восторг понемногу начинает рассеиваться. Однако, с помощью некоторых хитроумных приемов, вы, возможно, сможете подняться по корпоративной лестнице и получить повышение привилегий до SYSTEM. Добро пожаловать в игру на эскалацию привилегий с высокими ставками!

Для специалистов "красных команд" атаки с повышением привилегий могут быть двух видов: повышение привилегий в домене и локальное повышение привилегий. Атаки с повышением привилегий в домене направлены на использование неправильных конфигураций и уязвимостей Active Directory или облака. К таким атакам относятся Kerberoasting, перечисление файловых ресурсов, а также небезызвестная уязвимость Zerologon (CVE-2020-1472). Учитывая распространенность неправильных конфигураций Active Directory в современных сетях, атаки с повышением привилегий домена - это первое, на что обращают внимание "красные команды", закрепившись во внутренней сети. Но что происходит, когда традиционное повышение привилегий в домене терпит неудачу? Зачастую единственным выходом для "красных команд" является локальное повышение привилегий, и иногда для этого приходится сделать пару шагов назад и поискать эти уязвимости, связанные с повышением привилегий.

Атаки с локальным повышением привилегий направлены на повышение привилегий обычного пользователя в системе до уровня привилегий локального администратора. Такие атаки могут включать в себя эксплуатацию небезопасных разрешений на использование сервисов или небезопасных разрешений на использование файлов. В отличие от атак с повышением привилегий в домене, многие специалисты «красных команд» упускают из виду атаки с локальным повышением привилегий. Это объясняется тем, что пути повышения привилегий в домене обычно более эффективны и ими легче воспользоваться. Однако, успешная эксплуатация локальной системы может привести к более серьезным атакам на уровне домена. Это было продемонстрировано в исследованиях неправильной конфигурации служб сертификатов Active Directory (AD CS) и восстановления учетных данных учетной записи сетевого доступа (NAA) Microsoft System Center Configuration Manager (SCCM). В конце концов, это интернет, и здесь все взаимосвязано.

В этом блоге мы расскажем о том, как "красная команда" Mandiant исследует и эксплуатирует уязвимости нулевого дня в сторонних установщиках Windows, что должны делать разработчики ПО, чтобы снизить риск эксплуатации, а также представим новый инструмент для упрощения перечисления кэшированных файлов Microsoft Software Installer (MSI): msi_search.

Общие сведения об установщике Microsoft Software Installer​

MSI-файлы представляют собой файлы баз данных, содержащие данные и инструкции по установке и удалению программного обеспечения в операционных системах Windows. Организации обычно используют MSI-файлы из-за их стандартизованного формата, который позволяет легко управлять установкой, обслуживанием и удалением программного обеспечения. Файлы MSI также обеспечивают гибкость разработчикам программного обеспечения, позволяя им выполнять дополнительный код во время установки, удаления или восстановления с помощью Custom Actions (пользовательских действий). Эти действия позволяют разработчикам настраивать процесс установки и выполнять определенные задачи по мере необходимости.

При установке программного обеспечения с помощью MSI-файлов Windows кэширует их в папке C:\Windows\Installer, используя произвольные имена файлов, состоящие из буквенно-цифровых символов и расширения ".msi". Это позволяет обычным пользователям получить доступ к функции "восстановление", предназначенной для решения различных проблем, таких как отсутствие файлов, неработающие ярлыки, неправильные записи в реестре и другие программные сбои. При восстановлении MSI некоторые операции, такие как создание или выполнение файлов, могут быть запущены из контекста NT AUTHORITY\SYSTEM, даже если они инициированы обычным пользователем.

Возможные злоупотребления​

Возможность инициировать операцию из контекста NT AUTHORITY\SYSTEM может представлять потенциальный риск для безопасности при отсутствии надлежащего управления. Например, неправильно настроенные пользовательские действия, выполняемые от имени NT AUTHORITY\SYSTEM, могут быть использованы злоумышленниками для выполнения атак с локальным повышением привилегий. Одна из таких ошибок связана с выполнением файловых операций в папке, где стандартные пользователи имеют права на запись. Это позволяет злоумышленникам модифицировать файлы, используемые NT AUTHORITY\SYSTEM, что дает им возможность запускать произвольный код и повышать свои привилегии.

Для анализа и мониторинга файловых операций в системе Windows можно использовать программу Microsoft Process Monitor (ProcMon). Чтобы отфильтровать результаты и сосредоточиться только на файловых операциях процесса NT AUTHORITY\SYSTEM, выполняемого в папке, где стандартные пользователи имеют права на запись, мы настроим фильтры ProcMon, приведенные на рис. 1. Важно отметить, что стандартные пользователи имеют права на запись в системные папки C:\Windows\Temp и C:\ProgramData и иногда могут иметь чрезмерные привилегии на их подпапки из-за наследования прав. Поэтому эти пути также следует учитывать при настройке фильтров.

1690374646466.png

Рисунок 1. Фильтры ProcMon для анализа небезопасных файловых операций из NT AUTHORITY\System

После настройки восстановление MSI можно запустить с помощью Windows Installer API или путем выполнения команды "msiexec.exe /fa C:\Windows\Installer\[XXXXX].msi".

Анализ CVE-2023-26077​

В данном примере мы проанализируем MSI установщик Atera agent 1.8.3.6 с помощью вышеупомянутых фильтров ProcMon. Запустив функцию восстановления MSI, мы видим, что файл AgentPackageUpgradeAgent.exe выполняется от имени NT AUTHORITY\SYSTEM из папки C:\Windows\Temp\AteraUpgradeAgentPackage, как показано на рис. 2. Более того, мы видим, что процесс пытается загрузить недостающие файлы библиотек динамической компоновки (DLL) из той же папки. Из-за того, что стандартные пользователи имеют права на запись в C:\Windows\Temp\AteraUpgradeAgentPackage, который содержит права, унаследованные от C:\Windows\Temp, функция восстановления установщика MSI уязвима для атаки с локальным повышением привилегий, которая может быть использована путем перехвата DLL.

1690374853737.png

Рисунок 2: Процесс, пытающийся загрузить отсутствующие библиотеки DLL

1690374933272.png

Рисунок 3: Разрешения папки AteraUpgradeAgentPackage

Чтобы воспользоваться уязвимостью, достаточно поместить в папку C:\Windows\Temp\AteraUpgradeAgentPackage полезную нагрузку в виде одной из отсутствующих DLL, например CRYPTSP.dll, а затем запустить восстановление MSI, чтобы получить командную строку от имени NT AUTHORITY\SYSTEM.

1690375106709.png

Рисунок 4: Локальное повышение привилегий с помощью перехвата DLL

Анализ CVE-2023-26078​

Еще одной заслуживающей внимания неправильной конфигурацией, связанной с пользовательскими действиями, является выполнение системных команд, которые запускают Windows Console Host (conhost.exe) в качестве дочернего процесса. Процесс conhost.exe отвечает за размещение и управление окнами консоли в операционных системах Windows. При запуске процесса, дочерним процессом которого является conhost.exe, открывается командное окно, которое, при условии выполнения с повышенными привилегиями, может быть использовано злоумышленником для проведения атаки с локальным повышением привилегий.

В случае с установщиком Windows компании Atera, функция восстановления запускает net.exe и taskkill.exe от имени NT AUTHORITY\SYSTEM, оба из которых порождают conhost.exe в качестве дочернего процесса. Это действие вызывает кратковременное появление командного окна, которое можно заморозить, быстро выделив мышью часть окна, как показано на рис. 6.

1690375224595.png

Рисунок 5: Взаимосвязь родительского и дочернего процессов net.exe

1690375266029.png

Рисунок 6: Приостановка выполнения net.exe путем выделения части командного окна с помощью мыши

Обратившись к "Свойствам" командного окна, злоумышленник может получить доступ к нескольким гиперссылкам, с помощью которых можно открыть веб-браузер от имени NT AUTHORITY\SYSTEM. Важно отметить, что учетная запись NT AUTHORITY\SYSTEM по умолчанию не имеет веб-браузера, настроенного на открытие гиперссылок. Поэтому злоумышленнику предоставляется возможность выбора браузера, как показано на рис. 7. После выбора веб-браузера оставшиеся шаги для атаки с локальным повышением привилегий включают открытие меню Print; печать веб-страницы в PDF для запуска File Explorer; и, наконец, выполнение Command Prompt от имени NT AUTHORITY\SYSTEM.

1690375305646.png

Рисунок 7: Открытие гиперссылок с помощью выбранного веб-браузера

1690375377398.png

Рисунок 8: Открытие командной строки через веб-браузер

Программный поиск файлов MSI​

«Красная команда» Mandiant обнаружила множество подобных уязвимостей в сторонних установщиках Windows, которые впоследствии были использованы в ходе оценивания, проведенного «красной команды». Однако, определение того, какие файлы MSI соответствуют тому или иному программному обеспечению, может оказаться утомительной задачей, поскольку Windows кэширует файлы MSI со случайными буквенно-цифровыми символами. Чтобы упростить эту задачу, специалисты Mandiant создали объектные файлы Beacon (Beacon Object Files, BOF) и сценарий PowerShell, находящийся в msi_search, для чтения и вывода соответствующих метаданных для всех файлов MSI, кэшированных в C:\Windows\Installer. Использование этого инструмента позволит операторам "красных команд" и командам безопасности загружать соответствующие файлы для исследования уязвимостей локального повышения привилегий через восстановление MSI.

1690375461099.png

Рисунок 9: Фрагмент файла msi_search BOF

Факторы защиты​

Неправильно настроенные пользовательские действия могут быть легко обнаружены и использованы, что создает значительные риски для безопасности организаций. Разработчикам программного обеспечения необходимо тщательно проанализировать свои пользовательские действия, чтобы предотвратить перехват злоумышленниками операций NT AUTHORITY\SYSTEM, запускаемых при восстановлении MSI.

При настройке пользовательских действий необходимо помнить, что в стандартной системе Windows пользователи имеют права на запись в следующие папки, а также могут иметь права на запись в их подпапки из-за наследования привилегий:
  • C:\Windows\Temp
  • C:\ProgramData
  • C:\ (возможность создания папок)
  • C:\Users\XXXX\*.
Поэтому разработчики программного обеспечения должны помнить об этом и обеспечивать надлежащую защиту всех привилегированных процессов, использующих эти папки. Использование папок C:\Program Files или C:\Program Files (x86) может помешать злоумышленнику перехватить исполнение, поскольку эти папки по умолчанию защищены правами администратора.

В версии 1.8.3.7 компания Atera исправила CVE-2023-26077, защитив папку C:\Windows\Temp\AteraUpgradeAgent от записи в нее файлов обычными пользователями, таким образом заблокировав злоумышленникам возможность осуществить атаку с перехватом DLL.

1690375534451.png

Рисунок 10: Исправление CVE-2023-26077 в Atera Agent 1.8.3.7

Разработчикам программного обеспечения также важно соблюдать осторожность при использовании системных команд, порождающих conhost.exe в качестве дочернего процесса. Как показано в CVE-2023-26078, выполнение net.exe в качестве пользовательского действия может временно открыть командное окно, что может быть использовано злоумышленниками для повышения своих привилегий. Чтобы минимизировать этот потенциальный риск безопасности, разработчикам программного обеспечения следует использовать WixQuietExec для незаметного выполнения системных команд в фоновом режиме. WixQuietExec позволяет выполнять команды без отображения командного окна, что значительно снижает вероятность перехвата. Компания Atera устранила проблему CVE-2023-26078 в версии 1.8.4.9.

Для обнаружения атак с повышением привилегий при восстановлении MSI специалисты по реагированию на инциденты и группы обеспечения безопасности могут отслеживать событие приложения с идентификатором 11728, исходящее от пользователей, не являющихся администраторами. Этот идентификатор события связан именно с восстановлением MSI и позволяет получить ценную информацию, такую как затронутый продукт, задействованный пользователь и дата события.

1690375627136.png

Рисунок 11: Идентификатор события 11728

Хронология раскрытия CVE-2023-26077

28 февраля 2023 г. - сообщение об уязвимости поступило в компанию Atera;
29 марта 2023 г. - уязвимость подтверждена компанией Atera;
17 апреля 2023 г. - уязвимость устранена в версии 1.8.3.7.

Хронология раскрытия CVE-2023-26078

28 февраля 2023 г. - сообщение об уязвимости поступило в компанию Atera;
29 марта 2023 г. - уязвимость подтверждена компанией Atera;
26 июня 2023 г. - Уязвимость исправлена в версии 1.8.4.9.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх