引言
奔涌吧,后浪!今天是五四青年节,节日快乐呀!
这几天有个 De1CTF,五一前几天出去玩了,考虑到今天早上比赛就结束了,于是昨晚来看了一眼题目,做了个 Misc 杂烩题来感受一下,还是挺有意思的。
De1CTF 2020
竞赛时间: 2020-05-02 09:00:00——2020-05-04 09:00:00
参赛方式:组队本届De1CTF是由XCTF联赛的合作单位De1ta战队组织,由赛宁网安提供技术支持。作为第六届XCTF国际联赛的分站赛,本次比赛将采用在线网络安全夺旗挑战赛的形式,面向全球开放。
此次比赛冠军队伍将直接晋级第六届XCTF总决赛(总决赛具体地点时间待定,将在确定后通知获得资格的国际和国内队伍)。其他参赛的队伍也将获得积分,来竞争XCTF决赛的其他席位。
大多数情况下,flag的形式为De1CTF{this_is_a_sample_flag},请提交包含De1CTF{}的完整flag,来进行得分;如果flag是其他形式,题目中会阐明。
面向全球开放可还行,于是乎比赛题目都双语的,还用了 Google Drive 做附件存储。看了一下排行榜,歪果师傅们贼厉害啊。
最后顺便总结了一下关于 NTFS 交换数据流的相关应用吧。
Misc杂烩/Misc Chowder
https://drive.google.com/file/d/1-SrQ8JbD8zAQNVlvuwu3T2Lbu_o1knRQ/view?usp=sharing
Hints:
流量包中的网络连接对解题没有帮助 The network connection in pcap is not helping to the challenge
不需要访问流量里任何一个的服务器地址,所有数据都可以从流量包里直接提取 Do not need to connect the network, every data can be extracted from the pcap
In the burst test point of compressed packet password, the length of the password is 6, and the first two characters are “D” and “E”. 压缩包密码暴破考点中,密码的长度为6位,前两位为DE。
网络流量提取
首先 Google Drive 下载下来是个流量抓包文件 Misc_Chowder.pcap
。
根据提示,网络连接和服务器地址都没用的,那直接导出 HTTP 对象好了。
按照大小排序发现是上传文件的页面,表格里是上传的文件。
依次有7张图片,分别导出来。
前6张是正常的图片,第7张 7.png
,是一个 Google Drive 的分享地址。
也就是
https://drive.google.com/file/d/1JBdPj7eRaXuLCTFGn7AluAxmxQ4k1jvX/view
(这里最开始我数字1
和字母l
没分清楚,于是访问了没分享文件,仔细看了才发现……
Word 隐写
下载后解压得到一个 readme.docx
,打开报错,看来文件里改了啥东西。
选择是
后得到以下内容,看起来好像是没啥关系(确定)。
看了一下文本也没有隐藏文字,看来是 word 内容用处不大。
我们都知道,.docx
格式的 word 其实对应着一个压缩包,那就用压缩文件打开看看。
发现直接就在目录下,简单干脆真好。
压缩包密码暴破
You_found_me_Orz.zip
里有一个 You_found_me_Orz.jpg
,题目中有 hint 说 密码的长度为6位,前两位为DE
。于是就来爆破好了。
使用 DE????
进行掩码爆破,最开始先试了一下纯大写字母、纯小写字母、纯数字、大小写字母组合,发现都不对,后来试了大写字母和数字组合,跑了一阵子密码出来了。就是 DE34Q1
.
话说为啥这个不能跑满 CPU,感觉爆破好慢……
正好有带佬发现了一个破解 zip 文件的工具/库,叫 yazc (Yet Another Zip Cracker).
仓库在这里:https://github.com/mferland/libzc
The libzc library is a simple zip cracking library. It also comes with a command line tool called ‘yazc’ (Yet Another Zip Cracker).
不过对于掩码爆破,估计要先生成一个字典再来爆破。
解压后得到了这张图片。
图像隐写
拖进 010editor 里看了一下,发现文件拼接了一个rar压缩包。
foremost 没提取出来,于是手动提取一波得到了这个压缩包。
解压上面的 rar 压缩包,得到的flag.txt
内容如下:
De1CTF{jaivy say that you almost get me!!! }
啥???又有假的 flag!不过快了快了。
(顺便查了一下jaivy
是个师傅的 ID
123.txt
this is a 123.txt file from jaivy!
666.jpg
假的 jpg,实际上是 png 啦。
看了半天这个图片,都没找到哪里有隐写……常见的图像隐写都不起作用。
NTFS 交换数据流隐写
最后又去看了看压缩包的 Hex,发现最后这里有个奇妙的东西看着就不对劲。
你看它多像 flag 呀!
再看这个冒号:
,突然想起来之前看师傅们关于内存取证的 WP 里提到过 NTFS 交换数据流隐写,虽然没细看,但说不定这里就是呢!
于是查了一下相关的资料。
在 NTFS 文件系统中存在着 NTFS 交换数据流(Alternate Data Streams,简称 ADS),这是 NTFS 磁盘格式的特性之一。每一个文件,都有着主文件流和非主文件流,主文件流能够直接看到;而非主文件流寄宿于主文件流中,无法直接读取,这个非主文件流就是 NTFS 交换数据流。
ADS 的作用在于,它允许一个文件携带着附加的信息。例如,IE浏览器下载文件时,会向文件添加一个数据流,标记该文件来源于外部,即带有风险,那么,在用户打开文件时,就会弹出文件警告提示。再如,在网址收藏中,也会附加一个 favicon 数据流以存放网站图标。
ADS 也被用于一些恶意文件隐藏自身,作为后门。
要查看 ADS 内容,可以使用 Ntfs Streams Editor 软件,或者 LADS,或者用 dir /r
。
要注意的是,这里有个坑,使用除 WinRAR 以外的软件进行提取会造成数据流丢失。所以必须要用 WinRAR 来解压才行!
这里坑死我了,我用 Bandizip 解压后找了半天都没找到这个 txt 文件,最后迫不得已下了个 WinRAR,广告烦死了((
解压后通过 dir /r
可以看到哪里有 ADS。
这里发现就藏在 666.jpg
里了呀!
使用 notepad
可以查看里面的内容了。
notepad 666.jpg:fffffffflllll.txt
于是 flag 就是
De1CTF{E4Sy_M1sc_By_Jaivy_31b229908cb9bb}
关于 NTFS ADS 的一些总结
这里顺便再整理一下吧,方便后面需要的时候来找。
查看 ADS
LADS
除了使用上面的方法查看外,还可以使用 LADS 工具。
下载地址: 戳这里
使用方法:
搜索 File
所在目录及其子目录下的所有数据流:(/S
表示递归子目录)
lads.exe File /S
或者把lads复制到要搜索的目录,就不用指定file了。
lads.exe /S
而后再用 notepad 之类打开就完事了。
或者也可以用 powershell 查看内容。
利用 -Stream
参数来提取。
cat .\666.jpg -Stream fffffffflllll.txt
# 其实就是 Get-Content .\666.jpg -Stream fffffffflllll.txt
不过怎么说呢,这个软件挺老了,作者网站上说Windows下用 dir /r
都有这个功能了,于是不再需要 LADS 了,也因此不提供下载了,妙啊 2333.
AlternateStreamView
这个网上一搜就有下载了。
使用起来也简单方便。支持数据流的查看和提取。
Ntfs Streams Editor
下载地址: https://ntfs-streams-info.en.softonic.com/
或者 http://pan.baidu.com/s/1c2zbNaC
使用起来也很方便,搜索文件所在目录就可以了,而且直接就把隐藏在 ADS 中的内容显示出来了。
(就是这个软件报毒说有广告啥的,emmm 看个人吧,也是个老软件了
当然,貌似用一些内存取证的工具也能提取,这里不说了啦。
写入 ADS
echo
首先创建一个文件,再写入隐藏的信息。
echo "hello" > 1.txt
echo "miaotony" > 1.txt:2.txt
注意一下,用dir
是看不到这个隐藏的数据流哒。
同理使用 binwalk / foremost 也不能看到隐写的数据。
type
还可以使用type
命令,将已经存在的文件附加上去。
# type "要隐藏的附加文件">"宿主文件":"要隐藏的附加文件"
type "2.txt" > "1.txt":"2.txt"
可以用它来向 ADS 中写入图像/音频/可执行文件。
type "hidden.jpg" > "targe.jpg":"hidden.jpg"
type "hidden.mp4" > "targe.jpg":"hidden.mp4"
type "hidden.exe">>"targe.txt":"hidden.exe"
type "hidden.exe">>"targe.exe":"hidden.exe"
不过在 Windows Vista 及后续系统中已经无法直接运行 ADS 中的可执行文件了。
删除 ADS
可以使用 Ntfs Streams Editor,搜索到勾选删除就好。
也可以使用streams.exe
这个软件删除。
下载地址:戳这里
streams.exe -d <File>
加入-s
参数则递归子目录删除。
如果报错就先把相关的进程结束掉再执行。
注意不要在根目录下执行,以防删除有用的数据流呀。
小结
再说个有意思的事,浏览器下载文件的时候,会向文件添加一个数据流,标记该文件来源于外部,即可能带有风险。
估计 office 提示也是根据这个来的吧,嘻嘻。(之前还想过这个问题呢 233
主要蹭这个机会理了一下 NTFS 交换数据流的相关应用。
这次 De1CTF 题目质量还是很不错的,Misc 签到题 Telegram Channel 看一眼就能拿分,问卷题访问就拿到手了,还是很友好的呢。
至于出现一堆 mc_*
与 minecraft 有关的题,出题人是多喜欢 MC 啊,emmm 太难了没搞懂(虽然没细看。 什么 easybgm 噢真没找到隐写在哪里。。
大概就是这些内容了吧。
(溜了溜了 结课论文要写不完了