跳转至

HackNet

简介

《Hacknet》是一款以黑客为主题的模拟游戏,玩家将在其中体验成为黑客的过程。游戏背景设定在一位著名黑客意外去世后,玩家收到他遗留的程序信息,引导进入充满谜团与危险的网络世界。

在游戏中,玩家需要使用基于真实 UNIX 指令的黑客工具,逐步破解系统、获取信息,并揭开黑客去世背后的真相。同时,玩家还要确保 Hacknet 操作系统不被恶意黑客利用,防止其落入不法之徒手中。

游戏不仅考验玩家的逻辑思维和问题解决能力,还能让人感受到黑客世界的紧张与刺激。玩法相对逼真,能够让玩家接触真实的黑客技术,尽管是在虚拟环境中进行,却依旧提供沉浸式的黑客体验。

我于 8 月 24 日购买游戏,25 日通关,整体用了约 10 小时,算是比较快的进度。

如果以前从未接触过 UNIX 系统或类似游戏,可能会有一定的上手难度。

本文给出了较为详细的说明与解释,供读者参考。如有不理解的地方,可在本文下方留言。

阅读提示

本文大致分为 工具介绍游戏步骤 两部分。

阅读时建议先大致浏览 系统介绍新手教程,这样可以对游戏操作有一个初步认识。后续任务可自行在游戏中尝试解决,以加深记忆与理解。

完成任务后,可对照本文内容核对操作是否正确;若没有思路,也可参考本文。但请 确保对文章内容的理解,有不明之处请在下方留言,否则后续任务难度提升时,阅读体验会受影响。

系统介绍

界面布局

让我们先了解一下 Hacknet 的布局,如下图所示:

2024-08-26T01:59:33.png

从左至右依次为:

  • 内存区:在命令行或图形化界面打开的应用,例如笔记、ssh 破解等(每个窗口的大小即占用的内存大小,使用时若提示内存不足,可尝试关闭部分窗口)。
  • 图形化窗口:连接到计算机后显示对应的操作界面。
  • 网络地图:显示所有已知 IP 的计算机,每台计算机以圆点表示,颜色含义如下:
颜色 含义
绿色 你的计算机
暗蓝色 未被破解的计算机
亮蓝色 已被破解的计算机
白色 已连接的已破解计算机
红色 已连接的未破解计算机
黄色 高亮的计算机(可查看名称和 IP)或运行了 shell 的计算机
  • 命令行:在此输入指令,所有图形化操作均可通过指令实现,部分操作只能使用指令。

命令行须知

本游戏中的命令行采用传统的设备控制方式。不同于常见的图形化界面,命令行没有鼠标点击操作,只能通过键入指令完成任务。

随着游戏推进,会出现越来越多的特殊指令。对于新出现的指令,本文会给出使用方法。

如果在教程中看到形如 [something] 的文本,表示该部分为占位符,方括号内的内容为作者撰写的关键字解释,在游戏中并无实际意义,需要替换为实际数据。例如:

示例:教程中出现 connect [需要连接的 IP 地址],使用时应改为 connect 114.514.810.24(即将方括号内容替换为实际 IP)。

与多数 UNIX 系统类似,用户对指令或文件名无需输入完整,只需输入前缀并按下 Tab 键即可自动补全。

如果输入的前缀对应多个文件或指令,系统会提示所有可能的选项,如下图所示:

2024-08-26T04:40:48.png

此处为作者输入 s 后按 Tab 键,系统给出的提示。不同玩家的进度不同,提示内容可能会有所差异。

新手教程

刚开始游戏时,左侧内存区会出现提示窗口,点击 continue(继续)按钮。

随后点击网络地图中的绿色节点,连接你的电脑(等价于在命令行中执行 connect [要连接的 IP 地址])。

连接后,图形化界面会显示目标计算机的信息,如下图所示:

2024-08-26T02:28:00.png

接着点击图形化界面中的 扫描网络 按钮(在命令行中可使用 scan 指令)。

使用后会发现网络地图上出现一条细线,连接到另一个暗蓝色圆点(未破解的计算机)。

点击图形化界面中的 断开 按钮(等价于命令行中的 dc/disconnect)。

断开后,点击刚才扫描到的暗蓝色圆点以连接该计算机。

连接后,你会发现图形化界面和网络地图被锁定(因为教程要求你通过命令行操作,后续会自动解锁)。

同时,右侧的命令行窗口亮起,接下来我们将在这里执行指令。

首先使用 probe 命令(等价于图形化界面中的 检测系统)扫描计算机的开放端口数以及破解所需的端口数。

由于该计算机只需 0 个开放端口即可破解,直接使用 PortHack 命令进行破解。

执行后会弹出一个窗口,即 PortHack 程序,如下图所示:

2024-08-26T02:43:55.png

窗口底部显示破解进度条,等待进度条走完后,你将获得该系统的管理员权限(图形化界面会出现蓝色横幅),即“破解”了该计算机(此处的“破解”指取得管理员权限)。

拥有管理员权限后,可使用 scan 指令扫描该计算机所连接的其他计算机。

如果一切正常,搜索结果应为空,如下图所示:

2024-08-26T05:57:14.png

同时,你可以使用 ls 命令查看当前工作目录下的所有文件和文件夹(在根目录下相当于点击 查看文件系统 按钮)。

提示2024-08-26T03:24:20.png在 Hacknet 中,文件系统遵循 UNIX 设计,与 Windows 的分区概念不同。UNIX 只有一个根目录,所有文件都位于根目录下的子目录中,例如 homebinlog 等,可类比为 Windows 中的分区文件夹。

接下来,使用 cd Bin 进入根目录下的 Bin 文件夹。

如果已经进入该文件夹,图形化界面会显示相应的目录结构。

bin 目录下,你会看到一个文件 config.txt

可以通过 cat [需要打开的文件名] 指令查看该文件内容,例如 cat config.txt


log 目录下存储了该计算机的日志文件,记录了我们的连接与查看文件操作,并包含 IP 地址。为防止 IP 泄露,需在断开连接前删除所有日志文件。

使用 cd .. 返回上级目录(即根目录),然后 cd log 进入 log 目录,执行 rm * 删除所有文件(* 表示通配符,匹配所有文件)。

完成后即可断开连接,使用 dcdisconnect(等价于图形化界面中的 断开)进行断开。

至此,新手教程结束(吗?)。

若想退出新手教程,需要手动结束教程进程。首先使用 ps 命令查看当前运行的进程,例如:

2024-08-26T07:22:02.png

可以看到 Tutorial 的 PID 为 155,使用 kill [PID](如 kill 155)结束该进程。

至此,新手教程真正结束。

入门

初次联系

完成新手教程后,你会收到一封来自 Bit 的邮件(可在窗口右上角打开邮箱)。

邮件中提到我们的电脑上有一个名为 SecurityTracer.exe 的追踪软件,需要将其删除。

在邮件的 Hacknet 操作指南 右侧有加号按钮,点击可将其添加到内存,如下图所示:

2024-08-26T08:14:18.png

当内存不足时,可通过关闭笔记释放内存。

接下来,点击网络地图中的绿色节点进入我们的 PC。

可以使用 cdls 组合指令查找文件。

点击我查看文件位置

SecurityTracer.exebin 目录下

进入该目录后,使用 rm SecurityTracer.exe 删除追踪软件(在文件目录下可通过 Tab 键自动补全文件名,详见前文)。

随后打开邮箱,找到邮件 “初次联系”,点击下方的 回复 按键并发送,无需添加额外细节。

提示:第一篇写得较为详细,后续可能出现缩写,若不理解可回顾前文。

获取工具

邮件中告知我们需要破解作战基地的电脑并下载其中的破解工具。

邮件提供了作战基地的 IP 地址,可通过加号添加到网络地图。

点击连接新添加的作战基地,使用 probe 查看端口状态,随后使用 PortHack 破解。

点击我查看文件位置

SSHcrack.exebin 目录下

使用 scp SSHcrack.exe 下载该破解软件。

随后打开信箱,回复邮件。

初试牛刀

邮件中说明我们需要破解 Bitwise 测试 PC。

使用邮件提供的 IP 地址连接测试 PC。

使用 probe 查看端口状态,发现需要 1 个开放端口。可使用之前获取的 SSHcrack 进行破解,例如:

SSHcrack [ssh 端口号-通常为 22]

输入后会出现破解窗口:

2024-08-26T10:49:41.png

等待所有数值归零后,即完成破解,随后使用 PortHack 完成最终破解。

破解后即可回复邮件。

善始善终

邮件指示我们删除 Bit 在一台电脑上留下的日志信息。

使用邮件提供的 IP 地址连接卧室电脑。

probe 查看端口信息,使用 SSHcrack 22 破解 SSH 端口,随后 PortHack 获取管理员权限。

使用 cd log 进入 log 目录,执行 rm * 删除所有文件。

回复邮件。

生涯起点

邮件告知我们需要进入 Entropy 的测试服务器并下载测试文件,同时提供了网络教育档案馆的 IP。

在测试服务器上运行 probe,发现该服务器存在代理,需要先让代理失效才能继续破解。

在网络教育档案馆的 Shells代理服务器快速指南 中可查看具体原因,此处不作详细说明。

连接 2–3 台已破解的电脑(数量越多破解速度越快),在其上运行 Shell,运行后会在内存区出现一个小窗口,包含 过载陷阱关闭 三个按钮,如图:

2024-08-26T13:24:58.png

只需使用 过载 即可解除代理。

连接到测试服务器后,先使用 probe 进入端口界面,然后点击内存区的 过载 按钮。

过载过程可通过 probe 界面看到,如下图所示的阴影部分:

2024-08-26T13:32:48.png

等待代理变为绿色(即失效)后,使用 SSHcrack 22PortHack 获取管理员权限。

获取权限后,查看文件系统,找到测试文件并使用 scp 下载:

查看文件路径

/home/Entropy_Induction_Test

查看下载文件指令

scp Entropy_Induction_Test

下载后会收到来自 Entropy 的邮件。

任务完成

邮件指示我们入侵 Slash‑Bot 新闻网并使其瘫痪,提供了新闻网的 IP。

连接新闻网后,依次使用 probe过载SSHcrack 22PortHack 完成连招,获取管理员权限。

获得权限后,可查看文件系统并尝试破坏。例如:

查看提示文件

/MsgBoard 下有一个文件 Config_CAUTION.txt,尝试查看文件内容

查看提示文件

/MsgBoard 使用 rm config.sys 删除该文件

删除后返回新闻界面,因致命错误导致页面无法显示,如下图所示:

2024-08-26T13:49:54.png

回复邮件。

欢迎

邮件提供了资源服务器的 IP 与登录密码,可在资源服务器获取破解工具。

连接资源服务器并点击登录,登录后会显示用户信息,点击即可登录(若未出现,请确认是否已在邮件中点击加号)。

2024-08-26T01:59:33.png

登录后,可在文件系统中搜索新工具,找到后使用 scp 下载到本地。

查看破解工具位置提示

不妨在 \bin 看看是否有新工具

查看如何下载破解工具

\bin 下使用 scp FTPBounce.exe

下载后即可直接使用 FTPBounce [FTP 端口号(通常为 21,可在 probe 中查看)] 爆破 FTP 端口。

可在之前的电脑上尝试,熟练后即可回复邮件。

Re: 欢迎

邮件提供了任务服务器的 IP 与登录账号,连接后即可登录并接取任务,如下图所示:

2024-08-27T03:14:24.png

选择记录的用户信息登录。

2024-08-27T03:13:20.png

进入后即可承接任务,点击想要承接的任务查看详情。

2024-08-27T03:13:27.png

在详情页可查看任务具体信息并点击 Accept 承接任务。

2024-08-27T03:13:09.png

该邮件无需回复。

Entropy 任务

Point Clicker

邮件中提供了游戏服务器的 IP 与要删除的用户名(笔记‑合同内容)。

连接服务器后,使用 probe 查看端口状态,发现需开放两个端口。

先使用 SSHcrack 22 爆破 SSH 端口,随后使用 FTPBounce 21 爆破 FTP 端口,完成后即可使用 PortHack 获取管理员权限。

使用 ls 查看文件夹,找到存档文件并使用 rm [文件名] 删除,例如:

查看存档位置

不妨在 /PointClicker/Saves 下寻找是否有以用户名命名的存档文件

查看删除指令

/PointClicker/Saves 下使用 rm Mengsk.pcsav

删除后即可回复邮件。

经典的反黑客攻击

邮件提供了市场公司服务器的 IP,需要删除其中的敏感信息。

邮件未明确文件名,需要自行寻找并删除。

使用 probe 查看端口状态,发现需开放两个端口且存在代理。

尝试使用 SSHcrackFTPBounce 爆破端口,发现代理未关闭,无法继续。

解除代理的方法可在网络教育档案馆中查找,以下为简要说明:

查看解除代理的具体方法

在任意已获取管理员权限的计算机上运行 shell 命令,创建终端。终端窗口会显示 过载陷阱关闭 三个按钮。只需使用 过载 即可解除代理。

2025-01-25T14:19:18.png

需要注意,运行过载的服务器越多,破解代理的速度越快。

若不确定能在倒计时前完成,可在倒计时结束前断开连接再重新连接。倒计时结束后会恢复,但已破解的端口不会消失。

代理失效后,使用 SSHcrackFTPBouncePortHack 三件套获取管理员权限。

随后在文件系统中寻找需要删除的敏感信息,使用 rm 删除:

查看文件位置

\home\WORKSPACE\SECURE_MAILLIST.dec

查看删除命令

\home\WORKSPACE\ 下使用 rm SECURE_MAILLIST.dec

完成后回复邮件。

重回学校

使用过载、SSHcrackFTPBouncePortHack 四件套获取管理员权限。

随后在文件系统中寻找密码(此处密码较为隐蔽,建议逐个文件检查)。