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

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

В связи с этим хотел бы поделиться опытом анализа вредоносного кода, что называется, «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. Если номер версии < 8, он использует уязвимость, вызывающую переполнение буфера при вызове Collab.collectEmailInfo() при передаче сообщения размером более 44952 байт в виде аргумента. Если версия 8 и выше, то использует уязвимость при вызове util.printf() с большим значением аргумента.

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

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

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

Загружаем содержимое по ссылке. И получаем Trojan.Win32.Agent2.gyo. После установки в систему данный троянец загружает еще несколько вредоносов по таким ссылкам: [censored]dcc.com/bt.php?mod=&id=<сетевое_имя_компьютера>_1084860184&up=9263620&mid=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 и др.);

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

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

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