Suvorov 发表于 2020-3-9 16:40

关于高校抗“疫”ctf大赛usb取证的wp及想法

本帖最后由 Suvorov 于 2020-3-9 19:25 编辑

题目:ez_mem&usb附上大赛链接:https://adworld.xctf.org.cn/competition
新人弟弟发帖 各路大神请指教 本人还是个弟弟水平打ctf 作为一个二进制手被里面的题目虐的不要不要的...


这时候推荐一下内存取证神器volatility,这个东西很强大,kali系统自带,大家都可以去试一试。关于使用方法都可以在网上搜得到,我在这里就不多说了。(毕竟自己也很难记住完整的用法hhh)


拿到题目附件,是一个数据报,很常规,估计就要从里面拿东西出来了。用wireshark打开来看看
   原谅保护色hhh护眼 整天对着电脑还是挺伤眼的
导出直接保存下来。一看这些东西什么upload_file.php看名字就知道有鬼,还出奇的大(40MB),里面必然有东西。
打开来看一下(用记事本什么哔哩吧啦的都可以)
很明显他把名字都告诉给你了,这个传了一个data.zip的东西,然后看下面的东东 PK很明显是zip文件头,说明这个"php"里把zip文件也给囊括起来了。现在我们只要获取这个zip包就好。
当然,我非常懒,所以在这又推荐神器foremost,一键分离不是梦。(其实还有个骚操作就是直接把给的那个数据报pcap文件给foremost掉,比自己导出对象搞得还清晰hhh)
得到一个zip之后打开看一眼,有一个data.vmem文件,这下事情就好办了,让我们到kali里面去解决这个data.vmem


————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
(事情搞完了)好的我又回来了hhh
接下来我们就要动用volatility这个神器了,打开kali开始搞事情


首先我们要简单来分析一下这个虚拟内存文件是在哪个平台下的,好让我们进行下一步操作
输入命令:volatility -f data.vmem imageinfo

可以看到是xp平台下的,好的我们又多了一个参数。接来下我们可以看看它运行过什么进程:
输入命令:volatility -f data.vmem --profile=WinXPSP2x86 pslist (应该用psscan也可以)

我们来找一找有没什么奇怪的进程。可以利用的看上去也就几个,其中explorer是文件管理器,cmd是命令行,conime我记得是输入法什么的...不过应该可以用一用,我们先从explorer里面看看
输入命令:volatility -f data.vmem --profile=WinXPSP2x86 memdump -p 1476 -D ./ (把1476东西dump下来,放在当前的目录下面)

让我们来分析这个dmp文件,我们可以看看有什么有意思的关键字,用flag作为东西搜索一下
输入命令:strings 1476.dmp | grep -E 'flag'
可以看到一堆很有趣的flag名字的文件

好像有flag.zip 还有flag.img 不过我猜测这玩意为了增加难度是不会那么容易直接给你搞到zip的。让我们接下来再看看从哪可以dump下来文件
输入命令:volatility -f data.vmem --profile=WinXPSP2x86 filescan|grep 'flag' 找到flag相关文件(一定要关键字,不然给你爆出来一堆文件)
(果然额只给了一个镜像文件)
我们把它dump下来。输入命令:volatility -f data.vmem --profile=WinXPSP2x86 dumpfiles -Q 0x0000000001155f90 -D ./

然后我们把文件后缀名改成img就可以进一步处理啦~
我们可以直接用binwalk神器解掉它,也可以用UltralISO打开hhh,反正里面有一个usbdata.zip。这个从UltralISO取的话会比较直观。我记得用binwalk的时候出了点小意外,得自己去用010editor修复了一下zip文件才正常hhh
(看上去就快搞定了)
现实给了你当头一棒——这玩意要密码才能解密。可是密码在哪?所以我们又得回到data.vmem。看看命令行那边有没什么线索
输入命令:volatility -f data.vmem --profile=WinXPSP2x86 cmdscan

好的我们可以看到还是很良心的 有个passwd:weak_auth_top100
解压成功!我们又进了一步,打开usbdata.txt看一看

这个东西非常像键盘输入的数据,所以我们可以推测这个USB设备是个键盘,所以我们可以尝试用脚本解密了。下面给出一张对应表:

接下来写脚本解密就是flag了~~最后一步让你们自己去试一试吧哈哈~
WP就是这样~ 比赛附件现在还可以从比赛网站里找 欢迎各方大神批评指正,希望和你们交流交流哈哈~
想法等我下次有空再更一更:lol先溜了

Suvorov 发表于 2020-3-9 16:48

我还没写完{:1_908:}突然有点事情 回来补上

abs117 发表于 2020-3-9 19:07

Suvorov 发表于 2020-3-9 16:48
我还没写完突然有点事情 回来补上

建议把所用工具打包,附上下载链接

Azhan1998 发表于 2020-3-9 19:16

建议楼主多带带我,我是弟中弟

Suvorov 发表于 2020-3-9 19:30

其实这应该是常规的操作,一路走下来,遇到卡住的地方回源头再继续找线索,基本上是这个逻辑

Suvorov 发表于 2020-3-9 19:32

abs117 发表于 2020-3-9 19:07
建议把所用工具打包,附上下载链接

在kali上基本上都有的

Suvorov 发表于 2020-3-10 12:45

这次比赛大神们来搞一搞pwn啊什么逆向啊都好 很多世界级的难题:'(weeqw虐惨

gaybc 发表于 2020-3-12 04:10

学到了键盘数据格式 好评

pantherTL 发表于 2020-3-12 10:10

这个好高级,,学习了。

zhanhai516 发表于 2020-11-13 10:26

好牛的牛人,望尘莫及
页: [1]
查看完整版本: 关于高校抗“疫”ctf大赛usb取证的wp及想法