ce安全网绿色资源分享

教程资讯|常用软件|安卓下载|下载排行|最近更新

软件
软件
文章
当前位置:首页网络安全网络安全文章 → 内存转储破解Linux全盘加密保护

内存转储破解Linux全盘加密保护

时间:2018-08-19 00:05:51人气:作者:本站作者我要评论

一台运行全盘加密保护的虚拟机,如何才能使宿主机的root用户获取到其数据的访问权限?这是我们在Appsecco内部讨论时提出的一个问题,同时我们也想知道答案是什么。

我见过许多破解全盘加密保护的办法,最简单的一种是对正在运行的虚拟机进行内存转储,并从中提取解密密钥。我们采取的步骤如下:

安装一个带全盘加密保护的Ubuntu 16.04虚拟机
在磁盘解锁的时候转储Virtualbox虚拟机的内存
使用findaes从转储的内存中提取出主密钥
使用密钥从虚拟机的磁盘文件中解密加密分区
挂载分区并访问数据

安装

我们在Virtualbox里安装一个带全盘加密保护的Ubuntu 16.04桌面版来进行试验。

在安装时,使用默认的 "Full disk encryption with LVM" 选项,其使用 dm-crypt/LUKS方式进行加密。cryptsetup默认的配置是aes-xts-plain64:sha256,使用长度为512位的密钥。

当安装完成后,我们启动虚拟机,并输入我们之前配置过的密码。

转储虚拟机的内存

我们首先在磁盘处于解锁状态时获得虚拟机的内存转储。虚拟机必须处于运行或者暂停状态,这样我们才能将内存转储到文件中去。

VirtualBox提供了一个功能丰富的调试器,其中有一个功能就是可以转储虚拟机的内存。

  1. VBoxManage debugvm <vm-name> dumpvmcore --filename=<filename.raw>

这会给我们提供一个原始格式的内存转储文件。转储可能会花上一段时间才能完成。

从内存转储中提取密钥

我们可以使用任何能够从文件中识别出AES字符串的工具。因此,我们选用了findaes。

我们可以在这下载到findaes
下载得到的是一个压缩文件,里面是findaes的源码,我们必须先编译才能使用。

解压zip压缩包&编译&运行findaes破解我们的内存转储文件

  1. unzip findaes-1.2.zip
  2. cd findaes-1.2 ; make
  3. ./findaes /path/to/fdedump2.raw

内存转储破解Linux全盘加密保护

可以看到,从内存转储中识别出了很多密钥。AES算法使用主密钥来产生轮密钥,这些密钥都存储在内存中。即使主密钥因为某些原因不能使用,我们依然能够使用轮密钥计算出主密钥。所以现在我们看到的是主密钥、轮密钥和任何其他能被findaes识别出来的AES密钥。可以参考cryptsetup的文档,以了解有关如何实现全盘加密的更多信息。

我们可以编写一个脚本,尝试使用所有密钥来解密分区。但是,我们知道我们需要的是512位的密钥,而提取出来的密钥都是256位的,所以我们就可以将搜索范围缩小到内存中连续的两个256位密钥。

我们找到了满足要求的两个密钥。把0x34dfcf88和0x34dfcd98组合起来就可以得到主密钥,因为Intel x86-64架构使用的是小端序,所以我们需要以相反的顺序来组合密钥。

内存转储破解Linux全盘加密保护

现在我们得到一个可能的主密钥,可以用来尝试解密加密分区。

使用主密钥解密使用LUKS加密过的驱动器
我们使用dmsetup来恢复主密钥,并尝试使用主密钥来解密加密分区。

为了解密分区,首先需要把磁盘挂载上。为此,我们首先复制一份虚拟机的的磁盘,并把它附加到一个新的虚拟机上,在新的虚拟机上运行Ubuntu live环境以挂载并解密分区。完成后,我们使用Ubuntu Live环境启动到新虚拟机。

要手动使用主密钥来解密加密分区的话,我们需要知道分区的大小和使用的加密方案。从cryptsetup FAQ可以知道,dmcrypt 使用的默认加密方案是aes-xts-plain64:sha256。

我们需要找到磁盘从我们的live环境中列出其分区。可以使用fdisk命令。

  1. sudo fdisk -l

内存转储破解Linux全盘加密保护

使用blockdev命令查看加密分区 /dev/sda5的大小。

  1. sudo blockdev --getsz /dev/sda5

解锁并解密分区的命令如下:

  1. echo "0 <size> crypt aes-xts-plain64 <key> 0 </dev/drive> 4096" | sudo dmsetup create luks-volume

如果没有错误信息,那解密就成功了。

访问数据

使用lsblk命令来查看这个解密后可用的LVM分卷。

  1. sudo lsblk
  2. 我们可以看到LVM卷是解密分区中的根分区。让我们把它挂载上,看看会发生什么有趣的事情。
  3. ```bash
  4. sudo mount /dev/mapper/ubuntu--vg-root /mnt

列出root用户的主文件夹的内容

内存转储破解Linux全盘加密保护

我们成功地做到了从内存转储中提取出加密密钥,并从一个经过全盘加密保护的磁盘中读取文件。

相关文章

猜你喜欢

  • Ougishi绿色版下载 V4.00 中文版

    2020-06-19 / 561k

  • 谷歌地图下载助手睿智版破解下载 V9.5绿色版

    2020-06-19 / 32.7M

  • OfficeFIX中文破解版V6.110 注册版

    2020-06-19 / 26.8M

  • Plotagraph破解版V1.2.0 免费版 32/64位

    2020-06-19 / 31.5M

  • IP查详细地址工具下载 V1.1 官方免费版

    2020-06-19 / 408K

  • 内存扫把中文版下载V1.97绿色版

    2020-06-19 / 1.3M

网友评论

验证码:

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

最新评论

已有人参与,点击查看更多精彩评论

关于CE安全网 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2029 cesafe.com 【CE安全网】 版权所有 蜀ICP备19039426号-2| 蜀ICP备19039426号-2

声明: 本站为非赢利性网站 不接受任何赞助和广告 所有软件和文章来自互联网 如有异议 请与本站联系 技术支持:ce安全网