參考:
簡易版:https://www.reddit.com/r/HowToHack/comments/dz378r/learning_path_for_ethical_hacking/
詳細版:https://blog.knownsec.com/Knownsec_RD_Checklist/index.html
簡介
簡易版是國外關於網絡安全學習路徑問題的回答,詳細版是知道創宇技能樹。
知道創宇的技能樹非常詳細,但我這種小白看的有點雲里霧里,不知道從哪下手,國外的這個回答看起來非常明確。在學習過程中可以適當兩者結合。
2020.8.12 新發現幾個不錯的學習路線和資源
https://www.bilibili.com/video/BV1zz4y1D7uN 網絡安全學習路線介紹
https://www.bilibili.com/video/BV1i7411G7vm?from=search&seid=12411406078515404729 千峰網絡安全
簡易版問答的翻譯
問題
我的問題是關於學習路線,我已經看過許多hacking 視頻,我希望回答者了解 shell 命令、python、html 等。我希望得到的建議是在開始hacking 相關之前需要學一些什么東西。
回答
這是我的建議如何成為正義黑客(Ethical Hacker),你應該按照下面順序學習。
-
第一件事你應該學習如何編程,我建議首先學python,然后是java。
-
(非必須)接下來學習一些算法和數據結構是很有幫助的,它將幫助你更好的編程。
-
一旦你學會如何編程,你應該學習如何用 c 編程。重點關注以下話題:結構體、指針的算術運算、傳值調用和引用調用、字符串IO基礎、宏、條件編譯、程序結構。
-
學習 UNIX 操作系統基礎:Unix shells、shell 變量、文件系統、通用Unix 命令、Shell 腳本編程、Unix Shell 環境。
-
(非必須)學習匯編語言。理解匯編語言如何轉化為機器碼再轉化為可被計算機硬件執行的程序。並且你應該學習如何分析匯編程序,這對逆向工程很有用。
-
理解計算機操作系統及架構、進程管理、內存管理、文件系統接口和實現、IO 系統、分布式系統、計算機網絡、java 網絡編程、防護與安全。理解系統管理員、計算機系統基礎組成,對計算機主要組件和結構有宏觀的認識。
進程管理:進程、線程、進程同步、CPU 調度、java 多線程編程,以及死鎖。內存管理:主內存和虛擬內存。
體驗不同操作系統例如 win unix linux 命令行與GUI 模式。
-
(非必須)學習密碼學也是很有用的,密碼學中的數學很有用。傳統對稱密鑰,現代對稱密鑰、RSA、數字簽名等等,應用層安全:PGP、S/MIME
-
理解計算機網絡和Internet 應用層:Web、HTTP、FTP、DNS和socket通信。傳輸層:UDP、TCP、和擁塞控制等。另一些不錯的話題:網絡管理、WireShark網絡流量分析、滲透測試和網絡安全、你也可以深入計算機和網絡取證、漏洞和惡意軟件分析、低層次協議包分析、
-
理解軟件工程。理解軟件開發階段,包括需求、文檔、設計、編碼、測試和維護,軟件開發模型的優缺點。
在學術之外,也有其它的比較好的事情:參加奪旗戰、在有一定基礎參加安全會議,經常訪問安全網站,在你學了一些網站相關知識,嘗試建立屬於自己的網站。
這個指導可能比其他人給出的要難一些,但當你想成為正義黑客或者是滲透測試專家時,這絕對是有必要的,你不能從腳本小子變為正義黑客,並且我寫的這些沒有我的知識量的一半,我知道我在做什么。
如果可以的話,我推薦你取得計算機學士學位,因為比起自己學習全部內容,它將使你的學習更加系統化。但是自己學習一切並不是不可能的。取得計算機學士學位會使你更容易找到相關工作。