分享

迅雷网心云x86版虚拟机硬盘解密

 怡窝馆 2020-10-18

下载并启动虚拟机

请自行去网心云官网下载虚拟机镜像,这里以VMware为例。由于本虚拟机不参与挖矿,导入虚拟机后,分配512M就够了。网卡建议选择仅主机模式,可以禁止程序连接迅雷服务器。一切准备就绪后就可以开机了。开机后,我们可以看到一个简陋而且无法退出的终端,上面显示了虚拟机的ip地址。

dump出虚拟机的内存映像

先挂起虚拟机,点击虚拟机-电源-挂起即可。此时虚拟机会暂停运行,当前的虚拟机状态和内存会保存在磁盘上,我们可以使用VMware自带的一个小工具转换状态文件为虚拟机内存映像。
找到VMware安装目录下的vmss2core.exe,正常安装时,这个文件会在C:\Program Files (x86)\VMware\VMware Workstation下。然后找到网心云虚拟机目录下的vmss和vmem文件,使用vmss2core转换成内存映像,像这样


转换得到内存映像

内存映像为vmss.core0和vmss.core1,保留备用。继续运行虚拟机,然后输入shutdown关机。请文明关机,不要暴力断电,养成好习惯。

把硬盘挂载到其它虚拟机上操作

打开另一个Linux虚拟机,将网心云虚拟机的硬盘添加到此虚拟机中。本人使用Ubuntu server 18.04 系统演示。方便起见,我使用PuTTY登录系统。


加密分区

sda是虚拟机的硬盘。可以看到,除了作为逻辑分区sda4,其它分区全都加密了,包括boot分区。

提取内存映像中的密钥

分区属性

我们可以使用cryptsetup luksDump /dev/X (X为磁盘设备文件)命令查看加密属性。 可以看到,分区的主密钥为256位。
在此科普一下,加密分区的是主密钥,而主密钥又被其它密码或密钥文件加密。输入密码或密钥文件可以得到主密钥,而主密钥可以解密硬盘数据。
我们可以利用findaes来查找内存中的aes密钥。下载findaes,解压findaes.exe到网心云虚拟机的目录。
查找密码

打开cmd,切到网心云虚拟机文件目录,运行findaes.exe vmss.core1,稍等一会,就能得到内存中的AES密钥。注意,磁盘的主密钥是256位的,所以128位的密钥没用。内存中只会保存主密钥,并不会保存加密主密钥的密钥。
保存密钥

保存主密钥。命令如下。
printf "密钥" | tr -d ' ' | xxd -r -ps > 密钥文件
保存完成后,可以一个一个密钥试着解密分区。
命令:cryptsetup open /dev/硬盘设备文件 目标设备文件 --master-key-file 密钥
解密硬盘

一阵操作猛如虎,也就解出来三个分区。
挂载硬盘

让我们先将已解密的硬盘挂载上。进入sda2,讲道理,这里应该就是系统的根分区了。
fatab

查看fatab,发现没什么好东西。那我们看看crypttab,发现好东西了。里面写着密钥路径。/boot下面是空的,boot分区还没有解密,里面的密钥拿不到。由于根分区已解密,/.botk下的密钥是可以拿到的。让我们来解密boot分区。注意,这里的密钥不是主密钥。使用cryptsetup open /dev/设备文件名 目标文件名 -d 密钥来解密。
boot分区已解密

boot分区成功解密,进入.appk目录拿key。boot目录下.sysk文件夹里面有个key能解密/dev/sda3。至此,磁盘已全部解密。

开启ssh

更改root密码

chroot到根目录,然后输入passwd更改root密码
输入vi /etc/ssh/sshd_config 更改sshd服务,启用root登录,修改监听地址为0.0.0.0


image.png

截图里的第三行改为的ListenAddress 0.0.0.0,倒数第三行PermitRootLogin yes去掉前面的#注释。


image.png

然后在/etc/rc.local里加入service sshd start。别忘了chmod 755 /etc/rc.local。
image.png

关闭Ubuntu虚拟机,打开网心云虚拟机,即可ssh连接。

参考资料

https://foo-manroot./post/ctf/cybercamp/write-up/2018/12/26/cybercamp-medium-2.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多