
Автор статьи: Александр Колесников
Вирусный аналитик
В этой статье рассмотрим последние уявзимости, которые были найдены за последние несколько лет. Основной критерий отбора уязвимостей — работа с DACL, что можно делать с системой, если подобные уязвимости попадаются в операционной системе. В качестве исследуемых будем использовать CVE-2022–25 365 и CVE-2021–4533.
DACL
В операционной системе Windows, согласно документации, существует минимальная единица проставления привилегий — ACE(Access Contorl Entity). По одному эти сущности не существуют и их обычно используют совместно. Набор ACE называется Access Control List или просто ACL. ACL может быть 2х типов:
-
SACL
-
DACL
Если не вникать в детали, то первый используется для того, чтобы следить за состоянием объектов в ОС и давать возможность составлять подробные логи работы системы, то второй это как раз и есть те самые привилегии, которые требуются для выполнения операций или доступа к ресурсам. Оба списка находятся в токене пользователя или ресурса, к которму пользователь или приложение пытается получить доступ. Как эти самые списки увидеть? Данные по ACL можно собирать проще всего 2-мя способами:
-
Обратиться к get‑ACL командлету
-
Запросить данные из LDAP
В первом случае это будет работать как локально на системе, так и в инфраструктуре под управлением Windows AD, а второй вариант работает только в Active Directory.
Попробуем получить данные токена для директории:
Get-Acl C:\Windows | FL

Как видно из описания на картинке, данные скомпонованы по группам и есть описание, какие именно права есть у конкретной группы. По сути это уже разобранные данные ACL списка, но нам сойдет и так. То же самое можно выполнять и для просмотра данных о файлах и ключах реестра. Вообще информацию по токену можно достать из чего угодно, главное — чтобы у вас был создан объект powershell, к которому можно применить командлет. Ну и конечно, это должен быть объект, который считается securable, в Windows это всё, что имеет название.
Далее в общем‑то нет никакой магии, но если среди данных из картинки будут те группы пользователей, в которых может появиться пользователь системы, то это можно использовать как примитив для атаки. Результатом атаки может быть:
-
повышение привилегий,
-
удаление/перемещение произвольных файлов в системе.
Алгоритм действий при этом достаточно прост:
-
Нужно найти ресурс, который нужно измениить. Если брать обобщенные подходы, то обычно стараются перезаписать файлы, которые используются для запуска команд другими пользователями.
-
Необходимо обнаружить приложение, которое содержит уязвимость, позволяющую менять адрес обрабатываемого объекта.
-
Определить, что нам нужно — командная строка от имени другого пользователя или просто удаленный файл.
Первый вопрос перекрывается задачей, если смотреть на примеры нашей статьи CVE-2022–25 365 и CVE-2021–4533, то становится ясно, что тактика действий должна решать общую задачу — выполнение команд на наибольшем количестве систем.
Второй вопрос — процедура достаточно длительная, решается через изучение приложения, обычно рассматриваются следующие проблемы:
-
работа с файловой системой и проставляемые привилиегии на файлы и директории;
-
работа с механизмом pipe, которые располагаются в системе.
Во всех случаях важно, какие привилегии устанавливаются на конечный ресурс.
Следить за этой информацией можно через инструменты:
CVE-2022-25365
Уязвимость, которая была обнаружена в Docker Desktop приложении, основная проблема, которая была использована для атаки — это неверно проставленные привилегии для pipe, которые были использованы приложением. Итог — эскалация привилегий.
Если выкладывать основные действия согласно алгоритму, который приведен выше в статье, то эксплуатация уязвимости разбита на несколько частей.
-
Поиск механизма работы с файловой системой или с системой пердачи данных между процессами.
-
Идентификация опасных ACL разрешений (опасность определяется в зависимости от задач приложения).
-
Запуск функционала, который позволяет обращаться к объекту с опасными ACL.
С помощью инструмента мониторинга pipe, которые исользует приложение было выявлено, что pipe с именем «dockerBackendV2» позволяет обычным пользователям читать и писать в него. Кстати, именованные pipe могут использоваться для доступа к системе и удаленно.
Следующий этап атаки заключается в использовании метода, который был описан ZDI. Если коротко, то любые действия с файлами, которые могут быть проконтроллированы атакующим, могут быть использованы для эскалачии привелегий. Для этого используется механизм отката MSI.
Подробный разбор можно найти тут.
CVE-2021-4533
Одна из уязвимостей, которая была найдена в приложении от компании AVAST Free Antivirus. В этом случае проблема позволяла работать с сервисом приложения. Более того, можно было просто от имени процесса сервиса запустить любую команду в системе. Это было возможно из‑за того, что любой пользователь мог запустить OpenProcess функцию и получить любые данные о процессе, включая его токен.
.\accesschk64.exe -p aswEngSrv.exe -nobanner [4704] aswEngSrv.exe RW Everyone RW NT AUTHORITY\ANONYMOUS LOGON RW APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES RW NT AUTHORITY\SYSTEM
Это тоже является достаточно серьезной уязвимостью и наравне с теми примерами, которые были рассмотрены выше — позволяет повышать привелегии.
Если так же проецировать находку на алгоритм из первой части этой статьи, то последовательность действий следующая:
-
Получаем данные о доступе к процессу сервиса.
-
Запускаем процедуру копирования токена (примеры можно найти в сети).
-
Открываем командную строку или работаем с файловой системой.
Таким образом, уязвимости с обычными, на первых взгляд, привилегиями могут быть использованы для достаточно разных атак. От вывода из строя приложений и ОС до выполнения команд из‑под любого пользователя в системе. В качестве дополнительного чтения также рекомендую ознакомиться с этой статьей, там есть описание еще дополнительных методов эскалации привелегий, в том числе и за счет неверно проставленного DACL.
В заключение приглашаю всех желающих на открытое занятие «Acl атаки в Windows AD». На нем мы изучим основные наборы привилегий, которые позволяют проводить атаки на AD. Записаться можно на странице курса «Пентест. Практика тестирования на проникновение».
ссылка на оригинал статьи https://habr.com/ru/company/otus/blog/720004/
Добавить комментарий