前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >30分钟从工作电脑入侵公司内网!Win11:更新强制要求有TPM2.0,知道为啥了吧?

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

作者头像
量子位
发布2023-03-10 12:55:39
6830
发布2023-03-10 12:55:39
举报
文章被收录于专栏:量子位
博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI

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

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

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

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

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

绕过TPM

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

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

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

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

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

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

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

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

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

可现在问题又来了。

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

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

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

还真有:

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

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

从预登陆功能的“后门”入侵

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

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

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

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

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

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

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

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

代码语言:javascript
复制
$ echo daa0ccb7312<REDACTED> | 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 <- bitlocker drive
$ 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分区:

代码语言:javascript
复制
# 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/

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

「智能汽车」交流群招募中!

欢迎关注智能汽车、自动驾驶的小伙伴们加入社群,与行业大咖交流、切磋,不错过智能汽车行业发展&技术进展。加好友请务必备注您的姓名-公司-职位哦~

点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 绕过TPM
  • 从预登陆功能的“后门”入侵
  • Windows11更新强制要求设备有TPM2.0
相关产品与服务
VPN 连接
VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档