专栏首页信安之路一道 CTF 题 get 到的新姿势

一道 CTF 题 get 到的新姿势

本文是从一个 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

本文分享自微信公众号 - 信安之路(xazlsec),作者:\xeb\xfe

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Wecenter 反序列化执行任意 SQL

    在先知社区里看到一篇漏洞分析文章,个人觉得很赞,于是就动手跟进调试一遍。漏洞分析的时候会踩很多的坑,也试图寻找新的利用点,繁多的代码看的脑壳都疼了,而文章梳理下...

    信安之路
  • 记一次对 Java 项目的代码审计

    大家好,我是一只安全小菜鸡。老大扔给我一个项目,某项目的java审计。于是我就去进行我“第一次”审计。

    信安之路
  • 我是如何通关信安之路巅峰挑战赛的

    我滴个天啊。。。。。弱密码随意登陆。。。。。不好意思,这题我真是非预期解法,具体的预期解法,之前信安之路文章已发,就不仔细讲述啦!

    信安之路
  • 函数的强大之处

    接着上讲的游戏,我们可以用任何数字,10, 42, 10 亿,假设每关结束后 给玩家一些奖励分,奖励分多少取决于 继电器剩余数量。随着难度增加,剩下继电器会越...

    硬核编程
  • IOS隐藏键盘

    1、UIWebView加载网页后,点击网页内的链接在UIWebView内进行跳转时,键盘自动弹起;

    meteoric
  • Android中Looper的架构设计与赏析

    看完本篇文章,你将搞清楚以下所有的关于Handler相关的任何问题。如果你以后在面试中碰到Handler相关的问题,相信你会给面试官眼前一亮的感觉。

    吴延宝
  • AQR最最最新 | 计量经济学应用投资失败的7个原因

    “[T]he concept of multiple regression and the linear regression model in particu...

    量化投资与机器学习微信公众号
  • Handler都没搞懂,拿什么去跳槽啊?!

    做 Android 开发肯定离不开跟 Handler 打交道,它通常被我们用来做主线程与子线程之间的通信工具,而 Handler 作为 Android 中消息机...

    程序亦非猿
  • Redis部分数据结构方法小结

    Redis在工程开发中还是比较常用的Nosql内存数据库,简单巩固一下它的各种数据类型与用法~

    用户3003813
  • 数据部门如何All In AI

    通常,大数据部门会花费很大的力气构建数据平台,而这个数据平台除了能让研发,算法,分析师等角色爽一些,从宏观角度很大的节省部门人力成本,提高效率以外,似乎对公司/...

    用户2936994

扫码关注云+社区

领取腾讯云代金券