使用CMSTP绕过AppLocker的方法介绍

CMSTP是一个与Microsoft连接管理器配置文件安装程序关联的二进制文件。它接受INF文件,这些文件可以通过恶意命令武器化,以脚本(SCT)和DLL的形式执行任意代码。它是一个受信任的Microsoft二进制文件,位于以下两个Windows目录中。

AppLocker默认规则允许在这些文件夹中执行二进制文件,因此我们可以用它来作为bypass的一种方法。该方法最初是由Oddvar Moe发现的,使用这个二进制文件可以绕过AppLocker和UAC,具体可以参阅他的博文。

DLL

通过Metasploit Framework的msfvenom生成恶意DLL文件。

INF文件的RegisterOCXSection需要包含恶意DLL文件的本地路径或远程执行的WebDAV位置。

Metasploit multi/handler模块需要配置为接收连接。

当恶意INF文件与cmstp一起提供时,代码将会在后台执行。

Meterpreter会话将从DLL执行中打开。

SCT

除了DLL文件外,cmstp还能够运行SCT文件,这在红队操作中扩展了二进制的可用性。 Nick Tyrer最初通过Twitter展示了这种能力。

Nick Tyrer还编写了一个名为powersct.sct的scriptlet,可以将其用作执行PowerShell命令的备选解决方案,以应对本机PowerShell被阻止的情况。UnRegisterOCXSection需要包含scriptlet的URL。最终的INF文件需要包含以下内容:

当INF文件被执行一个新的窗口将打开,这将允许用户执行PowerShell命令。

代码执行也可以通过使用scriptlet来调用恶意可执行文件。INF文件需要包含scriptlet的远程位置。

在执行INF文件时,将会打开一个新的命令提示符窗口,这表示代码已被成功执行。

成功获取到一个Meterpreter会话。

总结

使用CMSTP二进制来绕过Apple限制和代码执行。CMSTP需要INF文件并在执行时生成一个CMP文件,它是连接管理器设置文件。因此,如果恶意攻击者已经开始使用此技术,且CMSTP.EXE二进制无法被AppLocker规则阻止的情况下,则需要将这两个文件作为IoC进行监视。

参考

https://gist.github.com/netbiosX/15c963465bf1e78969fb3347c43b45b9

https://gist.github.com/netbiosX/297ea22d3475bb7216a7525f1ee82568

https://gist.github.com/NickTyrer/0604bb9d7bcfef9e0cf82c28a7b76f0f/

https://gist.github.com/NickTyrer/bbd10d20a5bb78f64a9d13f399ea0f80

https://msitpros.com/?p=3960

https://bohops.com/2018/02/26/leveraging-inf-sct-fetch-execute-techniques-for-bypass-evasion-persistence/

https://bohops.com/2018/03/10/leveraging-inf-sct-fetch-execute-techniques-for-bypass-evasion-persistence-part-2/

*参考来源:pentestlab,FB小编 secist 编译,转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-05-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hongten

hadoop2集群环境搭建

在查询了很多资料以后,发现国内外没有一篇关于hadoop2集群环境搭建的详细步骤的文章。

1572
来自专栏Java3y

HTTP就是这么简单

为什么要学HTTP? 我们绝大多数的Web应用都是基于HTTP来进行开发的。我们对Web的操作都是通过HTTP协议来进行传输数据的。 简单来说,HTTP协议就是...

3193
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Deployer自动部署Laravel应用程序

Laravel是一个开源的PHP Web框架,旨在使常见的Web开发任务(如身份验证,路由和缓存)变得更加容易。Deployer是一个开源的PHP部署工具,为许...

3301
来自专栏运维小白

Linux基础(day38)

10.32/10.33 rsync通过服务同步 rsync 通过服务的方式同步 要编辑配置文件/etc/rsyncd.conf 启动服务rsync --daem...

2016
来自专栏happyJared

基于Docker的Redis高可用集群搭建(redis-sentinel)

  之前介绍了用docker来搭建redis主从环境,但这只是对数据添加了从库备份(主从复制),当主库down掉的时候,从库是不会自动升级为主库的,也就是说,该...

5421
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使...

3390
来自专栏伪君子的梦呓

下载 Jekyll,并使用它在本地搭建一个博客

1514
来自专栏张戈的专栏

Nginx-helper纯代码版,文章评论发布自动清理Fastcgi缓存

摘 要 张戈博客之前分享过Nginx开启fastcgi静态缓存加速的教程,文中也提到了WordPress对应的最佳配套插件:Nginx-Helper。本文分享...

3857
来自专栏博客园迁移

jenkins自动部署应用到tomcat中,编译后shell脚本的简单示例

1.先配置好jenkins需要用到的其他外部组件  jdk,maven,git/svn

1913
来自专栏北京马哥教育

HTTP 协议漫谈

简介 网络上已经有不少介绍 HTTP 的好文章,对HTTP的一些细节介绍的比较好,所以本篇文章不会对 HTTP 的细节进行深究,而是从够高和更结构化的角度将 H...

29511

扫码关注云+社区

领取腾讯云代金券