首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

远控免杀专题-白名单Cmstp.exe执行payload

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

文章打包下载及相关软件下载:

免杀能力一览表

几点说明:

1、表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。

2、为了更好的对比效果,大部分测试payload均使用msf的模块生成。

3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本(2020.01.01),火绒版本(2020.01.01),360安全卫士(2020.01.01)。

4、其他杀软的检测指标是在(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为杀软查杀能力或免杀能力的判断指标。

5、完全不必要苛求一种免杀技术能bypass所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。

6、由于白名单程序加载payload的免杀测试需要杀软的行为检测才合理,静态查杀payload或者查杀白名单程序都没有任何意义,所以这里对白名单程序的免杀效果不做评判。

一、Cmstp.exe介绍

Microsoft连接管理器配置文件安装程序(CMSTP.exe)是用于安装连接管理器服务配置文件的命令行程序。CMSTP.exe接受安装信息文件(INF)作为参数,并安装用于远程访问连接的服务配置文件。

攻击者可能会使用CMSTP.exe调用恶意的INF文件。与Regsvr32 相似,CMSTP.exe可能被利用从远程服务器加载和执行DLL或COM脚本(SCT)。由于CMSTP.exe是合法的,经过签名的Microsoft应用程序,因此该执行过程也可以绕过AppLocker和其他白名单防御。

在windows中文件路径

由于Cmstp.exe加载payload的免杀测试需要杀软的行为检测才合理,静态查杀inf或者sct或者Cmstp.exe文件自身都没有任何意义,所以这里对Cmstp.exe的免杀效果不做评判,以第三种sct文件的免杀率作为参考。

二、Cmstp.exe使用

2.1 执行本地dll文件

Cmstp.exe可以通过inf文件加载本地dll,我这里以msf生成的dll为例进行测试。

通过msfvenom生成DLL文件

配置inf文件,其中字段需要包含恶意DLL文件的本地路径或远程执行的WebDAV位置。这样就能从本地或Webdav中加载DLL文件。完整代码如下。

在msf中监听

在测试机器执行

msf中可正常上线

打开杀软测试,发现360会对行为预警。关闭360后火绒并没有反应。

因为dll文件是msf原生态的肯定被杀很严重,所以这里测dll的免杀就没什么意义了。

2.2 直接执行cmd命令

还可以将上面代码中的 换成,在此项下可以直接执行命令程序,例如:

执行命令,可触发计算器程序。

2.3 加载执行sct文件

除了DLL文件外,cmstp还能够运行SCT文件。

首先需要生成sct文件,这个和《远控免杀专题(38)-白名单Rundll32.exe执行payload》文章中的“3.1 远程加载SCT文件”基本一致。我这就简单描述一下。

1、首先用msfvenom生成基于csharp的shellcode,我这是生成的x64的,注意这个要和后面rundll32的版本相一致。

2、然后在vs2017中创建C#的Console工程,.Net版本建议2.0,这样兼容性好一些,如果选了net 4.0。其他电脑上没有装4.0的话可能就没法运行了。

代码如下,把内容放到相应MsfPayload位置。

修改一下项目属性,设置启动对象为MSFWrapper,编译生成exe,我这生成的就是默认的

3、将exe转换为脚本文件

下载DotNetToJScript:

将上面生成的复制到DotNetToJScript目录下,执行命令生成文件

4、这时需要对sct文件做一些处理,把头部和尾部替换成下面的JScript代码

原始是这样的

替换后为这样的

注意尾部代码也要替换。

4、将文件放在自己的web服务器上,我的是

在msf中监听

然后配置inf文件,和上面的类似,只是需要包含scriptlet的URL。最终的INF文件需要包含以下内容:

然后执行

msf可正常上线

打开杀软进行测试,依旧360行为预警

上面的也可以替换成,这样当powershell被禁用的时候,可以作为备选方案。可以从这里下载。有时候会因为github网络问题执行不成功,可以放在自己服务器上加载。

文件在virustotal.com上查杀率为21/57。

2.4 下载并解析远程inf文件

网上提到cmstp还可以加载web服务器远程配置文件,命令如下。

不过我在多种系统进行多次尝试都没成功,会提示一个下面的错误。

cmstp加载远程inf应该只能从Webdav服务器加载。

比如在内网另一台服务器上,路径为,内如如下。

在10.211.55.2上的内容如下:

执行,可触发计算器。

三、参考资料

使用CMSTP绕过AppLocker的方法介绍:

使用cmstp绕过应用程序白名单:

AppLocker Bypass – CMSTP:

powersct.sct:

Windows上传并执行恶意代码的N种姿势:

E

N

D

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200319A07UUO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券