前幾天基友送我了一款遊戲,叫做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端口留下極為深刻的印象。
永恆之藍事件 (Eternal Blue )
前些日子,因為永恆之藍漏洞造成了勒索病毒的大爆發,多少人因為這個丟了論文和資料。 之後有教程說是要關閉455端口。
勒索病毒就是利用了永恆之藍漏洞使用Windows網絡共享協議(SMB服務)進行攻擊傳播的蠕蟲惡意代碼的。 在之後的日子,微軟推送了MS17-010補丁對永恆之藍進行修復。
既然目標主機使用的是剛裝好的Windows XP,那麼肯定沒有安裝這個補丁,所以可以從這裡下手。
滲透測試工具 Metasploit
這個工具就是遊戲中破解端口的翻版,Metasploit是一個免費的、可下載的框架,通過它可以很容易地獲取、開發並對計算機軟件漏洞實施攻擊。 它本身附帶數百個已知軟件漏洞的專業級漏洞攻擊工具。
我將會用Metasploit對目標主機進行攻擊。
Metasploit的數據庫中帶有永恆之藍漏洞,輸入 search ms17_010 查找一下
我選擇使用最後一個ms_17_010_psexec進行攻擊
輸入 use exploit/windows/smb/ms_17_010_psexec
然後輸入 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開發者。 在上面,漏洞不是我找的,我甚至不知道永恆之藍的原理,入侵的工具也不是我寫的,我只是用了下別人寫好的。 這種拿著別人現成的工具來攻擊別人的計算機的人,被稱為腳本小子,只是沾沾自喜的初學者,想要真正的熟悉網絡安全,還有很長的路要走。
當然,遊戲是個好遊戲,音樂很符合環境,難度適中,玩過之後會有很大的成就感。 想要體驗一下電影中黑客那些風騷的電腦操作,不妨去體驗一下這款遊戲。
本文章首發於Miketech,作者周毅剛,請勿私自轉載。