Oбфускация «чистой воды» или реверсинг «In the Wild»

Тема в разделе "Сборник статей по безопасности и анонимности", создана пользователем CLAY, 18 апр 2017.

  1. CLAY

    CLAY Member

    Сообщения:
    419
    Симпатии:
    5
    Последнее время стать жертвой киберпреступника может любой пользователь Интернета, даже если у него установлен дорогой антивирус и сетевой экран, имеющий актуальные обновления. Если учесть, что вредоносные скрипты создаются специальными генераторами с применением разнообразных приемов обфускации, становится ясно, что вероятность детектирования данных включений сигнатурным сканером очень низка. Вследствие чего, если интернет-браузер пользователя имеет слабую политику безопасности, вредоносный скрипт будет неизбежно запущен на компьютере пользователя. Такого рода атака может быть остановлена только на последней стадии, когда, в лучшем случае, проактивная защита антивируса заблокирует выполнение загруженной вредоносной программы или скрипта.

    В связи с этим хотел бы поделиться опытом анализа вредоносного кода, что называется, «in the Wild». Надеюсь, таковой окажется полезным и спасет сотни «железных собратьев» от зомбификации и троянизации.

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

    Например, что может быть обычнее, чем питьевая вода, которую можно заказать в офис и путем нехитрых манипуляций превратить в ароматный чай или крепкий кофе? Неужели этому может помешать вредоносный код? А если ее заказывать через Интернет? Вот так безобидно выглядит страничка, где мы обычно заказываем воду:

    А вот так она вдруг стала выглядеть изнутри:

    Можно заметить, что в коде страницы присутствует JavaScript сомнительного содержания – Trojan.Script.Iframer. Основанием для наших подозрений может служить его содержимое, в виде конкатенации строк, представленных unescape последовательностями. Данный прием называется обфускацией и зачастую используется злоумышленниками для скрытия вредоносного содержимого.

    После расшифровки получаем следующий скрипт (программы для расшифровки скриптов можно скачать здесь: Ссылка доступна только зарегистрированным пользователям):

    Видим знакомый всем IFRAME. Загружаем указанную страницу

    И снова JavaScript с обфускацией. Деобфусцируем и получаем

    Снова загружаем страницы по полученным ссылкам. Имеем следующий скрипт

    Загружаем и анализируем страницу in.php

    И снова IFRAME со ссылкой на новую страницу pdf.php, по которой загружается вредоносный PDF-файл (не секрет, что Adobe Acrobat очень привлекает хакеров своими уязвимостями и общедоступностью)

    Здесь видно, что из документа вызывается JavaScript функция, но в теле ее нет.

    Находим запакованный поток данных. Возможно, искомая JS-функция находится в нем. Распаковать его можно с помощью объекта zlib либо воспользоваться специальной утилитой для обработки PDF-файлов (pdftk, PDF_streams_inflater).

    После распаковки получаем интересующую JS-функцию – Exploit.Script.Generic:

    Данный JS-скрипт распыляет в памяти shellcode, после чего вызывает переполнение буфера с целью запуска двоичного содержимого в памяти. Вредоносный скрипт определяет версию Adobe Acrobat. Если номер версии lt; 8, он использует уязвимость, вызывающую переполнение буфера при вызове Collab.collectEmailInfo() при передаче сообщения размером более 44952 байт в виде аргумента. Если версия 8 и выше, то использует уязвимость при вызове util.printf() с большим значением аргумента.

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

    Как можно заметить, байткод содержит ссылку, по которой загружает и запускает вредоносную программу. Это можно увидеть, загрузив наш код в привычном дизассемблере:

    Оба байткода идентичны за исключением идентификатора в конце ссылки.

    Загружаем содержимое по ссылке. И получаем Trojan.Win32.Agent2.gyo. После установки в систему данный троянец загружает еще несколько вредоносов по таким ссылкам: Ссылка доступна только зарегистрированным пользователям[censored]dcc.com/bt.php?mod=id=lt;сетевое_имя_компьютераgt;_1084860184up=9263620mid=soboc40 Ссылка доступна только зарегистрированным пользователям[censored]ecup.cn/kept.exe Ссылка доступна только зарегистрированным пользователям[censored]planet.com/40E80014303030303030303030 30303030303030303031306C0000015166000000007600000642EB0005308C99A2AA

    В результате имеем в системе целый букет вредоносных программ:

    Trojan.Win32.Inject.qxy

    Trojan.Win32.Agent2.gqz

    Rootkit.Win32.Agent.ikz

    Trojan.Win32.Agent2.gyo

    Trojan-Downloader.Win32.Small.jls

    Trojan.Win32.Agent2.gyo

    Backdoor.Win32.Agent.affe

    Backdoor.Win32.KeyStart.cb

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

    Отсылает письма c поддельными адресами отправителей:

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

    В заключение, хочу посоветовать тем, кто решит попробовать заняться анализом вредоносных скриптов самостоятельно, делать это, соблюдая обязательные правила предосторожности:

    - загружать зараженные страницы не через интернет-браузер, а используя специальные программы-загрузчики (wget, Download Master и др.);

    - запускать и отлаживать код только на виртуальной машине;

    - при подключенной сети использовать настроенный сетевой экран;

    - задействовать в работе здравый смысл, совесть и знание уголовного кодекса

Поделиться этой страницей