CHM文件是各种内容的压缩编译,例如HTML文档,图像和脚本/ Web相关的编程语言,如VBA,JScript,Java和ActiveX。内容使用HTML Help executable program(hh.exe)加载的Internet Explorer浏览器基础组件显示。
攻击者可能滥用此技术来隐藏恶意代码。把嵌入payload的自定义CHM文件可以传送给受害者,然后由用户执行触发。CHM执行还可以绕过旧版和/或未修补系统上的应用程序白名单,这些系统没有监控通过hh.exe执行二进制文件。

技术复现
新建一个HTML文件并填入以下内容,使用Easy CHM工具编译成CHM文件。

command exec
height=1>
x.Click();
结果验证
绕过windows defender执行命令

360静态查杀结果

360动态防御被绕过

尝试使用CHM执行远控
尝试通过cmd调用powershell、通过regsvr32执行远程代码、通过hh释放本地文件加载均被拦截。
结果验证

威胁取证
虽然防护软件会拦截一些命令的执行,但是在执行calc的时候并没有进行拦截操作,猜测是使用白名单限制,此种方法存在被白名单绕过的风险,在不变更攻击原理的情况下不影响以下规则的检测效果。
进程特征:(级别:高)
# hh.exe作为父进程去创建其他进程,是一种可疑行为
ParentImage contians 'regsvr32.exe'

加载项特征:(级别:高)
# 在执行payload创建COM对象时会使用Jscript脚本,这样系统就会调用脚本程序
eventid = 7 AND ImageLoaded contains 'jscript'

参考
本文探讨了CHM文件如何被攻击者用来隐藏和执行恶意代码,通过创建自定义的CHM文件,可以绕过旧版或未修补系统的应用程序白名单。尽管一些安全软件能拦截特定命令,但仍然存在白名单绕过风险。关键行为包括hh.exe作为父进程创建其他进程,以及利用Jscript加载项。
2835

被折叠的 条评论
为什么被折叠?



