一道 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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏deed博客

充分利用4G 空间 C8815 修改DATA分区,扩大存储空间,重新分配内置存储空间

2084
来自专栏圣杰的专栏

ABP入门系列(15)——创建微信公众号模块

源码路径:Github-LearningMpaAbp 1. 引言 现在的互联网已不在仅仅局限于网页应用,IOS、Android、平板、智能家居等平台正如火如...

3467
来自专栏沈唁志

什么是RESETful API 设计规范?

现在在开发中前后端都是分离开发,后端提供接口给前台,RESTful 架构,就是目前最流行的一种互联网软件架构,也相当于是接口规范

2732
来自专栏Petrichor的专栏

git:git commit 书写格式

  正如 git add 的作用是将文件放入暂存区, git commit 的作用是将修改提交到分支上。

4532
来自专栏技术换美食换不换

picu项目 golang使用体会

1133
来自专栏Jaycekon

Python-WXPY实现微信监控报警

概述:   本文主要分享一下博主在学习wxpy 的过程中开发的一个小程序。博主在最近有一个监控报警的需求需要完成,然后刚好在学习wxpy 这个东西,因此很巧妙的...

2.4K8
来自专栏JackieZheng

利用Solr服务建立的站内搜索雏形---solr1

最近看完nutch后总感觉像好好捯饬下solr,上次看到老大给我展现了下站内搜索我便久久不能忘怀。总觉着之前搭建的nutch配上solr还是有点呆板,在nutc...

3238
来自专栏逍遥剑客的游戏开发

September Nebula3 SDK 中的新东西

1084
来自专栏芋道源码1024

为什么我们做分布式要用 Redis ?

绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。这里...

1283
来自专栏Java成神之路

SQL server 2008 数据库企业版安装教程图解

SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。    在...

2772

扫码关注云+社区

领取腾讯云代金券