博雯 发自 凹非寺
量子位 报道 | 公众号 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工具集来解密驱动器:

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

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

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

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

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

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

再使用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/

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

  1. 如何用自己电脑访问公司内网

    本文主要讲述2台电脑如何通过网线进行网络共享的问题. 一台电脑可以通过WIFI连接某个局域网,而另一台电脑连不了这个WIFI. 为什么连接不了呢? 原因有很多,比如电脑没有无线网卡,但最常见的是权限问 ...

  2. 离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中)

    离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中) 参考文章: (1)离线安装python第三方库的实用方法:解决公 ...

  3. 要实现一台电脑可以上公司内网也可以访问外网

    要实现一台电脑(2113 win7/xp)可以上公司内网也5261可以访问外网,4102需要公司电脑装有两块网卡,1653其中一块网卡连接公司内网交换机,另一块网卡连接外网路由器. 1.外网地址设置: ...

  4. 实现一台电脑可上公司内网也可以访问外网

    要实现一台电脑( win7/xp)可以上公司内网也可以访问外网,需要公司电脑装有两块网卡,其中一块网卡连接公司内网交换机,另一块网卡连接外网路由器. 外网地址设置: 外网ip:192.168.99.1 ...

  5. 快速远程桌面公司内网电脑,远程OA/ERP/BUG/NAS【无需公网IP】

    疫情当下,打工人们经常被临时管控打个措手不及,譬如连夜到公司搬电脑回家.许多公司员工被迫居家办公,让居家办公.远程办公成为常态化. 而如何在外远程公司内网的电脑?如何实现远程控制如同在电脑跟前一样?如 ...

  6. 远程办公利器——利用cpolar内网穿透在家远程公司内网电脑

       系列文章 Windows用户如何安装使用cpolar内网穿透? Windows用户如何将cpolar内网穿透配置成后台服务,并开机自启动? 远程办公利器--利用cpolar内网穿透在家远程公司内 ...

  7. mac电脑升级Monterey12.1版之后L2TP连接公司内网后无法正常访问的问题解决

    公司内网设置: L2TP,无共享密钥. mac版本: macOS Monterey 版本12.6 审核人员看这里,文章中的VPN不是翻墙用的,是远程连接公司内网环境用的. 配置连接公司内容 1.系统偏 ...

  8. [转帖]公司内网机器病毒

    公司的一台机器出现了病毒, 同事发出来一个xp_cmdshell 的脚本命令 根据里面的用户名查到可能是 驱动人生的病毒引起. 这里面转帖一下其他内容... 了解事件原委. xp_cmdshell ' ...

  9. 百度工程师在公司内网发布“女优一览表”遭开除!自诉原因:想转岗鉴黄师...

    点击"开发者技术前线",选择"星标" 让一部分开发者看到未来 来自:三言财经   编辑:可可 2月16日消息,裁判文书网显示,百度开除一研发工程师,因其在公司浏 ...

最新文章

  1. Linux火狐解压完运行不了,在Ubuntu系统下firefox账号无法登录的解决
  2. 深度学习准「研究僧」预习资料:图灵奖得主Yann LeCun《深度学习(Pytorch)》春季课程...
  3. java耗时任务有哪些,java后台耗时任务多线程返回结果
  4. 人类一败涂地电脑版_人类一败涂地游戏正式上架同步推免费版
  5. Android --- 当 item 的数量增加时,ListView 并不能根据所有 item 一共的数量来撑开布局
  6. oracle备份集注册,OracleRMAN将备份集重新注册到控制文件说明
  7. 戏说 .NET GDI+系列学习教程(三、Graphics类的方法的总结)
  8. Go_ go mod 命令解决墙的问题
  9. fiddler chrome_fiddler抓包教程
  10. 突发!百度AI开发者大会李彦宏遭泼水 百度官方回应...
  11. 自动化神经网络理论进展缓慢,AutoML 算法的边界到底在哪?
  12. 拓端tecdat|R语言用回归构建配对交易(Pairs Trading)策略量化模型分析股票收益和价格
  13. paip.c++ qt __gxx_personality_sj0 __gxx_personality_v0问题的解决
  14. JAVA 编程练习题
  15. mysql创建数据库的语法_mysql创建数据库语法
  16. Cameralink视频数据信号
  17. 啊哈添柴挑战Java1080. 请告诉我谁小?
  18. ego-motion 自我运动
  19. python视觉识别库_机器视觉、模式识别库汇总
  20. BERT模型—5.BERT模型在句子分类任务(意图识别)上的微调

热门文章

  1. 为什么我可以在Java中抛出null? [重复]
  2. 打印JavaScript对象的内容? [重复]
  3. Activiti工作流内建数据库表分析
  4. 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V4 -- 远程方法调用 整合 Spring 自动注册...
  5. spi flash偶尔出现写入错误的情况
  6. Linux 下复制(cp)目录时排除一个或者多个目录的方法
  7. 安装ESXi5.5遇到Relocating modules and starting up the kernel的处理
  8. atitit. 浏览器插件 控件 applet 的部署,签名总结 浏览器 插件 控件 的签名安全机制o9o...
  9. Microsoft MSDN Windows 8 各版本下载
  10. EasyNet.Solr架构