危险的CHM电子书

0x1 摘要:

利用CHM格式文件的hhctrl控件的灵活易用性,可以成功执行任意可执行程序,而且没有UAC报警,CHM格式就变成了一个具有潜在威胁的EXE程序.因此黑客很容易利用这种帮助文档执行恶意程序,广大网民针对帮助文档文件的警惕性往往比EXE文件要低很多,使黑客更加容易入侵成功。

0x2 原理:

CHM文件格式微软1998年推出的基于HTML文件特性的帮助文件系统,由于使用方便形式多样,常被用于制作电子书。CHM支持各种脚本语言,以及压缩的HTML文件、图像、音频、视频文件。在CHM文件中利用"shortcut"命令使其运行任意可执行程序。使用shortcut快捷键的热点可以启动其他应用程序,也可以使用快捷键来激活Windows的控制面板。使用快捷命令,可以指定要打开的程序,发送一个标准的Windows消息。

Button:指定按钮样式,可选

Command:调用命令的快捷方式

Font:指定字体属性

Item1: 指定可执行文件(.exe)的文件路径,及任何传递到该程序的参数。这些值之间用逗号分隔。HTML帮助不支持%WINDIR%或其他系统变量中的文件路径。

Item2: 指定一个标准的Windows消息,wParam参数值,和值的lParam的消息ID。这些值之间用逗号分隔。

Text:指定链接文本,如果程序无法找到可以指定跳转到一个HTML文件。

 

在阅读电子图书时,可以在页面中直接调用Windows的记事本或写字板,。这一应用我们可以通过在页面中插入相应的快捷方式按钮来实现。例如,启动记事本按钮的制作方法是,直接插入如下代码。 

< object id="hhctrl" type="application/x-oleobject"classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"> 
< param name="Command" value="Shortcut"> 
< param name="text" value="text:启动记事本"> 
< param name="FONT" value="宋体,9,,underline"> 
< param name="Item1" value=",notepad.exe"></object>

一般情况触发这个动作需要点击一个页面上的按钮来启动,而恶意的CHM一般是自动运行的,这也是一个关键。

0x3 测试PoC:

安天实验室shadowhunter团队的小伙伴从网络上获取到的测试程序,经过测试发现是自动触发运行的。

 

双击打开calc.chm之后我们发现成功执行了计算器程序,也没有任何的系统警告,如果把calc.exe换成恶意程序,运行后后果将不堪设想

使用hh进行反编译,

HH.EXE -decompile <输出路径> <目标chm文件>

相关的代码如下:

     打开doc.htm可以看到如下代码:


它利用JavaScript脚本“x.Click()”模拟点击控件“x”,点击之后触发shortcut命令执行”cmd /c calc”

0x4 真实案例分析:

从网络上获取到一个真实的样本案例,首先我利用系统自带的hh.exe把它反编译,保存到桌面的test.html目录


反编译之后可以看到它包含如下文件

 

对比之前的打开calc PoC的chm文件反编译的文件可以发现,文件基本相同,可见该样本就是从这个PoC里修改得到的。doc.htm文件的大小与PoC不同,打开doc.htm我们发现它可以自动触发下载可执行文件并执行的操作。与PoC的差异在于自动点击之后触发shortcut命令执行pwoershell脚本。PowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能。这里利用System.Net.WebClient对象提供的DownloadFile方法来接收由URI标识的一个资源中的数据,接收到之后保存至%TEMP%natmasla2.exe,最后调用ShellExecute执行。

0x5 沙箱检测:

将该样本投放到安天追影高级威胁检测系统,分别测试了windows xp32和windows 7,发现都存在该安全威胁,可以监控发现电子书利用ShortCut自动创建威胁进程。

 

 

0x6 安全建议:

建议在收到电子书时候要像对待陌生EXE文件一样提高警惕,可使用虚拟机,使用杀毒软件或在线沙箱进行判断.对于广大网民最重要就是选择一个安全可信的电子书网站.



0x7 参考文献:

https://msdn.microsoft.com/zh-cn/library/ms644697

https://msdn.microsoft.com/zh-cn/library/ms524349

http://www.cnblogs.com/dreamer-fish/p/3816327.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值