肝了7天,讓你從小白變黑客!
大家好,我是軒轅。
上一次的《C/C++后端開發(fā)路線圖》的末尾,預(yù)告了網(wǎng)絡(luò)安全方向的學習路線,讓大家久等了,今天終于來了。
算上從學校開始學習,軒轅已經(jīng)在網(wǎng)安這條路上走了10年了,無論是以前在學校做安全研究,還是畢業(yè)后在百度、360從事內(nèi)核安全產(chǎn)品和二進制漏洞攻防對抗,我都深知學習方法的重要性。沒有一條好的學習路徑和好的學習方法,往往只會事倍功半。
回頭看來自己踩過不少坑,走過不少冤枉路,希望我的經(jīng)驗?zāi)軐Υ蠹矣袔椭?,尤其是畢業(yè)季的萌新,如果有想從事網(wǎng)絡(luò)安全道路的,歡迎添加軒轅的微信私聊。
網(wǎng)絡(luò)安全再進一步細分,還可以劃分為:網(wǎng)絡(luò)滲透、逆向分析、漏洞攻擊、內(nèi)核安全、移動安全、破解PWN等眾多子方向。今天的這篇,主要是針對網(wǎng)絡(luò)滲透方向,其他方向僅供參考,學習路線并不完全一樣,有機會的話我再單獨梳理。
路線圖
先來看一張整體的路線圖,初步了解下這個方向需要學習的知識有哪些

由于微信壓縮的厲害,想要高清圖的同學可以在文末添加我的微信,我發(fā)給你。
我一共劃分了六個階段,但并不是說你得學完全部才能上手工作,對于一些初級崗位,學到第三四個階段就足矣。
來吧,話不多說,一起學起來,見證從青銅變身王者的旅程!
石器時代
第一個階段——石器時代,針對的是純新手小白剛剛?cè)雸觥T谶@個階段,主要是打基礎(chǔ),需要學習的有五部分內(nèi)容:
Windows
Windows上基礎(chǔ)的一些命令、PowerShell的使用和簡單腳本編寫,以及Windows以后經(jīng)常會打交道的幾個重要組件的使用:注冊表、組策略管理器、任務(wù)管理器、事件查看器等。
除此之外,學習在Windows上面搭建虛擬機,學會安裝系統(tǒng),為接下來學習Linux做準備工作。
Linux
網(wǎng)絡(luò)安全,必然要與Linux經(jīng)常打交道,我看到很多新人一上來就跟著一些培訓班學習Kali,學的云里霧里的。連基本的Linux概念都沒建立起來,就急著學Kali,這屬于還沒學會走路就去學跑步,本末倒置了。

在基礎(chǔ)階段,主要以使用為主,學習文本編輯、文件、網(wǎng)絡(luò)、權(quán)限、磁盤、用戶等相關(guān)的命令,對Linux有一個基本的認知。
計算機網(wǎng)絡(luò)
網(wǎng)絡(luò)安全,計算機網(wǎng)絡(luò)肯定是非常重要的存在。作為基礎(chǔ)階段,這一小節(jié)主要從宏觀上學習計算機網(wǎng)絡(luò),而不是死扣某一個協(xié)議的某些字段意義。
首先從局域網(wǎng)出發(fā),了解計算機通信的基本網(wǎng)絡(luò)——以太網(wǎng),局域網(wǎng)內(nèi)是如何通信的?集線器、交換機有什么區(qū)別?MAC地址、IP地址、子網(wǎng)、子網(wǎng)掩碼分別是做什么用的?

隨后引出更大的廣域網(wǎng)、互聯(lián)網(wǎng),什么是網(wǎng)絡(luò)通信協(xié)議,通信協(xié)議分層的問題,通過七層和四層模型快速建立起計算機網(wǎng)絡(luò)的基礎(chǔ)概念,各層協(xié)議的作用,分別有哪些協(xié)議,這些協(xié)議在當今的互聯(lián)網(wǎng)中具體是怎么應(yīng)用的。
Web基礎(chǔ)
網(wǎng)絡(luò)滲透中非常重要的一個組成部分就是Web安全,要學習Web安全,得先從Web前端基礎(chǔ)開始入手。
這一小節(jié)非常簡單,就是學習最原始的Web前端三板斧:HTML+CSS+JS的開發(fā)使用,為將來學習Web相關(guān)的安全知識打下基礎(chǔ)。

這一小節(jié)是相對偏實際動手多一些,需要自己多動手進行一些網(wǎng)頁編程,尤其是JavaScript的熟悉掌握,了解Ajax是什么東西,常用的jQuery庫也學習一下,這都是Web前端中非?;A(chǔ)和常用的內(nèi)容。
數(shù)據(jù)庫基礎(chǔ)
基礎(chǔ)階段的最后一部分,可以來接觸一些數(shù)據(jù)庫的基礎(chǔ)知識了。
這個階段主要學一些理論知識,重點掌握庫、表、索引等概念,然后學習SQL的編寫,學會增刪改查數(shù)據(jù)。暫時不用編程來操作數(shù)據(jù)庫。
青銅時代
度過了石器時代,你已經(jīng)儲備了一些計算機的基礎(chǔ)知識:操作系統(tǒng)的使用,網(wǎng)絡(luò)協(xié)議,前端基礎(chǔ),數(shù)據(jù)庫初識,但這距離做網(wǎng)絡(luò)安全還不夠,在第二個青銅階段,你還需要再進一步學習基礎(chǔ),在第一階段之上,難度會開始慢慢上升。
這一階段需要學習的知識有:
Web進階
在前面的石器時代,咱們初步接觸了網(wǎng)頁編程,了解了網(wǎng)頁的基本原理。不過那時候是純前端的,純靜態(tài)的網(wǎng)頁,沒有接觸后端。在這個進階的階段,你要開始接觸Web后端的內(nèi)容了。
首先從常用的兩大主流Web服務(wù)器出發(fā),學習Apache和Linux的基本知識,隨后引出動態(tài)網(wǎng)頁的基本原理,從CGI/Fast-CGI過渡到后來的ASP/PHP/ASPX/JSP等動態(tài)網(wǎng)頁技術(shù),了解它們的發(fā)展歷史,演變過程和基礎(chǔ)的工作原理。

最后再學習一些Web開發(fā)中的基礎(chǔ)知識:表單的操作、Session/Cookie、JWT、LocalStorage等等,了解這些基本的術(shù)語都是什么意思,做什么用,解決了什么。
PHP編程
學習Web后端開發(fā),得搭配學習一個后端開發(fā)語言才行。在這一小節(jié),選擇從PHP入手。
不過要記住,這里選擇PHP不是讓你以后從事PHP的后端開發(fā),也不是說PHP現(xiàn)在有多流行,而是特定歷史背景下,PHP相關(guān)的網(wǎng)站安全問題非常具有代表性,選擇這門語言更方便我們研究安全問題。
由于學習的目的不同,所以在學習方法上和普通的后端開發(fā)就有所不同了。在這里咱們學習一下語法基礎(chǔ),基本的后端請求處理,數(shù)據(jù)庫訪問,然后再接觸一下常用的ThinkPHP框架即可,當然如果你有興趣,學的更深入當然更好。
計算機網(wǎng)絡(luò)進階
第二階段需要再充實一下計算機網(wǎng)絡(luò)的學習。這一次,重點把精力放在HTTP/HTTPS以及抓包分析之上。
Linux上的tcpdump必須掌握,包括常見的參數(shù)配置。然后重點學習Wireshark分析數(shù)據(jù)包,用Fiddler抓取分析加密的HTTPS流量。

通過在抓包軟件下查看通信流量,對計算機網(wǎng)絡(luò)的認識從抽象變得具象。
加解密技術(shù)
接著,來了解一些網(wǎng)絡(luò)安全領(lǐng)域內(nèi)經(jīng)常打交道的編解碼技術(shù)和加解密技術(shù)。包括base64編碼、對稱加密、非對稱加密、哈希技術(shù)等等。

了解它們基礎(chǔ)的概念、做什么用的,解決什么問題,最后再了解下工作原理。
推薦書籍:《加密與解密》
白銀時代
現(xiàn)在進入第三個階段——白銀時代,激動人心的時刻就要到來了,在這個階段,我們開始全面學習真正的網(wǎng)絡(luò)安全技術(shù)了,前面兩個階段打下的基礎(chǔ),在這個階段,也將派上用場。
這一階段需要學習的知識有:
Web安全入門
有了前面的Web前端和PHP編程的基礎(chǔ),可以來正式學習Web安全了。Web安全領(lǐng)域內(nèi)幾大典型的攻擊手法:SQL注入、XSS、CSRF、各種注入、SSRF、文件上傳漏洞等等,每一個都需要詳細學習,一邊學習理論,一邊動手實踐。

千萬注意別拿互聯(lián)網(wǎng)上的網(wǎng)站來攻擊學習,這是違法的行為。自己可以在虛擬機中搭建一些包含漏洞的網(wǎng)站(網(wǎng)絡(luò)上有很多可以下載來玩),拿自己建的網(wǎng)站練手。
網(wǎng)絡(luò)掃描與注入
前面學習了一些Web安全的攻擊手法,但光有這些還不夠,當我們面對攻擊目標后,如何尋找攻擊點,獲取目標的信息至關(guān)重要。
這些信息包括:目標運行了什么操作系統(tǒng),開放了哪些端口,運行了哪些服務(wù),后端服務(wù)是什么類型,版本信息是什么等等,有哪些漏洞可以利用,只有獲取到了這些信息,才能有針對性的制定攻擊手段,拿下目標。

常見的網(wǎng)絡(luò)信息掃描包括端口掃描、網(wǎng)站后臺掃描、漏洞掃描等等。需要學習常用的掃描工具以及它們的工作原理。
信息搜集 & 社會工程學
除了上面需要掃描的信息,在網(wǎng)絡(luò)安全中,經(jīng)常還需要調(diào)研很多信息,比如網(wǎng)站的注冊信息、相關(guān)聯(lián)的人物、網(wǎng)站內(nèi)部的內(nèi)容檢索等等。這就需要學習掌握信息搜集和社會工程學的相關(guān)技術(shù)。

whois信息用來查詢域名信息,shodan、zoomeye、fofa等網(wǎng)絡(luò)空間搜索引擎檢索IP、域名、URL等背后的信息,Google Hacking利用搜索引擎來檢索網(wǎng)站內(nèi)部信息,這些東西都是在網(wǎng)絡(luò)信息搜集中經(jīng)常用到的技能。
暴力破解
在網(wǎng)絡(luò)攻擊中,當掃描到目標開放的服務(wù)后,最直接的就是想要登錄進去。常見的服務(wù)有SSH、RDP、MySQL、Redis、Web表單等等。
這個時候,暴力破解通常會派上用場,通過使用各種服務(wù)常見用戶名密碼組成的字典,通過程序暴力破解。
常用的爆破工具有hydra、超級弱口令,另外還有一個mimikatz,常用來獲取Windows系統(tǒng)的密碼。
黃金時代
上一個階段,學習了一些安全攻擊技術(shù),在這一個階段,需要學習一下安全防御和安全檢測技術(shù),安全具有攻防兩面性,缺一不可。
WAF技術(shù)
首先要學習的就是WAF——Web應(yīng)用防火墻。
Web安全學習的是通過Web技術(shù)攻擊計算機系統(tǒng),WAF就是檢測和防御這些安全攻擊。正所謂知己知彼才能百戰(zhàn)百勝,作為攻方,要掌握WAF的工作原理,找到弱點繞過檢測,作為守方,需要不斷加強安全檢測和防御能力,有效的發(fā)現(xiàn)和抵御Web攻擊。

需要學習當下主流的WAF軟件所采用的架構(gòu)比如openresty、modsecurity,以及主要的幾種檢測算法:基于特征的、基于行為的、基于機器學習的等等。
網(wǎng)絡(luò)協(xié)議攻擊 & 入侵檢測
WAF主要針對的是Web相關(guān)的安全攻擊,到這一小節(jié),將視野進一步拓展到整個網(wǎng)絡(luò)協(xié)議棧,TCP劫持、DNS劫持、DDoS攻擊、DNS隧道、ARP欺騙、ARP泛洪等等,需要掌握這些傳統(tǒng)經(jīng)典攻擊手段的原理,搭建環(huán)境實踐,為后續(xù)的內(nèi)網(wǎng)滲透打下基礎(chǔ)。

另外作為防守的一方,還需要學習通過網(wǎng)絡(luò)流量分析技術(shù)來進行安全檢測,了解常用的網(wǎng)絡(luò)分析技術(shù),檢測框架,規(guī)則語法,對以后從事安全相關(guān)開發(fā)或安全防御工作進行儲備。
日志技術(shù)
通過日志來發(fā)現(xiàn)攻擊行為是一種最常見的行為,攻擊者的Web請求,系統(tǒng)登錄,暴力破解嘗試等等都會被系統(tǒng)各種軟件記錄在案,攻擊者得手后也經(jīng)常會抹除相關(guān)的日志記錄,所以學習掌握這些日志,是攻防兩隊的人都需要學習的技能。
常見的日志有系統(tǒng)登錄日志(Windows、Linux)、Web服務(wù)器日志、數(shù)據(jù)庫日志等等。
Python編程
在這個階段,是時候來學習一些Python編程開發(fā)了。雖然網(wǎng)絡(luò)安全不用經(jīng)常做大量的工程開發(fā),但掌握基本的編程能力,可以用來編寫爬蟲、數(shù)據(jù)處理、網(wǎng)絡(luò)掃描工具、漏洞POC等等,都是非常有用的,而眾多編程語言中,Python無疑是最適合的。
瀏覽器安全
這個階段的最后一部分,來學習了解一些瀏覽器側(cè)的安全知識,夯實Web安全中與瀏覽器相關(guān)的漏洞攻擊。
需要重點掌握IE、Chrome兩款最主流的瀏覽器特性,瀏覽器的沙盒機制是什么,同源策略和跨域技術(shù)等等。
鉑金時代
第三方組件漏洞
前面Web安全相關(guān)的攻擊都是一些很多年的經(jīng)典手法了,經(jīng)過多年的發(fā)展已經(jīng)相當成熟,相關(guān)的漏洞早已不如以前多,現(xiàn)在很多時候的攻擊,都是依靠各種各樣的第三方組件漏洞完成的,所以學習研究這些常見第三方組件的漏洞,一方面掌握這些攻擊手法用于實戰(zhàn)中使用,另一方面觸類旁通,對從事漏洞挖掘的工作也是非常有幫助的。
研究的對象主要涵蓋目前互聯(lián)網(wǎng)服務(wù)中實際使用的一些工程組件,比如Java技術(shù)棧系列Spring全家桶、SSM、Redis、MySQL、Nginx、Tomcat、Docker等等。
內(nèi)網(wǎng)滲透
網(wǎng)絡(luò)滲透中,攻下一個點后,只是一個開始,攻入以后如何轉(zhuǎn)移,控制更多的節(jié)點,是內(nèi)網(wǎng)滲透研究學習的范疇。典型的如當年的永恒之藍病毒,通過SMB協(xié)議漏洞,快速擴散傳播,造成了大面積的中招。

內(nèi)網(wǎng)滲透中要學的東西既多且雜,難度要上升不少,但這是做網(wǎng)絡(luò)滲透的非常重要的一塊兒,必須多啃一啃。這一部分理論較少,偏實戰(zhàn)性多一些,需要多搭建環(huán)境模擬學習。
操作系統(tǒng)安全技術(shù) & 提權(quán)技術(shù) & 虛擬化技術(shù)
通過web等手段滲透進入計算機后,由于各種限制原因,經(jīng)常會有提權(quán)的需求,還會涉及到許多跟操作系統(tǒng)安全機制緊密相關(guān)的內(nèi)容,所以學習一些操作系統(tǒng)的安全知識也是非常有必要的。
像Windows、Linux上各自的權(quán)限管理機制,提權(quán)方法和常用的漏洞,工具等等。
最后,再學習一些虛擬化技術(shù)相關(guān)的知識,應(yīng)對可能需要從虛擬機中逃逸的場景。
王者時代
CobalStrike & MetaSploit
搞網(wǎng)絡(luò)滲透,這兩個神器是絕對少不了的。前面學習的信息掃描、漏洞攻擊、內(nèi)網(wǎng)滲透、木馬植入、端口反彈等等各種技術(shù),都可以通過這兩個神器進行綜合運用,融會貫通。同時,這兩個也是各大黑客團隊經(jīng)常使用的工具軟件。


學習使用這兩個神器,將大大提升攻擊效率,是網(wǎng)絡(luò)滲透人員居家旅行必備之選!
其他安全技術(shù)拓展
到了網(wǎng)絡(luò)滲透的后期階段,想成為一個安全高手,絕不只是固步自封在自己擅長的領(lǐng)域,需要多學習網(wǎng)絡(luò)安全的其他領(lǐng)域,拓展自己的知識面。
比如二進制漏洞攻擊、逆向工程、木馬技術(shù)、內(nèi)核安全、移動安全、側(cè)信道攻擊等等,當然在學習的時候,不用像專業(yè)方向的同學那么深入,但需要涉獵了解,豐富自己的知識面,構(gòu)建全方位的網(wǎng)路安全知識技能棧。
看完這篇,你學廢了嗎,學廢了請留言告訴我哦~
