Инциденты

Новая APT-атака: разработчики эксплойтов не стоят на месте

Недавно в поле нашего зрения попала интересная целевая атака, которая успешно обходила большинство антивирусных продуктов. Это рассылка, нацеленная на различных активистов, выступающих за независимость Тибета и за права человека. Атака показываетчто на проникновение в эти целевые группы было потрачено много усилий, поскольку эксплойт имеет уникальные характеристики, не свойственные прочим многочисленным эксплойтам, использующим уязвимость CVE-2012-0158. Вот как выглядят подобные письма:

Тема: 噶厦政府发起彻查中国民主人硬汉李旺阳被杀事件签名

Перевод: Правительство Кашаг инициировало тщательное расследование убийства Ли Ваньянга – приверженца китайской демократии

Вложение:  民主硬汉李旺阳.doc

(a5513fd67fa3ef135b6eeab4661f6640 распознаётся продуктами «Лаборатории Касперкого» как “Exploit.MSWord.CVE-2012-0158.l”. Эксплойты к уязвимости CVE-2012-0158 во время выполнения также распознаются Automatic Exploit Prevention в проактивном режиме, с выдачей вердикта "PDM:Exploit.Win32.Generic").

Перевод: Приверженнец демократии Ли Ваньян.doc

Сообщение:

«Коллеги,

мира вам и благоденствия!

Чтобы поддержать дело демократии в Китае, правительство Кашаг решило инициировать тщательное расследование убийства Ли Ваньяна – борца за китайскую демократию. Чтобы обеспечить проведение честного расследования, нам нужна ваша подпись.

Лозанна, Нима»

Интересно, что Демократическая партия Гонконга – это ещё одна группа, веб-серверы которой, как мы обнаружили, были взломаны и вследствие этого распространяли связанные с APT-атаками эксплойты и бэкдоры, заражая компьютеры своих политически мотивированных посетителей. Ранее мы писали об этом здесь.

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

С технической точки зрения, данное вложение размером 266 КБ (по нашим наблюдениям, типичный размер для многих целевых атак) имеет некоторые интересные характеристики.  Файл представляет собой эксплойт, который внешне выглядядит как документ Word и который использует программную ошибку в коде mscomctl.ocx, известную как уязвимость CVE-2012-0158. Когда Word открывает этот файл, он анализирует командные слова и обнаруживает, что необходимо загрузить управляющий элемент ActiveX MSComCtlListView. Однако содержимое этого файла, вызывающего такую последовательность действий, непохоже на структуру metasploitPoC, которая используется практически во всех эксплойтах CVE-2012-0158. Во-первых, заголовок файла не соответствует RTF-версии эксплойта, которая выглядит следующим образом:

Весь файл представляет собой doc-файл с одним OLE-потоком. Вот самое начало файла, в котором обозначен тип файла. Такое содержимое нетипично для целевых атак, эксплуатирующих CVE-2012-0158, которые мы видели до сих пор:

Исполнение эксплойта в данной атаке выглядит уникальным. Эти ребята при написании своего зловреда не полагались на Metasploit и наборы экплойтов COTS. Поскольку многие антивирусные продукты при сканировании искали внедренные объекты или OLE-потоки наряду с командами object и objocx, они могли пропустить такие файлы.

Когда файл открывается и начинает выполняться уязвимый код, вызывающий переполнение стека, переменной ecx присваивается значение 0xc00. Это значение – 3072 байта кода – значительно меньше обычно используемого в подобном коде. В отличие от большинства эксплойтов, шелл-код здесь не требует большого числа NOP-заполнителей. Однако так же, как во многих других эксплойтах, , код эксплойта возвращается в середину  команды, чтобы выполнить инструкцию jmpesp внутри mscomctl.ocx и перейти к выполнению шелл-кода. Сам шелл-код вполне стандартный: он настраивает стек и затем декодирует оставшиеся 2 КБ шелл-кода с циклом xor 0x70 – еще один простой трюк обфускации, чтобы помешать статическому анализу.

Затем код находит PEB и проходит через загруженный список модулей, определяя нахождение в памяти первой записи в списке. Это место будет позже использоваться для получения адресов API без вызова GetProcAddress из подозрительных мест в памяти (еще один трюк, чтобы избежать определения антивирусом).

Вызовы функции получения импортов  в шелл-коде перемежаются с вызовами функции, определяющей базовый адрес нужного модуля. Здесь он копирует строку “shlwapi.dll” в стек и помещает ptr в стек для вызова LoadLibraryA:

Функция ImportHashAddressResolution – это пользовательская реализация GetProcAddress для разрешения адресов функций win32api. Странным образом в число этих функций попали CreateFileMapping, MapViewofFile и ImageHLP.ResolveRVAtoVA. Необычно то, что эти функции выполнены для загрузки библиотек и установления местонахождения функций, вместо того чтобы использовать традиционные вызовы API.

Когда эксплойт наконец создает Ax.tmp (f3219d66e36924ded709fe0da1d5d2c8 определяетсяпродуктами «ЛабораторииКасперского» как “Backdoor.Win32.Agent.cjqi”) в %temp%, он расшифровывает содержимое файла в памяти простым циклом “xor – ror”, а потом записывает файл на диск. Эти простые циклы помогают замаскировать вредоносный исполняемый контент, чтобы он не выглядел слишком подозрительно.

Последний трюк в эксплойте, предназначенный для того, чтобы скрыть программу от обнаружения – команда безусловного перехода на третью инструкцию в функции kernel32.WinExec: таким образом первые две инструкции полностью пропускаются. Таким образом обходятся некоторые антивирусные продукты,которые перехватывают исполнение Windows API на уровне пользователя.

Похоже на то, что вирусописатели, которые создают эксплойты и которые стоят за некоторыми из APT-атак, потихоньку совершенствуют свое мастерство и много работают над тем, чтобы их программы не были обнаружены антивирусными продуктами. В данный момент наиболее популярны атаки, использующие уязвимость CVE-2012-0158; однако можно предположить, что скоро их заменят недавно обнаруженные 0-day уязвимости в InternetExplorer.

О «пропущенном» сегодня бэкдоре и его протоколе связи мы расскажем в следующем посте.

Новая APT-атака: разработчики эксплойтов не стоят на месте

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике