Какие файлы заражают макровирусы

Макровирусы: механизм воздействия и методы обнаружения

Как это работает

Если у тебя под рукой есть винда с «Офисом», то базовую функциональность можно испытать, прямо не отходя от чтения этой статьи. Не будем повторять за интернетом и делать листенер из Метасплоита — судя по статистике детектов, такие возможности макросов почти никогда никто не использует. Лучше создадим документ с макросами и добавим к нему макрос со следующим кодом:

А в самом тексте напишем что-то вроде:

Сохраняем файл, закрываем, открываем… в зависимости от версии «Офиса» появится предупреждение о макросах. Если разрешить их, сразу произойдут две вещи. Первая — кракозябры будут заменены на настоящий текст, вторая — в папке с документом по-тихому создастся текстовый файл.

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

Пример такого традиционного макровируса, часто встречающегося в дикой природе, — W97M.DownLoader.507. Он уже отметил свой первый год в вирусных базах, но это не мешает ему постоянно детектироваться антивирусом — очевидно, рассылка оправдывает себя. Документ делает вид, что зашифрован, и нагло утверждает, будто так и должно быть, мол, если хотите прочитать — включите макрос. При этом на самом деле ленивые вирусописатели просто добавили белый текст на вторую страницу, и макрос всего лишь делает его черным. Получается, что даже наша демонстрация макросовых возможностей работает тоньше. А люди все равно ведутся ;). Ведутся и дают макросу запустить пачку скриптов, которые, в свою очередь, радостно качают и запускают банковский троян.

В те времена шифрование еще не пугало простого пользователя
Другие статьи в выпуске:

Xakep #213. FUCK UAC

  • Содержание выпуска
  • Подписка на «Хакер»-60%

Необычный случай произошел в 2012 году. Мы обнаружили массовую почтовую рассылку, предлагающую принять участие в митинге оппозиции на Пушкинской площади, с приложенной инструкцией, как вести себя на митинге, и уверениями, что действовать нужно строго по ней. Открывшие инструкцию люди сначала не могли ее прочесть, потому что макросы были отключены, а потом не могли ее прочесть, включив макросы, потому что получали убитую трояном Trojan.KillFiles.9055 систему.

Политика — не повод давать «Ворду» делать непонятно что 

1.1 Макровирусы общие сведения

Физическое расположение вируса внутри
файла зависит от его формата,
который в случае продуктов Microsoft
чрезвычайно сложен: каждый файл-документ
Word, Office 97 или таблица Excel представляют
собой последовательность блоков данных
(каждый из которых также имеет свой формат),
объединенных между собой при помощи большого
количества служебных данных. Этот формат
носит название OLE2 (Object Linking and Embedding). Структура
файлов Word, Excel и Office 97 (OLE2) напоминает усложненную
файловую систему дисков DOS: «корневой
каталог» файла-документа или таблицы
указывает на основные подкаталоги различных
блоков данных, несколько «таблиц FAT» содержат
информацию о расположении блоков данных
в документе и т. д.

Более того, система Office Binder, поддерживающая
стандарты Word и Excel, позволяет создавать
файлы, одновременно содержащие один или
несколько документов в формате Word и одну
или несколько таблиц в формате Excel, причем
Word-вирусы способны при этом поражать
Word-документы, а Excel-вирусы — Excel-таблицы,
и все это возможно в пределах одного дискового
файла. То же справедливо и для Office 97.

Следует отметить, что MS Word версий 6 и
7 позволяет шифровать присутствующие
в документе макросы. Таким образом, некоторые
Word-вирусы присутствуют в зараженных документах
в зашифрованном (Execute only) виде.

Большинство известных вирусов 
для Word несовместимы с национальными
(в том числе с русской) версиями Word или,
наоборот, рассчитаны только на локализованные
версии Word и не работают под английской
версией. Однако вирус в документе все
равно остается активным и может заражать
другие компьютеры с установленной на
них соответствующей версией Word.

Вирусы для Word могут заражать компьютеры
любого класса, а не только IBM PC. Заражение
возможно в том случае, если на данном
компьютере установлен текстовый редактор,
полностью совместимый с Microsoft Word версии
6 или 7 (например, MS Word for Macintosh). То же справедливо
и для MS Excel и MS Office 97.

Интересно, что форматы документов
Word, таблиц Excel и особенно Office 97 имеют следующую
особенность: в файлах-документах и таблицах
присутствуют «лишние» блоки данных, т.
е. данные, никак не связанные с редактируемым
текстом или таблицами, либо случайно
оказавшиеся там копии прочих данных файла.
Причиной возникновения таких блоков
данных является кластерная организация
данных в OLE2-документах и таблицах. Даже
если введен всего один символ текста,
то под него выделяется один или даже несколько
кластеров данных. При сохранении документов
и таблиц в кластерах, не заполненных «полезными»
данными, остается «мусор», который попадает
в файл вместе с прочими данными. Количество
«мусора» в файлах может быть уменьшено
отменой пункта настройки Word/Excel «Allow Fast
Save», однако это лишь уменьшает общее количество
«мусора», но не убирает его полностью.

Обфускация, которая не работает

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

Не нужно быть Дмитрием Лозинским, чтобы понять: макрос перед нами вредоносный. Что же предлагает автор статьи? Заменить ASCII-символы их значениями и использовать .

Обфускация 80-го уровня

И что получается?

Макрос хочет что-то исполнить и прилагает усилия для сокрытия этого чего-то — не самый хороший знак. Та же история с макровирусами, которые можно генерить в Метасплоите. Там все серьезно, генерируется уникальный (более-менее) код, в сам документ нужно вставлять куски, откуда макрос будет считывать информацию, все дела… Но никакие ухищрения не помогут обойтись без чего-то вроде

Обрати внимание на — параметр, позволяющий запускать файлы в бэкграунде.
Кстати, офисный файл можно зашифровать и потребовать пароль на открытие, но VBA-код при этом не шифруется. Доступ к VBA-проекту можно защитить паролем, но сам код все равно не шифруется, так что получить его из файла — дело тривиальное

Кажется, мы рассмотрели все документированные возможности, которыми пользуются злоумышленники, вводя адресатов своих спам-рассылок в заблуждение. Перейдем к самому интересному — уязвимостям.

Уязвимости Microsoft Office

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

Уязвимости, сотни их

Уязвимостей много, суть одна — заставить код макроса запуститься при открытии файла, безотносительно того, разрешены ли макросы, запрещены ли и что вообще делает юзер. Это позволяет злодеям обойти все проблемы взаимодействия с людьми и просто рассылать зараженные файлы веером, причем жертва не будет знать, что открывает она, по сути, самый настоящий исполняемый файл. Но, конечно, тут есть нюанс: почти все эти уязвимости быстро патчатся. Первая рассылка, возможно, застанет людей врасплох, а вот ко второй уже все заинтересованные получат свой автоматический апдейт на «Офис» и вздохнут спокойно.

Разумеется, тут есть своя группа риска — злые пираты, люди, не желающие регулярно обновлять любое ПО от Microsoft, и люди, некогда купившие лицензию на старый «Офис» и совершенно не желающие покупать еще одну. И тех и других можно понять — методы продвижения Windows 10 сформировали у многих рвотный рефлекс на любые предложения Microsoft обновиться, а возможности новых версий «Офиса» все равно большинство не использует даже наполовину.

Рассмотрим нашумевший в свое время пример BackDoor.BlackEnergy.18, который эксплуатировал CVE-2012-0158. Ни о каком включении макросов, разумеется, речи уже не шло — дроппер просто-напросто скачивал троян в систему, пока юзер наслаждался письмом про «Невинность мусульман». А CVE-2014-4114 использовался как раз для рассылки вредоносных презентаций, от которых сложно получить толк в обычных обстоятельствах-used-in-Malicious-Spam/).

В наши дни макровирусы тоже живут и здравствуют. Посмотри, например, на пойманный в этом году BackDoor.Apper.1. Он побайтово собирает SFX-архив с легитимным EXE-файлом и вредоносным DLL, причем авторы не постеснялись и в качестве нормального файла выбрали симантековский — с валидной цифровой подписью Symantec. Экзешник с цифровой подписью спокойно запускается, требует библиотеку с таким именем, находит ее тут же в папке, и юзер получает зараженную машину.

Немного истории

В 1999 году интернет запестрел жалобами на макровирус под Microsoft Word 97 и 2000, самораспространяющийся по электронной почте и заражающий компьютеры. Так миру явилась знаменитая «Мелисса» — макрос делал много чего, включая манипуляции с реестром и заражение стандартного шаблона документа Word, но в итоге при соблюдении ряда условий просто оставлял забавное сообщение. Все достигалось банальным кодом на VBA (Visual Basic for Applications), использующим метод . Интернет-сообщество тогда предположило, что это может привести к проблемам с почтовыми серверами из-за самораспространяющегося спама. Святая простота!

Дальше последовала настоящая эпидемия. С помощью VBA можно сделать, по сути, что угодно. Конечно, изначально поддержка VBA в офисных документах задумывалась как расширение функциональности и для автоматизации рутинных действий, но на самом деле всеми возможностями Microsoft Office не пользуется, пожалуй, никто — из обычных юзеров. Вирусописатели же, наоборот, сразу оценили всю полноту открывающихся перспектив.

Заключение

Как видишь, угроза никуда не делась, она просто пережидала времена, когда юзера из-за более сложных способов включения макросов было труднее обмануть. Хотелось бы посоветовать просто никогда не включать макросы и спать спокойно, но я не могу этого сделать по двум причинам. Во-первых, некоторые компании, даже очень, очень крупные, всерьез используют макросы в экселевских файлах, и если ты взаимодействуешь с такими компаниями, то волей-неволей тебе придется пользоваться и ими. Во-вторых, никакие запреты на запуск макросов не спасут от свежей уязвимости. Или даже несвежей — давайте будем откровенны и признаемся друг другу: далеко не все из нас планируют постоянно менять старые «Офисы» на новые и обновлять их каждую секунду. Даже в корпоративной среде не видят особого толка в том, чтобы покупать новый «Офис», покуда старый еще не износился, чего уж говорить о домашних пользователях?

Поэтому лучше открывать чужие файлы исключительно в сендбоксе или виртуальной машине. Но это утопия — никто не будет в рабочих условиях ставить какой-нибудь виртуалбокс каждому бухгалтеру и менеджеру по продажам со строгим наказом открывать десятки файлов в день именно там.

Понравилась статья? Поделиться с друзьями:
Компьютерная помощь
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: