Веб-браузер Mozilla Firefox под огнем: анатомия 0day кибератаки

Ранее мы писали, что сообщество Mozilla Foundation опубликовало уведомление безопасности MFSA2015–78, в котором сообщалось об атаках на пользователей с использованием 0day эксплойта для веб-браузера Firefox. Уязвимость присутствовала в плагине браузера, который отвечал за просмотр PDF-файлов — PDF.js. Уязвимость позволяет злоумышленникам обойти механизм безопасности same-origin policy и исполнить удаленный JavaScript в системе пользователя. Скрипт позволяет злоумышленникам получать доступ к локальным файлам пользователя, а также загружать их на удаленный сервер.

dd864714bd2348c69825f8024e088cb6.jpg

Mozilla Foundation рекомендовали пользователям обновиться до актуальной версии веб-браузера, в которой эта уязвимость уже исправлена. Наш аналитик Антон Черепанов (@cherepanov74) подготовил анализ двух версий вредоносного скрипта и ассоциированных с ними кибератак на пользователей Windows, Linux и OS X.
Наша облачная технология ESET LiveGrid показывает, что сервер, на котором размещался вредоносный скрипт, имел IP-адрес 185.86.77.48. Сервер был активен начиная с 27 июля 2015 г. Подтверждением этому служит информация одного из пользователей скомпрометированного форума.

e002900eeae44ad19d77bb08b5cfd0bd.jpg

Специалисты отдела по борьбе с киберпреступностью Министерства внутренних дел Украины оперативно откликнулись на наше уведомление и подтвердили тот факт, что вредоносный exfiltration-сервер, на который отправлялась украденная информация, располагался на территории Украины и был в состоянии онлайн с 27 июля 2015 г.

Сервер перешел в состояние оффлайн 8-го августа 2015 г.

Первая версия скрипта

Сам вредоносный скрипт не обфусцирован и достаточно прост для анализа. Теме не менее, код скрипта показывает, что у злоумышленников имелись достаточные знания внутренних особенностей Firefox.

Скрипт создает элемент управления IFRAME с пустым blob-объектом PDF. Когда браузеру нужно будет открыть объект PDF своим плагином PDF.js, новый код будет внедрен в созданный IFRAME. При исполнении этого кода, будет создан объект wrappedJSObject, а также новое свойство sandboxContext. Далее, специальная функция JavaScript записывается в свойство sandboxContext, она будет вызвана позднее последующим кодом. Эти шаги помогут успешно обойти упомянутый выше механизм безопасности same-origin policy.

4e4d7b5033d449d0855324643a3f7da8.jpg
Рис. Код создания свойства sandboxContext.

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

7aba5066d7b2471891f8ed0cf4ddf82a.jpg
Рис. Окно с предупреждением.

После успешной эксплуатации уязвимости, управление передается на тот участок кода, который отвечает за эксфильтрацию данных пользователя. Скрипт поддерживает платформы Linux и Windows. На Windows он выполняет поиск конфигурационных файлов, принадлежащих популярным FTP-клиентам (таким как FileZilla, SmartFTP и другим), SVN-клиенту, клиентам обмена сообщениями (Psi+ и Pidgin), а также клиенту Amazon S3.

d054d0c55e834399b9a5e5d2b0f57cc2.jpg
Рис. Список файлов на платформе Windows, которые интересны злоумышленникам.

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

В системе Linux, скрипт отправляет на удаленный сервер следующие файлы.

  • /etc/passwd
  • /etc/hosts
  • /etc/hostname
  • /etc/issue


Скрипт также специализируется на анализе файла /etc/passwd для получения путей к домашним каталогам (homedir) пользователей в системе.

7699cbc79fac48c1abc209785b64ee02.jpg
Рис. Список файлов на платформе Linux, которые интересны злоумышленникам.

Скрипт специализируется на поиске и отправке злоумышленникам следующих типов данных.

  • Данные истории (bash, MySQL, PostgreSQL).
  • Файлы конфигурации SSH и ключи авторизации.
  • Файлы конфигурации для ПО удаленного доступа под названием Remmina.
  • Файлы конфигурации FileZilla.
  • Данные конфигурации PSI+.
  • Текстовые файлы, содержащие возможные данные учетных записей и скрипты интерпретатора командной строки.


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

Вторая версия скрипта

На следующий день, после того как для Firefox было выпущено соответствующее обновление, злоумышленники решили доработать свой скрипт и зарегистрировать два новых домена.

Адреса этих новых доменов: maxcdnn[.]com (93.115.38.136) и acintcdn[.]net (185.86.77.48). Второй IP-адрес идентичен тому, который уже использовался в первой версии скрипта. Злоумышленники выбрали именно такие названия доменов, так как они напоминают их принадлежность к content delivery network (CDN).

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

e88df108151e4044b8a50fdf439550d0.jpg
Рис. Список файлов для платформы Windows, которые собирает вторая версия скрипта.

В случае со скриптом для Linux, злоумышленники также добавили в него новые файлы для поиска и доработали его для работы на Apple OS X.

fce7cabb7ccc4ec5ad2dc69ce1555262.jpg
Рис. Список файлов для платформы Apple OS X, которые собирает вторая версия скрипта.

Некоторые русскоязычные комментаторы ошибочно приняли вредоносный код скрипта за относящийся к Duqu, т. к. некоторые переменные в коде имеют значение «dq».

Так как сама уязвимость проста в эксплуатации и работающая копия скрипта эксплойта доступна для киберпреступников, некоторые из них уже начали использовать его в своих целях (copycat). Мы видели, что различные группы киберпреступников довольно быстро взяли этот эксплойт на вооружение. Его размещение наблюдалось на веб-сайтах «для взрослых» от адреса google-user-cache[.]com (108.61.205.41). Этот скрипт выполняет те же самые операции, что и описываемый ранее оригинальный вариант, но специализируется на сборе других файлов.

2daa401e68664ff39b2553a4cff20cb4.jpg
Рис. Список файлов, которые интересны злоумышленникам, использующим модифицированную версию скрипта.

Заключение

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

Кроме этого, указанный эксплойт начали использовать другие злоумышленники сразу после его обнаружения in-the-wild. Такая ситуация является довольно типичной для киберпреступного мира.

Антивирусные продукты ESET обнаруживают различные версии указанного скрипта как JS/Exploit.CVE-2015–4495. Мы также рекомендуем пользователям Firefox обновить веб-браузер до актуальной версии. Отметим также, что встроенный в Firefox плагин чтения PDF-файлов может быть отключен путем установки параметра pdfjs.disabled в значение true.

Индикаторы компрометации (IoC)

Частичный список скомпрометированных серверов

hxxp://www.akipress.org/
hxxp://www.tazabek.kg/
hxxp://www.super.kg/
hxxp://www.rusmmg.ru/
hxxp://forum.cs-cart.com/
hxxp://www.searchengines.ru/
hxxp://forum.nag.ru/

Адреса серверов, которые участвовали в кибератаке

maxcdnn[.]com (93.115.38.136)
acintcdn[.]net (185.86.77.48)
google-user-cache[.]com (108.61.205.41)

Идентификаторы SHA-1 вредоносных скриптов

0A19CC67A471A352D76ACDA6327BC179547A7A25
2B1A220D523E46335823E7274093B5D44F262049
19BA06ADF175E2798F17A57FD38A855C83AAE03B
3EC8733AB8EAAEBD01E5379936F7181BCE4886B3

© Habrahabr.ru