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

 

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

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

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

 

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

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

Sub AutoOpen()

Dim Findstr As Variant
Dim Replacementstr As Variant
Dim i As Long
Findstr = Split("Получено,РћР¶Редалось,Oi?ioi,Nianeai,яОЮХАН АНКЭЬНЕ", ",")
Replacementstr = Split("Важное сообщение,Важные данные,Контакты,Бонус,Скидка", ",")
For i = 0 To UBound(Findstr)
    Selection.HomeKey wdStory
    Selection.Find.ClearFormatting
    With Selection.Find
        Do While .Execute(FindText:=Findstr(i), Forward:=True, _
            MatchWildcards:=False, Replacewith:=Replacementstr(i), _
            Wrap:=wdFindContinue, MatchCase:=False) = True
        Loop
    End With
Next i

Dim filesize As Integer
Dim FlName As String
FlName = "pwnd.txt"
filesize = FreeFile()
Open FlName For Output As #filesize
Print #filesize, "MESS WITH THE BEST DIE LIKE THE REST H4h4h4"
Close #filesize

End Sub

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

Получено
РћР¶Редалось
Oi?ioi
Nianeai
яОЮХАН АНКЭЬНЕ

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

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

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

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

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

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

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


1 комментарий

Подпишитесь на ][, чтобы участвовать в обсуждении

Обсуждение этой статьи доступно только нашим подписчикам. Вы можете войти в свой аккаунт или зарегистрироваться и оплатить подписку, чтобы свободно участвовать в обсуждении.

Check Also

Что можно сделать с iPhone, зная пасскод. Как сливают данные, уводят iCloud и блокируют остальные устройства

Последние несколько месяцев мы много писали о нововведениях в iOS 11. «Теперь-то заживем!»…