【技术分享】WSH注入:实例一则

责声明">
  前言 在2017年纳什维尔的BSides会议上,Casey Smith(@SubTee)和我(Matt Nelson,@ enigma0x3)发表了题为《Windows Operating System Archaeology》的演讲。在本次演讲中,我们展示...
http://p8.qhimg.com/t010b4324a47984272e.png   前言 在2017年纳什维尔的BSides会议上,Casey Smith(@SubTee)和我(Matt Nelson,@ enigma0x3)发表了题为《Windows Operating System Archaeology》的演讲。在本次演讲中,我们展示了一些在Windows中利用组件对象模型(COM)的攻击技术。接下来,我将讨论使用攻击者控制的输入调用GetObject()函数来攻击上述语音的方法。 某些系统环境使用白名单来防止未签名的Windows Scripting Host(WSH)文件运行,尤其是恶意.js或.vbs脚本文件越来越多。但是,通过将我们的恶意代码注入Microsoft签名的WSH脚本,我们可以规避这一限制。 在深入研究可用于注入的脚本之前,了解工作机制非常重要。在注入攻击的情况下,我们将攻击者控制的输入作为参数传递给GetObject()函数,然后将其与script:scriptlet:COM标记组合。 GetObject()函数 此方法允许您访问已实例化的COM对象。如果没有对象的实例(如果以不包含COM标记的方式调用),则函数调用将无法执行。例如,通过GetObject()函数访问Microsoft Excel中的COM对象的方法如下: 1 设置  obj =  GetObject(  'Excel.Application') 为了使上述代码有效,必须有一个Excel实例运行。单击此处以了解有关GetObject()功能的更多信息。  COM标记 虽然GetObject()函数本身很有趣,但它只允许我们访问已经实例化的COM对象。为了解决这个问题,我们可以实现一个COM标记来促进我们的有效负载执行。如果您不熟悉COM标记,可以在此处阅读更多相关信息。 Windows中有许多不同的COM标记,允许您以各种方式实例化对象。从攻击的角度来看,您可以使用这些标记来执行恶意代码。但这是另一篇博客文章:的主题 - )。 出于本文的目的,我们将关注两个标签script:scriptlet:。这些特定标记与scrobj.dll一起使用,以帮助执行COM脚本,该脚本将作为我们的Payload。这是由Casey Smith(@SubTee)发现的,2016年在DerbyCon上进行了讨论,并发表了一篇文章。 如下所示是一个COM脚本: 1 2 3 4 <XML  version='1.0'?> Var  r =  new  ActiveXObject('WScript.Shell')。运行('calc.exe'); ]> < /&的scriptlet GT; 您还可以使用James Forshaw(@tiraniddo)开发的DotNetToJScript工具在COM脚本中扩展JScript/VBScript,它允许您调用Win32 API甚至执行Shellcode。当您将这两个COM标记中的任何一个与对GetObject()函数的各种调用组合在一起时,情况就会变得很有趣。 非常简短的COM背景介绍已经结束,现在是时候看一个例子了。 PubPrn.vbs 在Windows 7及更高版本上,有一个名为PubPrn.vbs的Microsoft签名WSH脚本,该脚本位于C:\Windows\System32\Printing_Admin_Scripts\en-US目录中。查看此脚本的代码,很明显它将用户提供的输入作为参数(通过命令行参数)并将参数传递给GetObject()函数。 t01f2a245b6a5d8bf21.png 这意味着我们可以运行此脚本并传递它期望的两个参数。第一个参数可以是任何东西,第二个参数是通过script:令牌传递的Payload。 注意:如果您提供的第一个参数值不是有效的网络地址(因为它需要ServerName),则可以在调用时将/b参数添加到cscript.exe以禁止显示其他错误消息。 t01c8856295ceea9631.png 由于VBScript依赖于COM组件来执行操作,因此它在许多Microsoft签名的脚本中被大量使用。本文仅提供一个示例来说明,必须有其他脚本可以以类似的方式使用。我鼓励你继续探索。 本文由乘客安全翻译,作者:h4d35 原文链接:https://enigma0x3.net/2017/08/03/wsh-injection-a-case-study/ 黑客业务列表介绍和一般分类: 类别:攻击入侵破解开发 1:攻击业务订单:暂时取消所有此类业务订单[仅销售常规IDC流量] 2:入侵业务清单:包括网站源代码,办公系统,黑色系统,教育系统等。 3:破解业务类:软件,加密文件,二次打包,脱壳等。 4:二次开发业务清单:软件二次开发,源代码二次开发等 5:其他业务订单:特洛伊木马[通过所有防病毒],远程控制,特殊软件等 备注:未提及的业务订单可根据主要类别查询或直接联系客户服务。为避免浪费双方时间,请在咨询前阅读:业务交易流程及相关说明 注意:仅接受正式业务,个人无权接受。收集此内容。
  • 发表于 2017-08-18 00:00
  • 阅读 ( 1201 )
  • 分类:黑客技术

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
黑客

2107 篇文章

作家榜 »

  1. 黑客 2107 文章