玩了Hacknet,你真的成為黑客了嗎
前幾天基友送我了一款遊戲,叫做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開發者。在上面,漏洞不是我找的,我甚至不知道永恆之藍的原理,入侵的工具也不是我寫的,我只是用了下別人寫好的。這種拿著別人現成的工具來攻擊別人的計算機的人,被稱為腳本小子,只是沾沾自喜的初學者,想要真正的熟悉網路安全,還有很長的路要走。當然,遊戲是個好遊戲,音樂很符合環境,難度適中,玩過之後會有很大的成就感。想要體驗一下電影中黑客那些風騷的電腦操作,不妨去體驗一下這款遊戲。首發於我的博客
玩了Hacknet,你真的成為黑客了嗎MikeTech | MikeTech
推薦閱讀:
※[漏洞復現] CVE-2017-16995 Ubuntu16.04
※[漏洞復現] MS17-010 基於"永恆之藍"實現Windows Getshell
※[漏洞復現] CVE-2018-4878 Flash 0day
※系統提權總結
※怎麼成為一個合格的滲透測試人員?