В этой статье мы расскажем, как красная команда Mandiant исследует и использует уязвимости нулевого дня в сторонних установщиках Windows, что должны делать разработчики программного обеспечения, чтобы снизить риск использования, а также представим новый инструмент для упрощения подсчета кэшированных установщиков программного обеспечения Microsoft. (MSI) файлы: msi_search. Мы рассмотрим как осуществлять повышение привилегий с помощью сторонних установщиков Windows
Фон установщика программного обеспечения Microsoft
Файлы MSI — это файлы базы данных, содержащие данные и инструкции по установке и удалению программного обеспечения в операционных системах Windows. Организации обычно используют файлы MSI в своем стандартизированном формате, что упрощает управление установкой, обслуживанием и удалением программного обеспечения. Файлы MSI также обеспечивают гибкость разработчикам программного обеспечения, позволяя им выполнять дополнительный код во время установки, удаления или ремонта с помощью настраиваемых действий. Эти действия позволяют разработчикам настраивать процесс установки и выполнять конкретные задачи по мере необходимости.
При установке программного обеспечения с файлами MSI Windows кэширует их в папке C:\Windows\Installer, используя случайные имена файлов, состоящие из буквенно-цифровых символов, за которыми следует расширение «.msi». Это позволяет обычным пользователям получать доступ и использовать функцию «восстановления», которая предназначена для решения различных проблем, таких как отсутствующие файлы, неработающие ярлыки, неправильные записи реестра и другие сбои программного обеспечения. Во время восстановления MSI некоторые операции, такие как создание или выполнение файла, могут быть запущены из контекста NT AUTHORITY\SYSTEM, даже если они инициированы обычным пользователем.
Потенциальные злоупотребления
Возможность инициировать операцию из контекста NT AUTHORITY\SYSTEM может представлять потенциальную угрозу безопасности, если ею не управлять должным образом. Например, неправильно настроенные пользовательские действия, выполняемые как NT AUTHORITY\SYSTEM, могут быть использованы злоумышленниками для выполнения локальных атак с целью повышения привилегий. Одна конкретная неправильная конфигурация предполагает выполнение файловых операций в папке, в которой обычные пользователи имеют права записи. Это позволяет злоумышленникам изменять файлы, используемые NT AUTHORITY\SYSTEM, позволяя им запускать произвольный код и повышать свои привилегии.
Microsoft Process Monitor (ProcMon) можно использовать для анализа и мониторинга файловых операций в системе Windows. Чтобы отфильтровать результаты и сосредоточиться только на файловых операциях процесса NT AUTHORITY\SYSTEM, выполняемых в папке, где стандартные пользователи имеют права записи, мы настраиваем фильтры ProcMon, перечисленные на рисунке 1. Важно отметить, что стандартные пользователи имеют права записи для системные папки C:\Windows\Temp и C:\ProgramData и иногда могут иметь чрезмерные привилегии для своих подпапок из-за наследования разрешений. Поэтому эти пути также следует учитывать при настройке фильтров.
Рисунок 1:Фильтры ProcMon для анализа небезопасных файловых операций из NT AUTHORITY\System
После настройки восстановление MSI можно запустить с помощью API установщика Windows или запустив «msiexec.exe /fa C:\Windows\Installer\[XXXXX].msi».
Анализ CVE-2023-26077
В этом примере мы проанализируем установщик MSI для агента Atera 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.
Рисунок 2: Процесс пытается загрузить отсутствующие библиотеки DLL
Рисунок 3:Разрешения папки AteraUpgradeAgentPackage
Чтобы воспользоваться уязвимостью, мы просто помещаем полезную нагрузку в качестве одной из недостающих библиотек DLL в C:\Windows\Temp\AteraUpgradeAgentPackage, например CRYPTSP.dll, а затем запускаем восстановление MSI, чтобы получить командную строку с именем NT AUTHORITY\SYSTEM.
Рисунок 4:Локальное повышение привилегий посредством перехвата DLL
Анализ CVE-2023-26078
Еще одна примечательная неправильная конфигурация, связанная с настраиваемыми действиями, — это выполнение системных команд, которые запускают узел консоли Windows (conhost.exe) как дочерний процесс. Процесс conhost.exe отвечает за размещение и управление консольными окнами в операционных системах Windows. Когда процесс запускается с conhost.exe в качестве дочернего процесса, он открывает командное окно, которое, если оно выполняется с повышенными привилегиями, может быть использовано злоумышленником для выполнения локальной атаки с повышением привилегий.
В случае установщика Atera для Windows функция восстановления запускает net.exe и Taskkill.exe как NT AUTHORITY\SYSTEM, оба из которых порождают conhost.exe как дочерний процесс. Это действие вызывает кратковременное появление командного окна, которое можно заморозить, быстро выбрав часть окна мышью, как показано на рисунке 6.
Рисунок 5. Отношения родительского и дочернего процессов net.exe.
Рис. 6. Приостановка выполнения net.exe путем выделения части командного окна мышью.
Получив доступ к «Свойствам» командного окна, злоумышленник может получить доступ к нескольким гиперссылкам, которые можно использовать для открытия веб-браузера под именем NT AUTHORITY\SYSTEM. Важно отметить, что для учетной записи NT AUTHORITY\SYSTEM нет веб-браузера, настроенного для открытия гиперссылок по умолчанию. Таким образом, злоумышленнику предоставляется возможность выбрать веб-браузер, как показано на рисунке 7. После выбора веб-браузера оставшиеся шаги для локальной атаки с повышением привилегий включают открытие меню «Печать»; печать веб-страницы в формате PDF для запуска Проводника; и, наконец, выполнение командной строки как NT AUTHORITY\SYSTEM.
Рисунок 7. Открытие гиперссылок с помощью выбранного веб-браузера.
Рисунок 8. Открытие командной строки через веб-браузер.
Программный поиск файлов MSI
Красная команда Mandiant обнаружила множество подобных уязвимостей в сторонних установщиках Windows, которые впоследствии были использованы во время оценок красной команды. Однако определение того, какие файлы MSI соответствуют какому программному обеспечению, может оказаться утомительной задачей, поскольку Windows кэширует файлы MSI со случайными буквенно-цифровыми символами. Чтобы упростить эту задачу, красная команда Mandiant создала объектный файл маяка (BOF) и сценарий PowerShell, найденный в msi_search, для чтения и вывода соответствующих метаданных для всех файлов MSI, кэшированных в C:\Windows\Installer. Использование этого инструмента позволит операторам красной команды и группам безопасности загружать соответствующие файлы для исследования локальных уязвимостей повышения привилегий посредством ремонта MSI.
Рисунок 9: Фрагмент msi_search BOF
Оборонительные соображения
Неправильно настроенные пользовательские действия легко обнаружить и использовать, что представляет собой серьезную угрозу безопасности для организаций. Разработчикам программного обеспечения важно тщательно проверять свои пользовательские действия, чтобы не допустить перехвата злоумышленниками операций NT AUTHORITY\SYSTEM, вызванных восстановлением MSI.
При настройке дополнительных действий важно помнить, что в Windows стандартные пользователи имеют разрешения на запись в следующие папки, а также могут иметь разрешения на запись в их подпапки из-за наследования разрешений:
-
-
C:\Windows\Temp
C:\ProgramData
C:\
(ability to create folders)C:\Users\XXXX\*
-
Следовательно, разработчики программного обеспечения должны помнить об этом и обеспечивать должную защиту любого привилегированного процесса, использующего эти папки. Альтернативно, использование папок C:\Program Files или C:\Program Files (x86) может помешать злоумышленнику перехватить выполнение, поскольку эти папки по умолчанию защищены административными привилегиями.
Atera исправила CVE-2023-26077 в версии 1.8.3.7, усилив защиту папки C:\Windows\Temp\AteraUpgradeAgent, чтобы запретить обычным пользователям записывать в нее файлы, тем самым заблокировав возможность злоумышленника выполнить атаку перехвата DLL.
Рис. 10. Исправление CVE-2023-26077 в агенте Atera 1.8.3.7.
Разработчикам программного обеспечения также важно проявлять осторожность при использовании системных команд, которые запускают conhost.exe в качестве дочернего процесса. Как показано в CVE-2023-26078, выполнение net.exe в качестве настраиваемого действия может временно открыть командное окно, которое злоумышленники могут использовать для повышения своих привилегий. Чтобы снизить этот потенциальный риск безопасности, разработчики программного обеспечения должны использовать WixQuietExec для автоматического запуска системных команд в фоновом режиме. WixQuietExec позволяет выполнять команды без отображения командного окна, что значительно снижает вероятность взлома. Atera обратилась к CVE-2023-26078 в версии 1.8.4.9.
Чтобы обнаружить атаки на повышение привилегий восстановления MSI, специалисты по реагированию на инциденты и группы обеспечения безопасности могут отслеживать событие приложения с кодом 11728, исходящее от пользователей, не являющихся администраторами. Этот идентификатор события специально связан с ремонтом MSI и предоставляет ценную информацию, такую как затронутый продукт, вовлеченный пользователь и дата события.
Рисунок 11. Идентификатор события 11728
Заключение
Представьте себе: вы наконец-то преодолели периметр строго охраняемой организации. Вы чувствуете себя вполне довольным, пока не осознаете, что у вас есть только привилегии Active Directory только что нанятого стажера, и волнение улетучивается. Однако, применив некоторые хитрые уловки и немного удачи, вы, возможно, сможете подняться по корпоративной лестнице и получить повышение до СИСТЕМЫ. Добро пожаловать в игру с высокими ставками по повышению привилегий!