前言
最近拿到了一个商业产品的qcow2 镜像 准备试一试代码审计
首先用qemu-img 转换成vmdk 镜像
|
转换遇到错误 网上搜索只有一个其他项目的issue 没有解决方案
阅读qemu源代码 发现是在2017-02-15版本引入了这个特性
https://lists.gnu.org/archive/html/qemu-devel/2017-02/msg03173.html
|
发现可以使用2016年的旧版qemu完成转换
https://qemu.weilnetz.de/w64/2016/
转换完成使用vm启动 准备进入grub修改root密码
发现grub使用密码验证
准备使用diskgenius载入镜像删除grub密码
载入镜像后如下图所示
除引导分区外 其他分区的文件系统不能正常识别
文件系统分析
ci 是一个 LINUX LVM的卷组
通过前缀魔数判断root卷文件系统为 XFS
diskgenius 不支持XFS文件系统 所以只能使用其他方法挂载读写里面的内容
继续看其他分区 发现app home 分区与其他分区文件系统不一样
有着LUKS的标记
经过搜索发现这是一种LINUX上的硬盘加密方案 Linux Unified Key Setup
使用了AES加密 需要秘钥才能解密
既然可以正常进入系统,那就说明秘钥是储存在本地的.
我们只要寻找系统分区的挂载配置就有可能找到秘钥.
文件系统解密
准备一台可以正常使用的linux虚拟机. 这里使用了一台 kali
将要挂载的硬盘添加到虚拟机中
首先挂载 LINUX LVM卷组
vgscan 扫描卷组
vgchange -ay 卷标签 (激活卷组)
成功挂载卷
因为root分区没有加密所以直接挂载他
新建一个目录 挂载root分区
mount -t xfs /dev/mapper/cl-root /tmp/temfs/成功挂载root分区
现在可以直接对root分区进行读写操作了 可以修改密码直接进入系统读取解密后分区的文件
但是不能止步于此 既然遇到了这种特殊情况 就要学习下解密luks分区
在查了一些资料后 发现解密方法非常简单
第一步先在root分区寻找分区挂载的配置文件
|
可以在/etc/crypttab 文件中找到用于分区解密的key文件位置
|
成功解密分区
将这个mapper挂载到一个目录
mkdir /tmp/atrustapp/
mount -t xfs /dev/mapper/app /tmp/atrustapp/到这一步就完成了解密
其他分区可按照这种方法使用对应秘钥单独解密