下载并启动虚拟机请自行去网心云官网下载虚拟机镜像,这里以VMware为例。由于本虚拟机不参与挖矿,导入虚拟机后,分配512M就够了。网卡建议选择仅主机模式,可以禁止程序连接迅雷服务器。一切准备就绪后就可以开机了。开机后,我们可以看到一个简陋而且无法退出的终端,上面显示了虚拟机的ip地址。 dump出虚拟机的内存映像先挂起虚拟机,点击虚拟机-电源-挂起即可。此时虚拟机会暂停运行,当前的虚拟机状态和内存会保存在磁盘上,我们可以使用VMware自带的一个小工具转换状态文件为虚拟机内存映像。 转换得到内存映像
内存映像为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密码 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 |
|