C/C++教程

De1CTF2019 DeepInReal

本文主要是介绍De1CTF2019 DeepInReal,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一道有亿点复杂的取证题
附件超级大,建议先给百度网盘整个脚本再下载,网上找到的方法,亲测可用


翻了很久也没找到原题目,大概意思是要从这个嫌疑人的电脑里找flag,据说比赛时还给了四个hint。

转自大佬wp


解压压缩包获得三个文件
image
先看看这个txt
image
去搜一下世界上最常见和最弱的密码
image
那么我们用题目所提供的加解密软件 WinAES 和密钥 123456 即可解密 recovered.bin 文件。
image
得到的这个就是解密好的
image
浅浅010看一下
image
可以说明是vmdk镜像文件,但是这个文件头明显不对,去找个正常的vmdk改一下文件头
image
这里改完保存好之后最好复制一份留个备用


因为除了vmdk别的也没啥提示所以要选择去VM加载这个镜像文件
成功进入系统,发现需要登录密码,输错一次之后会有密码提示-headers,可以推出是刚刚恢复后的二进制文件的文件头i_love_kdmv
image
成功进入,发现桌面有个便签,大概意思是,“你不应该到这里来,我已经删除了一条重要的钥匙,怎么找到我?”。
image
可以去搜搜win10系统创造桌面便签的方式win+w
运行后右侧弹出窗口
image
可以看到sketchpad 功能处写着 bitlock,点进去看看。
image
发现密码linj920623!@#的bitlocker密码,去我的电脑里发现加密磁盘
image
输入密码成功解密
image


点进第一个文件夹(备份文件夹)可以看到一个ethpass.dic,明显是一个字典文件,搜一下eth,后面的这块的就不会了。。。
image
一个字典文件一个以太坊钱包信息文件
image
写脚本爆破密码和私钥(wp拿的)

点击查看代码
import eth_keyfile
import json

fp = open('ethpass.dict', 'r')
wallet = json.loads(open('UTC--2019-07-09T21-31-39.077Z--266ed8970d4713e8f2701cbe137bda2711b78d57', 'r').read())

while True:
    try:
        password = fp.readline().strip().encode('ascii')
        if len(password) <= 0 :
            print("password not found")
            break
    except:
        continue
    try:
        result = eth_keyfile.decode_keyfile_json(wallet, password)
    except:
        continue
    print(password)
    print(result)
    break

运行脚本得到加密钱包密码为 nevada,钱包私钥为 VeraCrypt Pass: V3Ra1sSe3ure2333,而且私钥还提示了VeraCrypt加密,那首先需要找到加密文件。
image
官方wp用了取证大师,并且要加载的是之前备份的完整镜像,找到的这个文件就是加密文件
image
结合据说是其中一个hintStartup,也就是自启动文件,去搜这个文件一般来说目录在哪,在运行里输入shell:startup
image
弹出来的就是要找的文件夹,我做的时候一开始是没看到文件的,然后点了显示隐藏文件才看到
image
把这个自启动程序拿出来看一下发现正是对我们要找的加密文件进行开机自动删除
image
用DiskGenius加载之前备份的磁盘或者直接在取证大师里都可以把文件导出来
image
直接用密码V3Ra1sSe3ure2333使用 VeraCrypt进行解密并挂载,进入磁盘发现全是图片
image
最后有个txt,点开说一共有185个文件但是现在只有184个文件,那就是有一个文件被隐藏了
image
试一下NTFS,发现被隐藏的文件
image
简单分析一下,大概意思是flag被存在flag.zip里,flag.zip在database(数据库)里
image
桌面上有个phpstudy和Navicat
image
image
这两个是可以搞MySQL数据库的,但是因为比赛是2019年的,镜像中的Navicat试用版已经过期,那就在phpstudy上找找,这里有个备份还原数据库,不过需要密码。
image
image
其实可以选择重置密码
image
但是我选择直接打开数据库目录
image
然后把这几个文件夹复制到我自己的电脑上
image
一开始试了一下直接用FileLocator Pro搜zip,但是没什么发现,想一想可能是经过了编码,先试试比较常见的base64,随便找个zipbase64加密一下,抓个文件头去搜
image
image
这个提出来解码就是zip文件不过结尾带了点东西
image
存下来之后拿到010发现最后这个应该是压缩包的注释,需要密码,把这段删了打开压缩包果然需要密码。
image
试一下NTFS搞出来的那串,成功解开压缩包,得到flag
image


过程参考:
官方wphttps://github.com/De1ta-team/De1CTF2019/blob/master/writeup/misc/DeepInReal/readme_zh.md
另一位参赛大佬wphttps://www.anquanke.com/post/id/183507#h2-0

这篇关于De1CTF2019 DeepInReal的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!