Автор статьи: Александр Колесников
Вирусный аналитикВ этой статье рассмотрим последние уявзимости, которые были найдены за последние несколько лет. Основной критерий отбора уязвимостей — работа с DACL, что можно делать с системой, если подобные уязвимости попадаются в операционной системе. В качестве исследуемых будем использовать CVE-2022–25 365 и CVE-2021–4533.
DACL
В операционной системе Windows, согласно документации, существует минимальная единица проставления привилегий — ACE(Access Contorl Entity). По одному эти сущности не существуют и их обычно используют совместно. Набор ACE называется Access Control List или просто ACL. ACL может быть 2х типов:- SACL
- DACL
- Обратиться к get‑ACL командлету
- Запросить данные из LDAP
Попробуем получить данные токена для директории:
Get-Acl C:\Windows | FL
Как видно из описания на картинке, данные скомпонованы по группам и есть описание, какие именно права есть у конкретной группы. По сути это уже разобранные данные ACL списка, но нам сойдет и так. То же самое можно выполнять и для просмотра данных о файлах и ключах реестра. Вообще информацию по токену можно достать из чего угодно, главное — чтобы у вас был создан объект powershell, к которому можно применить командлет. Ну и конечно, это должен быть объект, который считается securable, в Windows это всё, что имеет название.
Далее в общем‑то нет никакой магии, но если среди данных из картинки будут те группы пользователей, в которых может появиться пользователь системы, то это можно использовать как примитив для атаки. Результатом атаки может быть:
- повышение привилегий,
- удаление/перемещение произвольных файлов в системе.
- Нужно найти ресурс, который нужно измениить. Если брать обобщенные подходы, то обычно стараются перезаписать файлы, которые используются для запуска команд другими пользователями.
- Необходимо обнаружить приложение, которое содержит уязвимость, позволяющую менять адрес обрабатываемого объекта.
- Определить, что нам нужно — командная строка от имени другого пользователя или просто удаленный файл.
Второй вопрос — процедура достаточно длительная, решается через изучение приложения, обычно рассматриваются следующие проблемы:
- работа с файловой системой и проставляемые привилиегии на файлы и директории;
- работа с механизмом pipe, которые располагаются в системе.
Следить за этой информацией можно через инструменты:
CVE-2022-25365
Уязвимость, которая была обнаружена в Docker Desktop приложении, основная проблема, которая была использована для атаки — это неверно проставленные привилегии для pipe, которые были использованы приложением. Итог — эскалация привилегий.Если выкладывать основные действия согласно алгоритму, который приведен выше в статье, то эксплуатация уязвимости разбита на несколько частей.
- Поиск механизма работы с файловой системой или с системой пердачи данных между процессами.
- Идентификация опасных ACL разрешений (опасность определяется в зависимости от задач приложения).
- Запуск функционала, который позволяет обращаться к объекту с опасными ACL.
Следующий этап атаки заключается в использовании метода, который был описан 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
Автор статьи: Александр Колесников Вирусный аналитик В этой статье рассмотрим последние уявзимости, которые были найдены за последние несколько лет. Основной критерий отбора...
habr.com