Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Существуют следующие методы выполнения вредоносного кода в документах Microsoft Office.
Для нашей работы мы будем использовать следующий набор утилит:
Исследование мы будем проводить в лаборатории для анализа вредоносов, подробно описанной в статье «Код под надзором. Создаем виртуальную лабораторию для анализа малвари».
Все необходимые для анализа вредоносных документов утилиты находятся в каталоге FLAREOffice
виртуальной машины под управлением Windows 10. А описание общего подхода к этому самому анализу можно найти в памятке Ленни Зельцера.
Итак, приступим к изучению файлов с сайта CyberDefenders. Я не буду приводить ответы на вопросы из заданий — повторив все описанные ниже эксперименты, ты сможешь найти их сам.
Загрузим с сайта архив с заданием. Первым делом посчитаем хеш MD5 содержащегося в архиве файла (в результате получится значение 49b367ac261a722a7c2bbbc328c32545
) и проверим его на VirusTotal.
Теперь получим информацию о структуре вредоносного документа. Для этого воспользуемся утилитой oleid.
oleid 49b367ac261a722a7c2bbbc328c32545
Информация об объекте исследованияТулза определила, что это документ Microsoft Office Word и в нем есть VBA-макрос. Его нам предстоит вытащить наружу. Для начала воспользуемся утилитой oledump и посмотрим, в каком потоке OLE содержится VBA-макрос.
oledump 49b367ac261a722a7c2bbbc328c32545
Потоки исследуемого документаМакрос спрятался в восьмом потоке данных. Выгрузим его при помощи инструмента olevba с ключом -a
.
olevba -a49b367ac261a722a7c2bbbc328c32545
Результат работы утилиты olevbaВ потоке Macros/
сосредоточена основная функциональность вредоносного скрипта. Из вывода утилиты видно, какие функции он использует. Давай извлечем этот скрипт и начнем исследовать код.
olevba -c49b367ac261a722a7c2bbbc328c32545
Участок обфусцированного кода вредоносного VBA-макросаФункция AutoOpen(
запускает выполнение скрипта, когда документ открывают. Чтобы усложнить нам работу, злоумышленники обфусцировали код VBA-макроса: имена переменных представлены в формате Base64. Мы будем вручную деобфусцировать код и разберем его функциональность.
Для деобфускации VBA-макроса можно воспользоваться утилитой ViperMonkey, которая эмулирует выполнение сценария, но сегодня проведем ручной анализ.
Начнем с функции AutoOpen(
.
На картинке ты видишь выделенный фрагмент кода, содержащий несколько очень интересных функций. Функция FileLen(
получает размер документа Word и записывает его в переменную N18Eoi6OG6T2rNoVl41W
. Функция Open(
открывает документ в бинарном формате, затем записывает его содержимое в переменную E2kvpmR17SI
и преобразует считанные строки в кодировку Unicode.
Во втором выделенном блоке с использованием объекта vbscript.
выполняется поиск такой строки в открытом файле:
MxOH8pcrlepD3SRfF5ffVTy86Xe41L2qLnqTd5d5R7Iq87mWGES55fswgG84hIRdX74dlb1SiFOkR1Hh
В переменной Y5t4Ul7o385qK4YDhr
хранится указатель на первый символ найденной строки в исходном документе.
Обфусцированный вредоносный код расположен после обнаруженной нами строки, его размер составляет 16 827 байт.
Из файла считывается информация начиная с байта 0x503c
, далее декодируется по алгоритму, который мы разберем ниже, и сохраняется в файл %appdata%MicrosoftWindowsmaintools.js
. Затем с помощью WScript.
выполняется JS-скрипт maintools.
с параметром EzZETcSXyKAdF_e5I2i1
.
Давай разберем алгоритм декодирования и напишем небольшую программу на Python для получения исходного JS-скрипта.
Для удобства чтения кода я переименовал переменные. Алгоритм декодирования очень прост. С каждым байтом выполняется операция XOR
(исключающее «или») с ключом, который хранится в переменной KEY
. После каждого преобразования байта изменяется и сам ключ.
|
|