驱蚊器喵的翻译平台

Can you hear the gravity?

  1. 1. 第一回合
  2. 2. 第二回合
  3. 3. 第三回合
  4. 4. 第四回合
  5. 5. 第二阶段完成

《Mr. Robot》是我看过的最为精彩的黑客电视剧,剧中有大量真实的黑客元素,几年前看的时候有些看不太懂,直到最近才发现《Mr. Robot》技术顾问 Ryan Kazanciyan 写的揭秘文章,文章内有一些创作来源和幕后故事,看了以后觉得非常有趣,决定翻译后放到翻译平台上。


原文地址:https://medium.com/@ryankazanciyan/mr-robot-disassembled-eps3-5-kill-process-inc-69deabb5013c
原文标题:Mr. Robot Disassembled: eps3.5_kill-process.inc
原文作者:Ryan Kazanciyan
原文写于:2017/11/16

译者:驱蚊器喵#ΦωΦ
翻译水平有限,有不通顺的语句,请见谅。


朋友们你们好。我是 Ryan Kazanciyan,《Mr. Robot》 的技术顾问。从第二季的后半部分,我开始与 Kor Adana (作家、制片人和 ARG 背后的策划者) ,以及《Mr. Robot》团队的其他成员一起工作。在整个第三季中,我将负责编写剧中描述的黑客,他们是如何聚集在一起的,以及他们的现实基础。

剧透警告! 本文讨论的是第三季第 6 集中的事件。


在本季的前半部分, Elliot 和 Mr. Robot 一直在争相完成他们自己的目标,而 Dark Army 对 E 公司的 “第二阶段(Stage 2)” 的命运前途未卜。”eps3.5_kill-process.inc” 将这一冲突推向了高潮, Elliot 在竞相阻止攻击时失去了保持控制的能力。

回顾一下我们是如何走到这一步的:上周, Elliot 发现 Dark Army 试图将他们的恶意固件加载到纽约恢复大楼的 UPS 上。他的补丁阻止了 Dark Army ,但不久之后, Dark Army 转而入侵了 E 公司代码签名架构团队的一个成员。 Elliot 将这些线索联系起来,并意识到 Dark Army 将入侵 HSM 窃取 E 公司的代码签名证书。当他遇到 Angela 时,他意识到他已经来不及阻止他们了。

HSM 泄露是一个重大的安全事件,但造成的影响并非是永久的。E 公司可以通过撤销被盗的密钥和证书,确保它们不再被依赖它们的系统所信任。这是一项庞大的工程, Elliot 不再有权限或时间来实行这一方案。如果不能彻底停止的话,他需要尽可能快的延缓攻击。

第一回合

一旦在恢复大楼内连上网, Elliot 使用 SSH 连接到一个名为 “K6F7241”(192.251.68.242)的主机。这是一个基于 *nix 的系统,用于管理各种建筑设施,包括服务器室的联网 UPS。这也是 Dark Army 在上一季结束时植入后门的那个系统。

Elliot 需要确认 HSM 攻击后所发生的事情,并采取任何他能采取的措施来暂时消除影响。我们看到他执行了一长串的 shell 命令(并在这个过程中我们有一个很清晰的屏幕镜头)。

File integrity verification 101

让我们来分析一下这些命令各自的作用。

1
gpg --verify update.bin.asc update.bin

Elliot 使用 Gnu Privacy Guard(GPG)来检查 “~/ups_update” 目录下的固件更新文件的数字签名。结果显示一个有效签名,是属于 “E Corp Power Systems Hardware Development Team” 的。这表明 HSM 攻击起作用了,使 Dark Army 能够为他们自己的恶意软件签名,以便将其加载到 UPS 上。

1
shred -uzn3 update*

Elliot 安全地删除了恶意的固件更新文件(从这个临时主机,这个时候他还没有登录到 UPS 本身)。选项 “uzn3” 表示 shred 在删除文件记录之前将文件内容零覆盖三次。

1
wget -q https://192.251.68.232/files/ups_640_patch.zip

这个命令下载了我们在 S3E02 中看到的,Elliot 使用 Tanium 部署的一个补丁。他有先见之明,把补丁文件放在另一个可访问的网络服务器上,以备再次需要它们。(有一个照相式的记忆来回忆 IP 和 URL 也是有帮助的!)。

该 ZIP 压缩文件包含三个文件

  • apc_hw05_aos_640_patch.bin — 补丁文件, 包含干净的固件
  • apc_hw05_aos_640_patch.bin.asc — 固件的数字签名
  • hashes.asc — 固件二进制值和签名文件的 SHA256 哈希

Elliot 怎么能相信 Dark Army 没有篡改这些文件呢?请看下面两个命令。

1
2
3
gpg --verify hashes.asc

sha256sum --check hashes.asc

“gpg” 命令确认了哈希列表的完整性:这是由 Elliot 本人签名的。这意味着他可以相信 “hashs.asc” 中的文件哈希值没有被篡改,随后他用 “sha256sum” 命令对照其他补丁文件进行检查。

1
scp * [email protected]/upsfw

差不多了。 Elliot 使用安全复制协议(SCP,Secure Copy Protocol)将打过补丁的固件传输到 UPS。最后一步是登录到 UPS 本身,并运行 upsfwupdate 命令。就还差几个按键, 然而 Elliot 失去了对 Mr. Robot 的控制……

第二回合

Elliot 在一次意外的出租车旅途后回到大楼,并重新使用电脑。他立即通过 SSH 连接到 UPS 设备(192.251.68.229)。我基于流行的 UPS 制造商 APC 公司的管理操作系统,设计了它的命令行界面。这在 S3E02 中也有简单的展示。

登录的标语显示了正常运行时间和加载的固件版本。根据这些信息,他意识到他没能完成安装补丁,因为 UPS 会重新启动,但是从运行时间来看没有重启。是时候重新开始了。

UPS 登录标语

一旦重新连接到 .242,他看到 Mr. Robot 删除了干净的固件文件。他开始用 wget 重新下载 ZIP 补丁包,但却再次失去控制。

再次下载固件补丁

第三回合

补丁下载,哈希值看起来没问题。一切都检查完毕。 Elliot SCP 传送文件到 UPS,准备运行固件更新命令,并失去了控制前完成工作的时刻…

最后一次尝试...

第四回合

Elliot 醒来时看到一个明显不同的屏幕,显示了 Mr. Robot 在 UPS 设备上执行的一系列命令的最后几条。

1
2
3
4
5
ups> firewall -f fw.fwl

ups> firewall -r

ups> exit

这些命令配置了 UPS 上的防火墙,拒绝来自整个子网的所有入站连接。Connection closed(连接关闭), Elliot 不能再通过 SSH 连接进来。所有连接都被锁定了。

These commands configured the UPS host-based firewall to deny all inbound connections from the entire subnet. Connection closed — and Elliot can’t SSH back in. They’re both locked out.

被 UPS 的防火墙锁定了

在试图通过 notepad.exe 和 Mr. Robot 协商失败后,Elliot 意识到,触发电池室的灭火系统可能是剩下的最后选择……

第二阶段完成

这一集的黑客行动没有上周的 HSM 抢劫行动那么复杂。然而,这些场景的实际执行,Elliot 在恢复和失去控制时出现故障,给自己带来的一系列挑战。我最初写出了 Elliot 试图执行的一系列完整步骤,注意到需要包括足够的空隙,让 Mr. Robot 接管并击退他。然后,我和 Kor 通过每个阶段的进展,进行了改进,来保持发展的趋势。

“eps3.5_kill-process.inc” 在阴郁的气氛中结束,我们看到 Dark Army 执行了他们在第二阶段的真正计划。在个人层面上,它标志着一个有意义的结论,通过 Kor 和我在两季的过程中精心制作的技术故事呈现出来。

当我们第一次开始为 S2E12 中的 UPS 固件黑客工作时(早在 2016 年初),我已经开始思考后续的发展可能是什么。E 公司将如何自卫? Dark Army 会如何应对?这为未来的攻击奠定了良好的基础。

随着这一季的成型,我看到 Dark Army 安装其固件的努力与 Elliot 自己的故事是平行的。一旦经过数字签名,恶意代码看起来就像真实可信的软件,除非你密切监控软件的长期执行。同样, Elliot 最初认为他可以通过在 E 公司工作而有所帮助,但却没有意识到他同样被 Mr. Robot “植入后门” 了。

本文作者 : meow
This blog is under a CC BY-NC-SA 4.0 Unported License
本文链接 : https://translation.meow.page/post/mr-robot-disassembled-eps3-5-kill-process-inc/

本文最后更新于 天前,文中所描述的信息可能已发生改变