0x00我是菜鸡
这题算是做过的取证题里很复杂的了,拿出来复现一下
大部分内容参考了套神等大佬的博客,先贴在上面
https://blog.csdn.net/qq_42880719/article/details/120000111
https://blog.csdn.net/u010418732/article/details/120009187
0x01wmctf题解
因为没有取证大师,我这里先选择了用FTK挂载镜像
(其实可以直接用FTK加载磁盘文件为驱动器,从虚拟机打开,但和这题关系不大,从Tokeii大佬处学到的)
Hint:曾远程过其他电脑
也是从Tokeii大佬的博客学到这里大概有几种思路
1.default.rdp文件
2.注册表搜索Terminal Server Client
3.BMC 与bin缓存文件,可缓存远程桌面图片,文件位置:%userprofile%\AppData\Local\Microsoft\Terminal
Server Client\Cache**。
4.Credentials 位置:%userprofile%\AppData\Local\Microsoft\Credentials**
这里找到了bin文件,可以用工具BMC-tools文件导出图片,看了下图片,大概是访问的电脑的一些截图,有一万多张需要拼接,这里因为是复现太麻烦了直接抄答案
可以看出VeryCrypt的密码 5eCuri7yPaSsW0rd@__WMCTF
之后开启autopsy
大概分析出来的加密文件有这些,这里就没有取证大师那么智能了,可以直接找到VC加密的文件,所以只能手动试,而且第四个名字的字符串比较奇怪,猜一下可以发现是第四个
用上面的密码在VeryCrypt中挂载
可以拿到一个nox-disk2.vmem
DiskGenius挂载,读已删除文件,发现一张通讯录截图
根据安卓的特性可以直接从/data/com.android.providers.contacts/databases/导出通讯录数据库
数据库中发现加密的字符串,猜测是AES,密钥锁屏密码(navicat出了点问题先用博客里师傅的图了)
nox是夜神模拟器,这个文件是夜神模拟器的镜像文件,下载夜神模拟器的双开器挂载镜像
取证解锁锁屏密码,很牛批
在早期版本(2.3-5.1)的Android手机中,锁屏密码相关的文件如下,这种类型的加密方式比较简单,只需要破解相关的SHA1的哈希值即可。
/data/system/password.key
/data/system/gesture.key
在6.0-8.0版本的Android手机中,锁屏密码相关的文件如下,该类型的加密方式则相对复杂,应该采用的是scrypt-hash算法(https://github.com/dannycoates/scrypt-hash)。
/data/system/gatekeeper.pattern.key
/data/system/gatekeeper.password.key
解密脚本
#!/usr/bin/python
# -*- coding:utf-8 -*-
import struct
import binascii
import scrypt
N = 16384;
r = 8;
p = 1;
f = open('gatekeeper.pattern.key', 'rb') # 读取gatekeeper.pattern.key文件
blob = f.read()
s = struct.Struct('<' + '17s 8s 32s')
(meta, salt, signature) = s.unpack_from(blob) # 提取其中关键的信息
f1 = open('password.txt', 'r') # 读取字典
lines = f1.readlines()
for data in lines:
password = data.strip()
to_hash = meta
to_hash += password # 将字典中读取的密码和meta信息组合成to_hash
hash = scrypt.hash(to_hash, salt, N, r, p)
print
'signature %s' % signature.encode('hex')
print
'Hash: %s' % hash[0:32].encode('hex') # 取hash值的前32位
print
'Equal: %s' % (hash[0:32] == signature)
if hash[0:32] == signature: # 如果相同,程序结束
print password
print
"OK"
exit()
windows装那个scrypt库很麻烦…哭了
套神博客中说可以用hashcat非预期,完全没用过,试一下之后补充
解锁后可以直接看到联系人信息,算是hint
用锁屏密码解密AES后得到flag
0x02 层层取证
稍微有点绕,不是很难,这里直接拿当时比赛写的wp了
FTK打开磁盘镜像读到hint
hint:你连电脑都不能仿真打开,还想要flag?
用Arsenal Image Mounter挂载镜像并且另存位vmdk文件后在vmware里挂载磁盘作为虚拟机打开
volatility用hashdump获取用户xiaoming的密码
也可以用Passwarekit直接得到
xiaoming_handsome输入密码后成功开机,读到便签上下层的word文档的密码,但是电脑上没有发现word文件
(这里也可以直接用volatility看StikyNot.exe便签进程)
Win7便签存储位置: %appdata%\Microsoft\Sticky Notes
C:\Users\你的用户名\AppData\Roaming\Microsoft\Sticky Notes
StickyNotes.snt文件为便笺的数据文件。
StickyNotes.snt的编码问题:
fs22字符段后面就是便签里面的内容,如果便笺含有中文,中文内容是以**“\xx\xx”形式存在的,然后每行都会以\par**结尾。可以把“\”替换为“%”,用urldecode方式解密,编码注意选择为gb2312
参考https://blog.csdn.net/weixin_46081055/article/details/119845409
在内存中看见了一个D盘的BitLocker恢复密钥文件的浏览记录,直接用Elcomsoft Forensic Disk Decryptor根据磁盘镜像文件和mem文件破解出bitLocker恢复密钥解锁磁盘
在解锁的磁盘中看到流量包2.pcapng,发现其中的UDP包中有rar文件的文件头,追踪UDP流,提取流量包中的数据恢复rar文件
然后根据压缩文件的提示用开机密码解压rar以及用之前得到的word密码打开docx文件,flag就在文件中
0x03 wifi
这题看了wp感觉不难,分数给的满高的,但当时有的东西没接触过,所以没做出来,感觉还是学到东西了
先贴下雪殇大佬的博客,学到很多http://www.snowywar.top/?p=2554
大概就是vol分析镜像文件,得到一个zip,zip的密码说了是网络适配器的UID,但当时不知道在哪找,现在知道关键字查Interface就可以查出来
拿到密码解zip得到.cap的密码
服务器端的流量包是一个哥斯拉的shell,base64decodepayload发现是做了三次异或加密,加密的key已知,所以再做一次异或就可以看到源码,知道后看客户端发出的流量,用哥斯拉的加密方式解密得flag
0x04 羊城杯
第一次出题,还是出简单了啊
题很简单,主机上连git的话会留下一个ssh,里面有连接的邮箱,可以查到github账号
之后本来想让大家解一个加密的小程序的,但因为出题催的很紧(之前鸽太久了…)而且misc其他题也不简单,就想不要出太难了,没有加密直接反编译或者读源码就能拿到flag
网上随便找个unpack项目https://github.com/xuedingmiaojun/wxappUnpacker
本来老版本微信直接拖下来wxapkg即小程序源码是加密过的,新版微信取消了这点,本来加密的解密方法
https://blog.csdn.net/yeyiqun/article/details/109172556
github工具https://github.com/BlackTrace/pc_wxapkg_decrypt
出题踩的一些坑:
dumpit拉镜像之前一点要把该删的东西都删了,不然很容易被非预期啥的,可以用cleanmgr清内存什么的
win7镜像拉下来dumpfile内容都是空的,试了好几个拉镜像的软件都这样不知道为什么,后来换了xp镜像就可以了,如果有大佬知道为什么球球告诉孩子一下
大概就这些吧~~~