“黑客”(hacker)這個詞,一開始只是單純地用來指代在電腦系統和信息科技方面的能手,最近幾年才因為一些臭名昭著的網絡罪犯而蒙上了一層灰色陰影。實際上,現在有很多公司專門雇傭黑客來測試系統安全強度,這樣的“黑客”懂得適可而止,遵守法律,獲得公司信任的同時還能拿到不菲的薪酬。
在成為黑客之前,你需要做兩點準備:
1、學一門編程語言。學哪一門不重要,但你要參考一下下面的條例:
C語言是Unix系統的基礎。它(連同匯編語言)能讓你學習對黑客非常重要的知識:內存的工作原理。
Python或Ruby是高級而強大的腳本語言,能夠實現多項任務的自動化。
Perl也是這方面的一個合理選擇,同時PHP也值得一學,因為大部分網絡應用都使用了PHP。
Bash腳本編程是必須掌握的。它能幫助你輕松地控制Unix/Linux系統 -- 通過編寫腳本程序,讓它們為你完成大部分工作。
匯編語言也是必須了解的。它是處理器能理解的基本語言,且現實中存在著多種版本的匯編語言。所有的程序最終都會被解釋成匯編語言。如果你不懂得匯編語言,你將無法深入鉆研每一程序。
2、確定你的目標。收集和目標相關信息的過程又被稱為枚舉。你事先掌握的信息越多,你的準備就越充分。
好了,接下來,黑客十部曲:
1、使用*nix命令終端。Cygwin將為Windows用戶提供模擬的*nix環境。Nmap專門使用了WinPCap,它可以運行在Windows系統上,且不需要Cygwin的支持。然而,由于缺乏原始套接字功能,Nmap并不能很好地在Windows系統上工作。你也應該考慮使用Linux或BSD,它們更靈活、更可靠、更安全。大部分Linux發行版都附帶了很多預裝的有用工具。
2、首先加強你的機器的安全性。確保你已經充分理解所有能保護自己系統的常用技術。從基礎開始 -- 你是否曾發現有服務器托管著含有非法或不良信息的網站?嘗試通過各種方法入侵它。不要更改網站,只要取得其控制權即可。
3、測試目標系統。你是否能連通遠程系統?雖然你能使用ping實用程序(大部分操作系統包含有該程序)了解目標系統是否活躍,但其結果并不總是可靠的 -- 該程序需要以ICMP協議為基礎,這能輕易地被謹慎的系統管理員所屏蔽。
4、確定操作系統(OS)。進行端口掃描,你可以使用pOf或者nmap進行掃描。該方法能讓你了解目標機器上開放了哪些端口,運行著哪種操作系統,甚至還能獲取關于所使用的防火墻或路由器等信息,以便你能準備好一系列的攻擊計劃。你可以使用nmap的-O選項進行操作系統的探測。
5、找出系統中的路徑或開放端口。FTP(21)及HTTP(80)等常用端口通常都得到了較好的保護,找出尚未被發現的漏洞可能比較容易發起攻擊。
嘗試其他不太常用的TCP和UDP端口,例如Telnet及一些用于局域網游戲的UDP端口。
如果系統開放了22號端口,通常能證明該目標系統上運行著SSH(secure shell)服務,對此有時可以進行暴力破解。
6、破解密碼或認證過程。有幾種方法能破解密碼,其中包括暴力破解。對密碼的暴力破解就是使用暴力破解軟件,嘗試每一個包含在預定義詞典中的可能密碼。
用戶通常被建議不要使用過于簡單的密碼,因此暴力破解可能需要較長時間。然而,暴力破解技術已經得到了長足的改進。
大部分散列算法都存有漏洞,因此你可以通過發掘這些漏洞來顯著加快破解速度(例如你可以縮減MD5算法至1/4的比例,這將大幅提高其運行速度)。
較新的技術使用顯示卡作為另一個處理器 - 這能提高速度達數千倍。
你可以嘗試使用彩虹表來達到最快的破解速度。請注意,只有當你掌握了密碼的散列值時,密碼破解才是一項可行的好技術。
在登錄遠程系統時,嘗試每一個可能的密碼并不是一種好的方法,因為這中行為將會輕易地被系統的入侵檢測程序所檢測到,同時會污染系統日志,并且可能需要數年時間才能破解密碼。
比起采用密碼破解,采用別的方法也許能更容易入侵一個系統。
7、獲得超級用戶權限。嘗試獲得*nix機器的根用戶權限,或者是Windows系統上的管理員權限。
很多重要信息都會得到特別保護,因此你需要通過一定程度的認證才能獲得這些信息。要查看系統上的所有文件,你需要取得超級用戶權限 -- 即Linux和BSD系統上"root"用戶所具備的權限。
對于路由器,默認的超級用戶是"admin"帳戶(除非已被更改);對于Windows,即為管理員帳戶。
和系統取得連接并不意味著你就能獲得一切。只有超級用戶,管理員帳戶,或root帳戶能具備一切權限。
8、多管齊下。通常,要獲得超級用戶身份,你必須采用多種方法,例如制造緩沖區溢出,從而導致內存轉儲,并允許你在比一般情況下更高級的層次中進行代碼注入或執行任務。
在類unix系統中,如果一個軟件設置了setuid權限,該程序將可以以另一個用戶的身份(例如超級用戶)被執行。
這只能通過編寫或找出你能在他們的機器上運行的不安全程序才能這樣做。
9、建立后門。當你對機器取得完全控制后,最好能確保下一次你也能順利地再次登錄。這可以通過建立后門來實現,這是一種重要的服務,例如SSH服務器。然而,你的后門有可能會在下一次系統升級時被刪除。 經驗老道的黑客會在編譯器當中設置后門,因此每次軟件編譯后都能留有一條路徑讓他們再次回來。
10、掩飾你的痕跡。不要讓管理員知道系統已經被入侵。不要更改網站(如果有的話),也不要創建不必要的文件。不要創建額外的用戶。動作要迅速。如果你修補了一個服務器,如SSHD,確保你的密碼已被硬編碼。如果有人嘗試使用該密碼登錄,系統將允許他們的進入,但不應該包含任何重要信息。
好了,你已經成為一名黑客了,下面是給你的一些提示:
請謹記,如果你的目標不是要讓他們竭盡全力地拒絕你的入侵,你也不會變得更厲害。當然,也不要自大,不要以為自己是最強的。你的目標應該是:你必須變得越來越強。你沒有學習到新東西的每一天,都是被浪費掉的寶貴光陰。你應對此負責。成為最好的,不管付出多少代價。不要半途而廢,你必須全力以赴。正如尤達所說,"做或不做。沒有嘗試這回事。"
在黑客和駭客之間有重大的區別。駭客是被惡毒的(例如錢)理由所驅動,而黑客則嘗試通過探索取得信息、收獲知識("繞過安全防護"),在任何情況和形式下,可能不都是合法的。
謹記,黑客行為并不是要破壞計算機系統、獲得高薪厚職、在非法市場上出售非法所得,也不是要幫助任何人入侵安全的機器。你不是來這里幫助管理員完成其工作的。你這樣做的目的是為了變為最強大的一個。
黑客建立了互聯網、開發了Linux、并共同對開源軟件作出貢獻。你應該更深入地了解黑客行為,因為這是廣受尊敬的,而且在實際環境中,只有具備很多專業的知識才能獲得成果。
除非你是專家或專業黑客,否則對一個公司或政府計算機采用本文所介紹的方法會為你帶來麻煩。請謹記,有一群比你更厲害的人是通過保護這些系統來謀生的。一旦被發現,他們有時會監控著入侵者,并在采取法律行動前讓入侵者自投羅網。這意味著,你可能發現自己入侵到一個系統中并能自由進行各種操作,而事實是,你已經被別人監控著,并隨時會被別人所制止。
雖然有很多合法且安全的訓練目標,但不幸的是,你很難不冒著違法的風險才能有所收獲。不在實際系統中通過實際問題來提高自己,你很難成長為黑客,但這也讓你面臨著實際的風險。也請切記這一點。
閱讀關于TCP/IP組網的書籍。
還有,請記住這些警告:
不要刪除全部日志文件,相反,只刪除文件中的和入侵相關的記錄。另一個問題是,是否存在著一個日志文件備份呢?如果他們查看文件間的異同并發現了你的行為,怎么辦?對自己的行為要做好計劃。最好的方法是隨機地刪除日志文件中的內容,包括和你相關的內容。
如果你認為你找到了一種非常簡單的破解方法,或者是安全管理中的一個明顯錯誤,請保持謹慎。負責保護該系統的安全專家可能會通過這樣的方法來迷惑你,或設立誘捕系統抓到你。
也許你聽說過相反的意見,但請不要幫助別人修補他們的程序或系統。這被認為是非常差勁的做法,同時會被大部分黑客團體所排斥。如果你發布一項別人所發現的問題,那么他可能會變成你的敵人,而他可能是一名比你更優秀的黑客。
不要只以玩樂為目的。記住,入侵一個網絡并非一場游戲,這有可能會改變世界。不要在幼稚的行為上浪費時間。
錯誤地使用這些信息可能是本地的和/或聯邦政府的犯罪行為。本文只以內容介紹為目的,只提倡有道德的黑客途徑,反對非法黑客行為。
入侵別人的系統可能是違法行為,因此除非得到系統所有者同意或者你認為這樣值得并且自己不會被抓,否則你不應該有這樣的行為。
如果你對自己的技術沒有信心,應避免入侵公司、政府或軍事網絡。即使他們不夠安全,他們也有足夠的金錢追蹤并追究你。如果你發現了這些網絡中的一個漏洞,最好把它告訴有經驗且值得信賴的黑客,他能更好地利用這一發現。
-
C語言
+關注
關注
180文章
7604瀏覽量
136692 -
UNIX
+關注
關注
0文章
296瀏覽量
41480 -
python
+關注
關注
56文章
4792瀏覽量
84627
發布評論請先 登錄
相關推薦
評論