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

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



    Mozilla Foundation рекомендовали пользователям обновиться до актуальной версии веб-браузера, в которой эта уязвимость уже исправлена. Наш аналитик Антон Черепанов (@cherepanov74) подготовил анализ двух версий вредоносного скрипта и ассоциированных с ними кибератак на пользователей Windows, Linux и OS X.

    Наша облачная технология ESET LiveGrid показывает, что сервер, на котором размещался вредоносный скрипт, имел IP-адрес 185.86.77.48. Сервер был активен начиная с 27 июля 2015 г. Подтверждением этому служит информация одного из пользователей скомпрометированного форума.



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

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

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

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

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


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

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


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

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


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

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

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

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

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


    Рис. Список файлов на платформе 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 усовершенствованная версия скрипта специализируется не только на сборе конфигурационных файлов приложений, но также на сборе текстовых файлов, названия которые содержат различные комбинации слов, заданных злоумышленниками в скрипте.


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

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


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

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

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


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

    Заключение

    Описанная в этом посте кибератака на пользователей 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
    ESET NOD32
    203,00
    Компания
    Поделиться публикацией

    Похожие публикации

    Комментарии 10

      +2
      interessed_text_files — почти 100% выдаёт в авторах русскоговорящих
        0
        hxxp://www.akipress.org/
        hxxp://www.tazabek.kg/
        hxxp://www.super.kg/

        кыргызстанские, первое — местное сми…
          0
          а *parol*.txt не выдаёт?
          +9
          Ирония заключается в том, что pdf.js был презентован как супербезопасная замена плагинам для просмотра пдф.
            +1
            Ирония заключается в том, что люди втирают другим людям, что плагины опасные, т.к. они подвержены взлому. А как плагины начали отваливаться — начали ломаться уже нативные для браузеров компоненты.

            Вывод простой — наличие или отсутствие плагина не защитит человека.
            0
            Если эти серверы скомпрометированы то почему eset не блокирует их?
              0
              Обновился в ubuntu через стандартные репозитарии — версия Firefox 39.0
              В ней еще есть этот баг?
              Последняя на сайте 40
                0
                Исправленный баг в версии — 39.0.3
                А лучше использовать последнюю версию — 40.
                Или можно просто отключить встроенный PDF.js
                  +1
                  на 100% уверен, что есть еще 100500 аналогичных багов, которые используются и мы об этом не знаем.
                  0
                  Мне казалось, что я параноик, раз не храню пароли в FileZilla на Ubuntu…

                  Бага конечно шикарная, самая что ни на есть кроссплатформенная.

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

                  Самое читаемое