本文是从一个 CTF 题目中学到的一个新姿势,下面对我的学习做一个记录总结,给大家分享一下,希望大家多多参与一起分享学习。
题目描述
抓小鸡 MISC 题目(某比赛平台赛题)
刚开始拿到题目,打开 chm 后发现两个 pdf 文档,以为是 pdf 隐写,瞎搞了一段时间,发现自己粗心大意没看到题目提示 flag 就是小鸡的地址,根据题目提示怀疑是后门,之前没接触过 chm 后门,于是网上搜索一番,get 到新姿势。题目解题比较简单,直接 hh 反编译或者改后缀解压都能找到小鸡的地址。
下面来分享一下get到的新姿势
chm 是微软新一代的帮助文件格式,利用 HTML 作源文,把帮助内容以类似数据库的形式编译储存。CHM 支持 Javas cript、VBs cript、ActiveX、Java Applet、Flash、常见图形文件 ( GIF、JPEG、PNG )、音频视频文件 ( MID、WAV、AVI ) 等等,并可以通过 URL 与 Internet 联系在一起。
14 年的时候 @ithurricanept 在 twitter 上发了一个 demo ,通过 CHM 运行计算器:
将以上利用代码写入 html ,置于工程目录进行编译,生成 CHM 文件,运行此文件,弹出计算器。
我们可以在代码上稍作修改,通过 chm jsbackdoor msf 实现 get meterpreter 会话。
1、通过 MyJSRat 脚本获取到当前本地地址和外网出口地址
2、通过 MyJSRat 脚本命令开启 JSRat server
然后访问 http://192.168.152.150/wtf
获取攻击代码。
4、建立 html 文件,修改利用代码,代码主要用到了 html 中的 <OBJECT> 和 <PARAM> 标签,标签用法可以在 W3C 自行学习。
5、通过 easychm 选择 html 所在的文件夹制作 chm 文件,然后把 chm 文件上传到( virscan.org )网站查毒,大部分杀毒软件识别不出来,结果截图如下:
6、上面已经通过 MyJSRat 脚本命令开启 JSRat server ,这里直接开始利用。在客户机打开 chm 文件,然后在 kali 上可以看到已经由客户机上线,获取到 JS 交互 shell。
7、在 JS 交互 shell 中每执行一条命令,客户端都会有黑框一闪而过,解决方法是使用 JSRat 中的 RUN 来执行命令写入文件,再通过 read 来读取文件的输出,相对来说比较麻烦,所以可以通过获取客户端JS交互 shell 之后自动执行 powershell ,获取 meterpreter 会话。
这里通过 msf 的 web_delivery 模块来开启 powershell 的监听。设置参数如下:
Show targets 然后设置 powershell
URIPATH 设置为/,
SRVPORT 设置为与 JSRat server 的监听端口不一样的 8082
lhost设置为本机ip
payload设置为windows反弹连接reverse_tcp 其他参数自行探索。
8、通过 web_delivery 模块 exploit 后,会生成 powershell 攻击代码,客户端运行该代码时,我们将获取到 meterpreter 会话。
由于 powershell 攻击代码中存在特殊符号,直接放到 JSRat 来执行,会导致获取不到 meterpreter 会话,需要对攻击代码进行 base64 编码,刚开始搞不清楚为什么要先转 UTF-16 再转 base64,pcat 大佬提示 Windows 默认 unicode 编码就是 utf16 ,因此攻击代码要先经过 UTF-16 编码再转 base64。
操作如下,先将执行代码写入 1.txt,再通过命令将代码转为 base 编码字符输出。
9、获取到 base64 转码后的攻击代码后,构造 powershell 命令( bypass 可以绕过策略)。
然后通过 MyJSRat 开启 JSRat server 并让客户端连接后自动执行代码。
此时,客户端打开 chm 就会触发执行 powershell 命令,从而反弹一个 meterpreter 会话到 kali 上。
通过 sessions –i 查看所有已建立的会话,进入会话。
Chm jsbackdoor msf 实现 get meterpreter 会话到此为止。
杀毒测试
杀毒方面这里测试过火绒(rundll32和powershell均拦截并提示)、百度杀毒5.4(不拦截没提示,正常上线),其他杀毒软件可以自行测试。截图如下:
防御方法:
提高个人安全意识,对于这类文件,多注意一下,尽量别乱点,如果非要点,可以放到虚拟机里面。使用 process explorer 可以看到存在后门的 chm 文件会开启新的进程:
对于碰到这种后门,怎么溯源呢,其实也很简单,chm 是可以反编译为 html 的。 可使用 windows 自带的 hh.exe 进行反编译,也可使用 easychm 反编译,我采取的是笨方法,拷贝一份改 rar 后缀解压,查找文件是否存在后门。
小结:
此次写文为了复现如何制作CHM后门和防御,学习之前未接触过的知识,本着分享的精神,大家一起学习。
小编补充:我们这个平台发文章的要求不高,不蹭热点,不管你学习分享的技术是最新的还是比较老的,只要你的文章有一定的完整度就可以与大家一起分享所学所感,虽然回报不多,但是只要你是个爱分享的爱总结的人,是不会计较这么多的,等你来呦!加入知识星球只需两篇文章,每一篇还有 10 元补助,挺好的吧?哈哈!
参考:
http://blog.csdn.net/u012324979/article/details/51979969
https://www.secpulse.com/archives/37651.html
https://github.com/Ridter/MyJSRat