在成為黑客之前,你需要做兩點準備:
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,確保你的密碼已被硬編碼。如果有人嘗試使用該密碼登錄,系統將允許他們的進入,但不應該包含任何重要信息。
【一一幫助網絡安全提升點我一一】
①網絡安全學習路線
②20份滲透測試電子書
③安全攻防357頁筆記
④50份安全攻防面試指南
⑤安全紅隊滲透工具包
⑥網絡安全必備書籍
⑦100個漏洞實戰案例
⑧安全大廠內部視頻資源
⑨歷年CTF奪旗賽題解析
那么入門黑客要掌握的技術有哪些呢!
1、黑客術語
去一個地方就要學會人家的家鄉話,不然就不知所云了。就好比:肉雞是什么?端口、shell、webshell、shellcode、bypass…等等,你得知道它是什么意思,了解術語的話可以去看看這里的百度文庫,寫的還很不錯,對大多數的黑客術語都有過渡,而且對計算機網絡原理需要有著一定的基礎,所以務必要去學習一下。
了解好黑客術語后,你是不是就以為:我現在是不是就能去入侵別人家的電腦、網站掛黑頁了?不可能的,你還需要掌握一些網絡的協議,比如TCP/IP協議,了解一些滲透技術和技巧。
2、網絡協議
在成為黑客前呢,還有一件重要的事,你必須要知道網絡協議:TCP/IP協議。因為你只要懂了個大概,對后期做滲透測試以及了解一些漏洞原理幫助是非常大的,網站的重要性就不需要多說了吧,要想成為一名黑客,不懂網站怎么可以。http、www、html、css、JavaScript等建站所需的技術都要會,這算是基本功??!
3、編程
知道為什么要學習編程嗎?因為編程能讓我們懂得很多原理,就好比你學會PHP編程,你就懂得了網站的基本運作原理。
有一句話說得好:“只有對原理了然如心,才能突破更多的限制!”,也就是說,當你懂得了原理以后,你就會知道哪些地方可能會存在漏洞,哪些地方可以進行突破,最終得到一個shell。
推薦大家前期要學習的編程語言:Python、Web前端(HTML、CSS、JavaScript)和PHP,編程是最基礎的技能,新手學習建議從Python開始。好多小白總感覺學編程得從C語言開始,其實沒必要,語言只是工具,編程最核心的還是編程思想,要學會用計算機的思維去思考問題。
宋丹丹的小品不是有這么一個笑話嘛:“把大象裝冰箱需要幾步”。如果是真的開發一個程序把大象裝冰箱里,還真就得一步步都要考慮到,而且每一步操作,可能出現的異常都要充分考慮清楚,盡可能在程序中把可能出現的所有異常都要做出處理。語言都是一通百通,所以找一個相對容易入門的語言開始學就可以,不必糾結到底什么語言好。
4、漏洞原理
當你學會了一些工具的使用,那么你就可以去學習一些漏洞原理了,比如:XSS、CSRF、CORS、SSRF、SQL注入、文件上傳、文件包含、未授權訪問…等等。我之前說過,當你學會編程后,你學這些漏洞原理理解起來會很快??!
5、熟練掌握常用的操作系統
Windows是使用人數最多的操作系統,這個是必須要掌握的。其次就是Linux系統,選擇一個合適的發行版,開始學習就可以,比如:Ubuntu和CentOS。
6.網安&黑客學習資料包
基于最新的web安全教程和最新的網絡安全學習路線,循序漸進地對黑客攻防剖析。適合不同層次的粉絲。我希望能為大家提供切實的幫助,講解通俗易懂,風趣幽默,風格清新活潑,學起來輕松自如,酣暢淋漓!
壓箱底的好資料,全面地介紹網絡安全的基礎理論,包括逆向、八層網絡防御、匯編語言、白帽子web安全、密碼學、網絡安全協議等,將基礎理論和主流工具的應用實踐緊密結合,有利于讀者理解各種主流工具背后的實現機制。
需要的話可以點擊:《黑客&網絡安全入門&進階學習資源包》免費分享