论坛风格切换切换到宽版
  • 925阅读
  • 0回复

[学习资料]巧妙运用VBS脚本抑制病毒保护系统可谓是以毒攻毒 [复制链接]

上一主题 下一主题
离线sadgoe
 

发帖
3
C币
15
威望
2
贡献值
0
银元
1
铜钱
17
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2012-04-06
  VBS脚本病毒的大量流行使我们对VBS的功能有了一个全新的认识,现在大家对它也开始重视起来。VBS代码在本地是通过Windows Script Host(WSH)解释执行的。VBS脚本的执行离不开WSH,WSH是微软提供的一种基于32位Windows平台的、与语言无关的脚本解释机制,它使得脚本能够直接在Windows桌面或命令提示符下运行。利用WSH,用户能够操纵WSH对象、ActiveX对象、注册表和文件系统。在Windows 2000下,还可用WSH来访问Windows NT活动目录服务。
  用VBS编写的脚本程序在窗口界面是由wscript.exe文件解释执行的,在字符界面由cscript.exe文件解释执行。wscript.exe是一个脚本语言解释器,正是它使得脚本可以被执行,就象执行批处理一样。关于VBS大家一定比我熟悉多了,所以再不废话,直接进入主题,看看我总结的VBS在系统安全中的妙用吧。
  一、给注册表编辑器解锁
  用记事本编辑如下内容:
  DIM WSH
  SET WSH=WSCRIPT.CreateObject(“WSCRIPT.SHELL”) ‘击活WScript.Shell对象
  WSH.POPUP(“解锁注册表编辑器!”)
  ’显示弹出信息“解锁注册表编辑器!”
  1. WSH.Regwrite“HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\
  DisableRegistryTools”,0,“REG_DWORD”
  ‘给注册表编辑器解锁
  WSH.POPUP(“注册表解锁成功!”)
  ’显示弹出信息“注册表解锁成功!”
  保存为以.vbs为扩展名的文件,使用时双击即可。
  二、关闭Win NT/2000的默认共享
  用记事本编辑如下内容:
  Dim WSHShell‘定义xp系统下载变量
  set WSHShell=CreateObject(“WScript.shell”) ’创建一个能与操作系统沟通的对象WSHShell
  Dim fso,dc
  Set fso=CreateObject(“Scripting.FileSystemObject”)‘创建文件系统对象
  set dc=fso.Drives ’获取所有驱动器盘符
  For Each d in dc
  Dim str
  WSHShell.run(“net share”&d.driveletter &“$ /delete”)‘关闭所有驱动器的隐藏共享
  next
  WSHShell.run(“net share admin$ /delete”)
  WSHShell.run(“net share ipc$ /delete”)’关闭admin$和ipc$管道共享
  现在来测试一下,先打开cmd.exe,输入net share命令就可以看到自己机子上的共享。双击执行stopshare.vbs后,会看见窗口一闪而过。然后再在cmd里输入net share命令,这时候没有发现共享列表了
  1. New Roman“》
  三、显示本机IP地址
  有许多时候,我们需要知道本机的IP地址,使用各种软件虽然可以办到,但用VBS脚本也非常的方便。用记事本编辑如下内容:
  1. Dim WS
  2. Set WS=CreateObject(”MSWinsock.Winsock“)
  3. IPAddress=WS.LocalIP
  4. MsgBox ”Local IP=“ & IPAddress
  将上面的内容保存为ShowIP.vbs,双击执行即可得到本机IP地址。
  四、利用脚本编程删除日志
  入侵系统成功后黑客做的第一件事便是清除日志,如果以图形界面远程控制对方机器或是从终端登陆进入,删除日志不是一件困难的事,由于日志虽然也是作为一种服务运行,但不同于http,ftp这样的服务,可以在命令行下先停止,再删除,在命令行下用net stop eventlog是不能停止的,所以有人认为在命令行下删除日志是很困难的,实际上不是这样,比方说利用脚本编程中的VMI就可以删除日志,而且非常的简单方便。源代码如下:
  1. strComputer= ”。“
  2. Set objWMIService = GetObject(”winmgmts:“ _
  3. & ”{impersonationLevel=impersonate,(Backup)}!\\“ & _
  4. strComputer & ”\root\cimv2“)
  5. dim mylogs(3)
  6. mylogs(1)=”application“
  7. mylogs(2)=”system“
  8. mylogs(3)=”security“
  9. for Each logs in mylogs
  10. Set colLogFiles=objWMIService.ExecQuery _
  11. (”Select * from Win32_NTEventLogFile where LogFileName=‘“&logs&”’“)
  12. For Each objLogfile in colLogFiles
  13. objLogFile.ClearEventLog()
  14. Next
  15. next
  将上面的windows7旗舰版下载代码保存为cleanevent.vbs文件即可。在上面的代码中,首先获得object对象,然后利用其clearEventLog() 方法删除日志。建立一个数组,application,security,system,如果还有其他日志也可以加入数组。然后用一个for循环,删除数组中的每一个元素,即各个日志。
  现场Andon请求信号则是首先记录在PLC中,再通过专门的通讯变量传递到上位机中,所有的通讯变量(Tags)要事先在WinCC专门的通讯通道中建立完毕,获取变量存储的现场Andon信号的VBS脚本如下:
  所有数据都存储于WinCC自带的SQL Server 2000运行库的数据表中,表的位置及结构:
  对于手动设定的参数,存储到数据库这一环同样需要人工完成,对于现场Andon请求信号而言,以上工作是自动完成的。访问数据库的方法种类很多:建立 ODBC 驱动、使用ADO控件、使用DAO控件等等。以下是通过使用ADO控件实现访问数据库的:读取数据库与存储数据库类似,所不同的是SQL语句的写法,以下仍旧是通过使用ADO控件在执行完毕存储任务后,将数据重新读取到操作界面的空件中:无条件读取数据的SQL语句:
  

  有条件读取数据的SQL语句:
  

  四、结束语
  此套为我亲自的现场监控管理系统,从现场信号的采集到对信息的存储与查寻完全由西门子新一代上位监控软件 WinCC V6.0 完成。系统自投产之初到现在运行的一年多时间里表现良好,维护方便,几乎没有出现因现场信号采集过于繁忙或使用人员操作不当而引起的死机、停机现象,表现出良好的开放性和稳定性,真正担当起了现场信息管理者的角色,受到用户的广泛好评。通过此次项目的锤炼,客观上讲较之WinCC V5版本,WinCC V6集成了VBS 编辑器与后台运行SQL Server 2000数据库之后,在保持了原有优势和特色的同时,其开发性、延展性、对信息的管理性及运行的稳定性是符合高技术工业现场要求的。
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个