Hacknet,黑客模拟器。游戏讲述的是一名黑客Bit死亡后,将操作系统Hacknet OS托付给了我,我要做的就是出入各种黑客组织,将Bit的死因查明,在这过程中你的能力会不断变强,从最初的连接,端口扫描,到后来的过载代理服务器,破解防火墙。整个游戏更像是一个终端模拟器,命令是Linux风格,玩家使用命令来进行操作,是一款非常Geek向的游戏。
较真的玩家可能要问了,这个游戏做得那么高大上,几乎都没有图形界面,在现实生活中,想要入侵一台计算机,真的就像游戏里那样吗,这个游戏中的套路,在现实中同样存在吗?
那么这篇文章我将会顺着游戏的套路,结合现实生活,入侵一台计算机,看一看这个游戏是否真实,又做出了什么简化。
概况
在这篇文章中我将会操作一台搭载Linux Mint的电脑,去入侵局域网中的一台Windows XP主机。这台Windows XP我将使用虚拟机代替(找两台电脑中太麻烦了)。
扫描与嗅探
在游戏一开始,玩家学会了scan指令,通过这个指令,可以获取网络中的所有计算机IP地址,然后使用probe指令,对需要攻击的计算机(Target Machine)进行分析,看看目标主机的端口状况(想偷你家东西总得知道你家的住址和大门的位置吧)。
就像上图,对145.18.219.187执行了probe指令,发现机器拥有四个端口,80,25,21,22。这些端口与现实中一样,80端口常用于当做HTTP服务端口,你能看到这个文章,是通过服务器的80端口传输数据的。
25 SMTP (Simple Mail Transfer Protocol)为邮件传输端口。
21为FTP(File Transfer Protocol),文件传输协议,用于服务器的文件上传与下载
22为SSH端口。一般用于与服务器交互
那么先说下真实环境中的情况吧,下图就是我的网络环境,我的电脑地址为172.20.10.5,同一局域网中有一台Windows XP,地址为172.20.10.6
在现实生活中,想要进行嗅探和端口扫描,可以使用Nmap,Nmap是一款网络扫描和主机检测的非常有用的工具。可以用来扫描网络中的主机,并且查看主机开放的接口,当然Nmap也有更高级的应用,总而言之非常强大。
那么在终端中输入 nmap 172.20.10.6就可以对目标计算机进行端口扫描了。就像游戏中的probe指令一样。
扫描结束后,发现目标的Windows XP主机开放了 135,139,445端口。
攻击(Exploit)
在游戏中,想要破解22端口,21端口,只要相应执行SSHcrack 22和FTPBounce 21即可。这其实是我们通过分析,发现22和21端口刚好是开启状态,所以可以破解。端口就像现实生活中的门一样,主人有钥匙可以随便进出房子,贼没有钥匙就进不去,但是要是真的想偷东西还是得在门上做文章,总不能去砸墙吧,多麻烦。
在真实情况下,目标计算机开放了,135,139,445端口。那么应该怎么做呢,SSHcrack和FTPBounce在现实中是不存在的,想要破解端口,一般是因为这个端口与操作系统中存在漏洞导致的。这就得看经验了,如果前些日子看过新闻,那么一定会对445端口留下极为深刻的印象。
永恒之蓝事件 (External Blue )
前些日子,因为永恒之蓝漏洞造成了勒索病毒的大爆发,多少人因为这个丢了论文和资料。之后有教程说是要关闭455端口。
勒索病毒就是利用了永恒之蓝漏洞使用Windows网络共享协议(SMB服务)进行攻击传播的蠕虫恶意代码的。在之后的日子,微软推送了MS17-010补丁对永恒之蓝进行修复。
既然目标主机使用的是刚装好的Windows XP,那么肯定没有安装这个补丁,所以可以从这里下手。
渗透测试工具Metasploit
这个工具就是游戏中破解端口的翻版,Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。
我将会用Metasploit对目标主机进行攻击。
Metasploit的数据库中带有永恒之蓝漏洞,输入search ms17_010 查找一下
我选择使用最后一个ms17010psexec进行攻击,输入 use exploit/windows/smb/ms17010psexec
然后输入set RHOST 172.20.10.6 来选择目标主机
最后输入exploit,如果那台机器没有防火墙并且真的存在这个漏洞,那么你已经取得了那台机器的控制权
取得控制权
在游戏中,破解一定数量的端口后执行PortHack即可完成入侵
在现实世界,通过刚才的操作之后就可以对目标主机进行任何操作啦
和游戏中一样,使用ls指令列出文件:
输入 ls C:\ 列出C盘的文件
预先在XP的桌面上我创建了一个PASSWORD.txt文件,现在试着用cat命令读取一下内容:
可以任意地上传与下载目标机器上的文件
取得Shell
游戏中还有一个关键的词汇叫做Shell,Shell是真实的词汇,是外部与系统内核进行交互的方式。有命令式的,就像Mac和Linux的终端,Windows的CMD命令行。也有图形式的,就像Windows的资源管理器(Microsoft Explorer)。
取得了Shell之后,操作系统就归你了,你已经可以实现正常使用者所有的操作,在游戏中,玩家会操作自己的肉鸡们去过载别人的代理服务器。
在meterpreter中输入shell就可以取得目标主机的shell,在shell中打的所有指令都是在目标机器上执行的。
试着执行systeminfo指令看看和目标机器上一样不一样
还可以进行很多有意思的操作,比如在系统上添加一个名为Mike的管理员用户(初中时候管得严不让玩电脑,所以经常使用这个指令偷偷在家里人电脑上创个账户然后打游戏),使用net user的相关命令:
执行成功后用户就被添加进去了:
还可以去关掉别人的电脑啊:
尾巴
那么回到最初的问题,这么有工程师情怀的游戏,我们能够从中学到什么,是否真的可以成为黑客。相信大部分人心里已经有答案了。我的答案是,能够学到的知识很少,在游戏中所有的指令都是出自Linux,但是每一条指令的使用被大大的简化,为了降低游戏的难度提升游戏性。
关于黑客,我的答案也是否定的,即使我在上面的文章中行如流水的入侵了一台Windows XP,我依然不能被称之为黑客,我只是一个普通的App开发者。在上面,漏洞不是我找的,我甚至不知道永恒之蓝的原理,入侵的工具也不是我写的,我只是用了下别人写好的。这种拿着别人现成的工具来攻击别人的计算机的人,被称为脚本小子,只是沾沾自喜的初学者,想要真正的熟悉网络安全,还有很长的路要走。
当然,游戏是个好游戏,音乐很符合环境,难度适中,玩过之后会有很大的成就感。想要体验一下电影中黑客那些风骚的电脑操作,不妨去体验一下这款游戏。