Когда пользователь открывает или закрывает зараженный файл, вредоносная программа извлекает макромодуль "ThisDocument" и сохраняет его в корневом каталоге диска С: под названием:
C:temp.tmp
Затем вирус считывает данные из шаблона MS Word — "Normal.dot" и добавляет их в файл
C:temp.tmp
После этого он анализирует содержимое файла "temp.tmp" и копирует код, который находится после строки:
‘RELAX
и обновляет файл "Normal.dot", внедряя в него свой вредоносный макрос. Далее он записывает изменения в свой текущий документ. В конце вредоносная программа проверяет атрибуты открытого документа, и если он не имеет атрибутов "Скрытый" и "Системный" – устанавливает значение 862-го байта в "1" и удаляет файл:
C:temp.tmp
В инфицированный файл добавляется следующая информация:
‘ Logfile ‘ * DSR Normal.dot". В системный реестр вносится следующая запись:
[HKCUSoftwareMicrosoftMS Setup (ACME)User Info] "LogFile"="True"
После этого вредоносное ПО производит проверку по следующей строке:
‘ DSR DSR (KZ, город Костанай, КГУ) Это простой пример чтения C: bootlog.sys
Рекомендации по удалению
[HKCUSoftwareMicrosoftMS Настройка (ACME)Информация о пользователе]
C:
etlog.sys C:bootlog.sys
MD5: 4913a3d7faea301aa83595813ecfe7fb SDA1: d55b8bc059cbe1e0184d2dd14b7be52db9417c8a
Ваш мозг на 60% состоит из жира. Добавьте 40% науки!
Рациональное питание для серой массы
Уроки форензики. Исследуем вредоносные документы Microsoft Office

Одним из наиболее широко распространенных методов атак на компании и обычных пользователей является социоальная инженерия. Злоумышленники отправляют жертвам электронные письма с вложениями, зачастую это документы Microsoft Office с вредоносным содержимым. В данной статье мы исследуем, как анализировать такие документы и как осуществлять поиск вредоносного кода в их содержимом.
Согласно матрице MITRE ATT
info
Исследование мы будем проводить в лаборатории для анализа вредоносов, подробно описанной в статье «Код под надзором. Создаем виртуальную лабораторию для анализа малвари».
Все необходимые для анализа вредоносных файлов утилиты располагаются в каталоге FLAREOffice виртуальной машины, работающей на Windows 10. Общий подход к этому анализу можно найти в памятке Лени Зельцера.
Теперь давайте перейдем к рассмотрению файлов с сайта CyberDefenders. Я не буду приводить ответы на вопросы из заданий — выполнив все описанные ниже эксперименты, ты сможешь найти их самостоятельно.
Obfuscated
Загрузим с сайта архив с заданием. Первым делом посчитаем хеш MD5 содержащегося в архиве файла (в результате получится значение 49b367ac261a722a7c2bbbc328c32545 ) и проверим его на VirusTotal.
Теперь получим информацию о структуре вредоносного документа. Для этого воспользуемся утилитой oleid.
oleid 49b367ac261a722a7c2bbbc328c32545

Тулза определила, что это документ Microsoft Office Word и в нем есть VBA-макрос. Его нам предстоит вытащить наружу. Для начала воспользуемся утилитой oledump и посмотрим, в каком потоке OLE содержится VBA-макрос.
oledump 49b367ac261a722a7c2bbbc328c32545

Макрос спрятался в восьмом потоке данных. Выгрузим его при помощи инструмента olevba с ключом -a .
olevba -a 49b367ac261a722a7c2bbbc328c32545

В потоке Macros/ VBA/ Module1 сосредоточена основная функциональность вредоносного скрипта. Из вывода утилиты видно, какие функции он использует. Давай извлечем этот скрипт и начнем исследовать код.
olevba -c 49b367ac261a722a7c2bbbc328c32545

Функция AutoOpen( ) инициирует выполнение скрипта при открытии документа. Чтобы усложнить задачу, злоумышленники использовали обфускацию кода VBA-макроса: переменные представлены в формате Base64. Мы вручную декодируем обфусцированный код и проанализируем его функциональные возможности.
info
Для деобфускации VBA-макроса можно воспользоваться утилитой ViperMonkey, которая эмулирует выполнение сценария, но сегодня проведем ручной анализ.
Начнем с функции AutoOpen( ) .

На картинке ты видишь выделенный фрагмент кода, содержащий несколько очень интересных функций. Функция FileLen( ActiveDocument. FullName) получает размер документа Word и записывает его в переменную N18Eoi6OG6T2rNoVl41W . Функция Open( ActiveDocument. FullName) открывает документ в бинарном формате, затем записывает его содержимое в переменную E2kvpmR17SI и преобразует считанные строки в кодировку Unicode.
Во втором выделенном блоке с использованием объекта vbscript. regexp выполняется поиск такой строки в открытом файле:
MxOH8pcrlepD3SRfF5ffVTy86Xe41L2qLnqTd5d5R7Iq87mWGES55fswgG84hIRdX74 dlb1SiFOkR1Hh
В переменной Y5t4Ul7o385qK4YDhr хранится указатель на первый символ найденной строки в исходном документе.

Обфусцированный вредоносный код расположен после обнаруженной нами строки, его размер составляет 16 827 байт.

Из файла считывается информация начиная с байта 0x503c , далее декодируется по алгоритму, который мы разберем ниже, и сохраняется в файл %appdata% Microsoft Windows maintools. js . Затем с помощью WScript. Shell выполняется JS-скрипт maintools. js с параметром EzZETcSXyKAdF_e5I2i1 .
Давай разберем алгоритм декодирования и напишем небольшую программу на Python для получения исходного JS-скрипта.

Чтобы упростить чтение кода, я изменил названия переменных. Алгоритм декодирования очень прост: для каждого байта выполняется операция XOR (исключающее «или») с ключом, который хранится в переменной KEY. После каждого преобразования байта также обновляется сам ключ.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.




