ByTe [ ]f Digital Life – Telegram
ByTe [ ]f Digital Life
823 subscribers
105 photos
14 files
22 links
Статьи име­ют озна­коми­тель­ный харак­тер и пред­назна­чены для спе­циалис­тов по безопас­ности, про­водя­щих тес­тирова­ние в рам­ках кон­трак­та. Автор не несёт ответс­твен­ности за любой вред, при­чиненый с использованием изложенной информации.
Download Telegram
Bypassing directory emptiness check

Возвращаясь к ответу на опрос, проводимый постом выше, Microsoft не признали это уязвимостью.

Файлы на томе NTFS хранятся в формате: <имя_файла>:<имя_потока>:<тип> и при создании символической ссылки через CreateSymbolicLinkW передаются такие параметры:
BOOLEAN CreateSymbolicLinkW(
[in] LPCWSTR lpSymlinkFileName,
[in] LPCWSTR lpTargetFileName,
[in] DWORD dwFlags
);

Подробнее

Упрощённо последовательность такая:
1. Нормализация путей (DOS - NT-путь), определение типа ссылки (на файл или каталог), проверка права SeCreateSymbolicLinkPrivilege либо режима разработчика;
2. Создание «контейнера» будущей ссылки;
3. Открытие этого объекта с флагами FILE_FLAG_OPEN_REPARSE_POINT;
4. Формирование REPARSE_DATA_BUFFER;
4. Формирование REPARSE_DATA_BUFFER с меткой IO_REPARSE_TAG_SYMLINK (для джанкшенов - IO_REPARSE_TAG_MOUNT_POINT).

В драйвере NTFS запрос попадает в обработчик FSCTL_SET_REPARSE_POINT. Перед записью атрибута $REPARSE_POINT NTFS выполняет валидации:
- Объект действительно файл/каталог NTFS и не содержит «несовместимых» атрибутов;
- У объекта нет уже установленного reparse-тэга (или разрешена замена специальным контролом);
- Для каталога: каталог обязан быть пустым. Проверка реализуется как перечисление записей индекса каталога (структуры $INDEX_ROOT/$INDEX_ALLOCATION) и убеждение, что присутствуют только служебные . и ... Если есть любые дочерние записи - возвращается статус ядра STATUS_DIRECTORY_NOT_EMPTY, который Procmon показывает как NOT EMPTY.

Однако, для Windows 10 (тестировал на сборке 22H2) данной проверки видимо не происходит и при передаче в качестве lpSymlinkFileName формата <имя_файла>:<любые символы> проверяется на существование полная строка, в результате существующая директория превращается в линку...

Таким образом мы получаем следующие возможности:
1. Вызвать DOS системы, если критичные системные каталоги превратить в симлинку;
2. Сделать невозможной для чтения директорию с находящимися в ней файлами (к примеру отключить полностью AV/EDR т.к. система не сможет прочитать их файлы во время загрузки;
3. Если допустим заранее скопировать папки AV/EDR в другую директорию подменить любые файлы на те которые хотим (допустим подменить службу агента EDR, то она будет запущена при старте системы, т.е. по сути возможно выполнить закрепление через службу используя уже существующую службу) и многое другое, что зависит от вашей фантазии.

Самый простой вариант эксплуатации:
mklink "<путь до первой папки где лежит AV/EDR>:$" "<Путь до новой папки с нашими файлами без имени первой папки AV/EDR>"

Если кратко: на сборках Windows 10 открытие каталога через поток :$ позволяло обойти проверку пустоты, поэтому FSCTL_SET_REPARSE_POINT по пути вида ...\:$ завершался успешно. В Windows 11 ntfs.sys исправлен: он всегда проверяет сам каталог, поэтому возвращает NOT EMPTY.

Если данную технику комбинировать с Applocker и Backstab, то можно обойтись без перезагрузки хоста, и службы AV/EDR более не загрузятся (тестировалось как POC, не уверен, что работает с СЗИ всех вендоров, но после перезагрузки результат уже 100%)
1. Создаем политику запрета служб AV/EDR по серту издателя
2. Создаем линку (уничтожаем директорию и подменяем её своей для закрепа)
3. С помощью Backstab уничтожаем сервисы AV/EDR

(ТЕСТИРОВАЛОСЬ НА WIN10 - РАБОТАЕТ, НА WINDOWS 11, WINDOWS SERVER 2022 - НЕ РАБОТАЕТ, НА SERVER 2016 ПРЕДПОЛОЖИТЕЛЬНО РАБОТАЕТ НАДО ТЕСТИРОВАТЬ)

Дополнительно фишки NTFS
7
IAmAntimalware: внедрение кода в процессы антивируса

Антивирусы защищают свои процессы от завершения, инъекций и доступа, в том числе через высокие привилегии, самоконтроль, проверку целостности кода, режим защищенных процессов Windows и драйверы в ядре. Идея автора - заставить сам антивирус загрузить «чужой» модуль как «свой».

1. Создается клон служебного процесса антивируса с теми же параметрами запуска, чтобы механизм самозащиты распознавал его как доверенный;

2. Используется момент инициализации, когда процесс обращается к криптографической инфраструктуре Windows: конфигурация провайдера временно указывает на управляемую библиотеку;

3. Для прохождения проверок подписи модулей применяются доверенные сертификаты - либо собственный импортированный сертификат, либо «клонирование» подписей легитимных программ по методике из отдельного инструмента автора;

4. Дополнительно возможен вариант перехвата через COM-объекты, которые подгружаются при старте.

Подробнее
https://github.com/TwoSevenOneT/IAmAntimalware
https://github.com/TwoSevenOneT/CertClone
32
Forwarded from InfoSec Portal
🔍 RealBlindingEDR — инструмент, который навсегда отключает AV/EDR с помощью колбэков ядра

Открытый инструмент под названием RealBlindingEDR позволяет злоумышленникам «ослеплять», навсегда отключать или завершать работу антивирусного (AV) и EDR-ПО, очищая критические колбэки ядра в системах Windows.

Утилита использует подписанные драйверы для произвольного чтения и записи в память, обходит защиты вроде PatchGuard и нацелена на шесть основных типов колбэков ядра.

Эксплуатируя уязвимые драйверы, такие как echo_driver.sys или dbutil_2_3.sys, RealBlindingEDR получает доступ уровня ядра, не вызывая мгновенного обнаружения.

Читать далее: https://cybersecuritynews.com/realblindingedr-tool/

👉 @cybersecinform
Please open Telegram to view this post
VIEW IN TELEGRAM
731
ANTIFORENSIC moment

Как отмечали специалисты Kaspersky в статье об AmCache, этот артефакт формируется и сопровождается операционной системой, и на момент выхода материала не было известных способов вмешаться в его содержимое или удалить его записи.

Похоже, что сейчас как раз наступил тот самый момент, о котором они писали. Как уже отмечалось в исходном посте, в Windows 11, в отличие от Windows 10, стало невозможно перезаписать объект каталога целиком. Однако нигде не сказано, что аналогичный прием нельзя применить к отдельным файлам внутри этого каталога. К сожалению, так удается поступить не со всеми файлами, к тому же в целевой директории должны быть права на запись. А если провернуть ещё парочку манипуляций, то к файлу не просто будет невозможно обратиться, но и он в целом перестанет существовать. )

Используя тот же подход:
mklink "<Path_to_File>:<Any_symbols>"

становится возможным превратить файл в symlink.

Кстати какой нибудь SAM, можно перезаписать таким же образом. Возможно, у этого есть и более интересное применение, но его пока что не придумал, если есть идеи то жду в комментариях.
542
Продолжаем смеяться над Windows

Image File Execution Options все традиционно воспринимают как метод закрепления и повышения привилегий, но что если не только... Этот раздел реестра можно использовать для перенаправления выполнения любого приложения на другой исполняемый файл. Следовательно...

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<Имя службы AV/EDR>.exe
Value: Debugger (REG_SZ) : "C:\windows\system32\calc.exe"

После перезапуска службы (как вариант перезагрузки хоста) служба более не стартует.

Работает с продуктами не всех вендоров, но работает.
622
OFFICE MOMENT

Параметр, позволяющий установить, нажимал ли пользователь кнопку "Включить содержимое", хранится в ветви: NTUSER.dat\Software\Microsoft\Office\<версия>\ <приложение>\Security\Trusted Documents\TrustRecords, где <версия> - числовой идентификатор версии Office (например, 14.0, 15.0, 16.0), а <приложение> - Word, Excel, PowerPoint и т.п.

Внутри ключа TrustRecords формируются значения, каждое из которых соответствует конкретному документу, для которого пользователь либо:
- разрешил редактирование документа, полученного из недоверенного источника;
- включил выполнение активного содержимого (макросов, встроенного VBScript).

Шаблоны Word (Normal.dotm, NormalEmail.dotm) как механизм закрепления

Стандартные шаблоны Word располагаются по пути:

C:\Users\<имя пользователя>\AppData\Roaming\Microsoft\Templates\Normal.dotm
C:\Users\<имя пользователя>\AppData\Roaming\Microsoft\Templates\NormalEmail.dotm

Злоумышленник может внедрить вредоносный VBA-код непосредственно в базовый шаблон Word (Normal.dotm). В результате каждый запуск Word и открытие любого документа приводят к загрузке макроса и потенциальному выполнению вредоносного кода без привязки к конкретному файлу. Подробнее

Для типичной установки Office размер файлов Normal.dotm и NormalEmail.dotm находится в диапазоне примерно 17-19 КБ. Значительное увеличение размера может указывать на наличие дополнительных макросов, форм, встроенных объектов и других модификаций. Однако это лишь предварительный индикатор, требующий дальнейшего анализа содержимого.

Outlook и параметр LoadMacroProviderOnBoot

Параметр: NTUSER.dat\Software\Microsoft\Office\<версия>\Outlook\LoadMacroProviderOnBoot управляет тем, будет ли Outlook при запуске автоматически загружать настроенный VBA. Наличие значения 1 = enable;

При этом необходимо учитывать, что в отдельных случаях настройка может быть изменена легитимным программным обеспечением или корпоративной политикой, поэтому интерпретация всегда должна сопровождаться анализом установленных надстроек Outlook и сопоставлением с перечнем разрешенного программного обеспечения.

Доверенные расположения (Trusted Locations) как обход политики макросов

В Office реализован механизм доверенных расположений, в которых документы могут содержать активное содержимое (макросы, встроенные скрипты) и при этом открываться без дополнительных предупреждений пользователя. Эти настройки задаются отдельно для каждого приложения и версии Office.
NTUSER.dat\Software\Microsoft\Office\<версия>\<приложение>\Security\Trusted Locations\LocationX

где LocationX - пронумерованные записи (Location0, Location1, Location2 и т.д.). Внутри хранятся по крайней мере следующие значения:

- Path - путь к доверенной папке;
- AllowSubFolders - флаг, указывающий, распространяется ли доверие на вложенные каталоги;
- Denoscription, Date и другие атрибуты, уточняющие суть и время создания записи.

Данные техники использовались в атаках APT28.
853
Удаляем драйвер через smss.exe

Кто-то меня спрашивал как удалить драйвер AV/EDR, потому что службу мы уже смогли и перезаписать и удалить, а с драйвером так сделать было невозможно.

В общем я что то потыкал и удалил драйвер с перезагрузкой хоста.

Открываем:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

И в параметр ExistingPageFiles записываем путь к драйверу AV/EDR (начало пути \??\C:\ ну или иная метка диска), после ребутаем тачку и получаем профит в случае, если smss.exe сможет получить права на удаление. По этой причине работа данной техники сильно зависит от архитектуры решения которое мы пытаемся удалить.

Работает и на 10 и на 11 Windows
664
ELF HEADERS

В исполняемых файлах формата ELF присутствуют заголовки и служебные структуры, которые не являются критичными для непосредственной загрузки и выполнения бинарного модуля операционной системой или динамическим загрузчиком, но активно используются утилитами анализа при парсинге файла. Умышленное искажение таких заголовков позволяет формировать вредоносные программы, которые будут приводить к сбоям и аварийному завершению работы песочниц и систем анализа, оставаясь при этом работоспособными на целевом хосте, а также использовать отдельные поля заголовков как контейнер для скрытого хранения конфиденциальных данных.

Подробно:
https://kyrr1s.github.io/posts/abusing-elf-header-forgotten-fields/

При поддержке:
@while_not_False
54