首页
社区
课程
招聘
Ivanti解密的两种思路
发表于: 2026-6-3 16:54 3953

Ivanti解密的两种思路

2026-6-3 16:54
3953

这是环境搭建好的页面,无法进入到底层的shell界面

使用vmware将搭建好的系统盘挂载到另外一个虚拟机上

这里是挂载出来的所有的磁盘内容,这里直接创建三个目录挂载出来,发现了加密文件就是这三个,只需要对这三个文件进行解密即可

内核启动的时有调用crypto进行加密,其中也有调用api进行解密,那么这个加密与解密的过程就在虚拟机的内存当中,现在只需要对虚拟机的内存文件进行扫描密码即可

这里将sda1sda2sda3分别挂载出来其中有grub.cfg,在grub.cfg中进入Current会进入到系统A分区,这里的内容已经告诉我们需要对GroupA组当中的磁盘进行解密,因为GrpupZ是恢复工厂设置

使用findaes工具对内存文件扫描获取的密钥,这里的密钥就是从系统A分区的内存中得到的

构造一个python脚本来对密码进行匹配

执行脚本后成功把系统A分区的磁盘解密

这里解密后将解密后的磁盘进行挂载就可以得到文件系统了

拷贝一个支持相同架构的busybox,因为既要有pl脚本输出的内容,也需要后门权限
添加后门(busybox需要权限否则开机时执行不了命令)

配置完成后卸载已经挂载的磁盘

关闭并锁定 LUKS 加密卷

直到输出lsblk命令,所有的挂载、解密层和 LVM 逻辑卷已经完美卸载并彻底分离

发现在启动的时候系统会检查脚本文件的完整性

对关键字的搜索找到了该脚本

check_integrity.sh脚本的流程是:

如果要绕过检测的话最直接的办法就是将stopOnError=1改为0

通过安装vmlinux-to-elf工具将kernel文件从原始内核中恢复出完全可分析的.elf文件

在kernel文件的populate_rootfs函数中使用了基于 512 字节扇区的变异 CBC-MAC 混合加密模式

通过对代码的分析和全局变量的提取,生成了一个解密脚本来解密加载到initrd当中的coreboot.img文件,这里的脚本作者就不提供了,希望大家可以根据密钥以及代码可以理解到该如何去解密这个coreboot.img,不是很难!

使用脚本将coreboot.img解密

解压后成功得到文件系统,查找密钥关键字

查看密钥字节数以及使用十六进制查看它的本身

当这个密钥在内存当中的时候是32字节,这里却是16字节,
根据关键字对/etc/lvmkey进行搜索发现了在lvm-shlib文件当中luksFormat会生成32字节主卷密钥(这里也体现了cbc混合加密模式,它结合了 AES 加密算法、CBC 工作模式、ESSIV 初始化向量生成技术和 SHA256 哈希算法)

它会在底层调用Linux内核的/dev/urandom,真随机数生成器抓取32字节的极高熵随机数作为硬盘的终极密码

这里通过对进程的跟踪也可以证实这一点

使用密钥解锁尝试一下,并把解密后的文件系统挂载出来也是完整的文件系统

Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 7C0CDB37-340D-4226-A8F1-FC9EBAC6D294

Device       Start       End   Sectors  Size Type
/dev/sda1     2048      4095      2048    1M BIOS boot
/dev/sda2     4096   1054719   1050624  513M EFI System
/dev/sda3  1054720 209713151 208658432 99.5G Linux filesystem


Disk /dev/mapper/groupZ-home: 6.72 GiB, 7218397184 bytes, 14098432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/groupA-home: 4.87 GiB, 5226102784 bytes, 10207232 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/groupA-runtime: 19.46 GiB, 20891828224 bytes, 40804352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@eve:~# mount /dev/mapper/groupZ-home /tmp/sda2
mount: /tmp/sda2: unknown filesystem type 'crypto_LUKS'.

root@eve:~# mount /dev/mapper/groupA-home /tmp/sda2
mount: /tmp/sda2: unknown filesystem type 'crypto_LUKS'.

root@eve:~# mount /dev/mapper/groupA-runtime /tmp/sda2
mount: /tmp/sda2: unknown filesystem type 'crypto_LUKS'.

[内核课程]《Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

最后于 4天前 被Kris1337编辑 ,原因:
收藏
免费 0
打赏
分享
最新回复 (2)
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
合作吗
2026-6-5 23:46
0
雪    币: 420
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mb_lcegpvqi 合作吗
没明白你的意思 0.0
2026-6-6 17:16
0
游客
登录 | 注册 方可回帖
返回