陇剑杯-2021-内存分析 Writeup


也不知道要写啥,干脆就写一些印象比较深刻的题目的wp吧

题目信息

  • 题型:MISC / 内存取证
  • 附件:Target.vmem tips.txt
  • 题目一:虚拟机的密码是_____________。(密码中为flag{xxxx},含有空格,提交时不要去掉)。
  • 题目二:虚拟机中有一个某品牌手机的备份文件,文件里的图片里的字符串为_____________。(解题过程中需要用到上一题答案中flag{}内的内容进行处理。本题的格式也是flag{xxx},含有空格,提交时不要去掉)。

题目一思路

内存取证中基本上查密码用Volatility的hashdump命令就可以出来了,我这边用的是Lovemem Lite(集成了Vol2和Vol3),在加载镜像的时候就已经出来了

flag:flag{W31C0M3 T0 THiS 34SY F0R3NSiCX}

题目二整体思路

这题的关键是:内存里存在一份华为备份相关数据。流程可以分成四步:

  1. 在内存中定位华为备份痕迹。
  2. 从内存中 carve 出 ZIP 条目,恢复 info.xmlpicture.xmlimages0.tar.enc
  3. 使用 kobackupdec 解密备份,得到可读的 images0.tar
  4. 解包图片目录,定位 Pictures/flag/,读取 flag 图片内容。

1. 定位内存中的备份痕迹

用Vol的命令filescan来扫描进程缓存的文件,然后查看文件,尤其是在桌面的文件,稍微翻两下就看到

2. 从内存中恢复备份核心文件

使用dumpfile命令来进行提取,提取关键条目。

dumpfiles -Q 0x000000007d8c7d10

Lovemem Lite中也可以直接右键提取

会导出以下文件:

获得的文件有.img和.dat,将.dat修改后缀为.exe,即对应HUAWEI P40_2021-aa-bb xx.yy.zz.exe文件,然后使用rar或7zip软件解压缩。

3. 调用 kobackupdec 进行解密

kobackupdec下载地址:https://github.com/RealityNet/kobackupdec (python工具)

参考用法(README 中给出):

1
python kobackupdec.py -vvv [password] "HUAWEI P40_2021-aa-bb xx.yy.zz" decrypted_output

可以看到 tips.txt 给了一个关键提示:

1
no space but underline

所以password需要使用上一题的flag并且空格换成下划线:W31C0M3_T0_THiS_34SY_F0R3NSiCX

本题对应的最终解密结果的文件夹其中已确认存在:

/storage/MediaTar/images/images0.tar

说明 .enc 已成功还原成可解包 tar。

4. 解包图片并定位 flag 文件

在最终结果中可以看到 flag 图片路径:

1
/storage/MediaTar/images/Pictures/flag/mmexport1630152510463.png

该文件即题目最终载体。

5. 得到 flag

最终 flag 为:

1
flag{TH4NK Y0U FOR DECRYPTING MY DATA}

复现要点总结

  1. 先在 Target.vmem 中定位华为备份特征字段
  2. 用Vol对文件进行提取
  3. 喂给 kobackupdec,密码使用第一题的flag把空格换成下滑线
  4. 在解密后的 storage/MediaTar/images/Pictures/flag/ 下获取 flag 图片

文章作者: 持之以 恒
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 持之以 恒 !
  目录