寫(xiě)在開(kāi)篇?
筆者本人 17 年就讀于一所普通的本科學(xué)校,20 年 6 月在三年經(jīng)驗(yàn)的時(shí)候順利通過(guò)校招實(shí)習(xí)面試進(jìn)入大廠,現(xiàn)就職于某大廠安全聯(lián)合實(shí)驗(yàn)室。
我為啥說(shuō)自學(xué)黑客(網(wǎng)絡(luò)安全),一般人我還是勸你算了吧。因?yàn)槲揖褪悄莻€(gè)不一般的人。
首先我談下對(duì)黑客&網(wǎng)絡(luò)安全的認(rèn)知,其實(shí)最重要的是興趣熱愛(ài),不同于網(wǎng)絡(luò)安全工程師,他們大都是培訓(xùn)機(jī)構(gòu)培訓(xùn)出來(lái)的,具備的基本都是防御和白帽子技能,他們絕大多數(shù)的人看的是工資,他們是為了就業(yè)而學(xué)習(xí),為了走捷徑才去參加培訓(xùn)。
【資料圖】
而我進(jìn)大廠主要是靠自學(xué)內(nèi)推進(jìn)來(lái)是,當(dāng)時(shí)我才20歲,基于對(duì)黑客的熱愛(ài),我每次工作做完了,就天天抱著本書(shū)看,甚至不會(huì)計(jì)較和主動(dòng)研究各個(gè)技術(shù)和包攬一些任務(wù)(和大多數(shù)躺平族不一樣),可能還是覺(jué)得自己不足,我又把tcp/ip協(xié)議大全,路由交換°這些基礎(chǔ)啃了一遍,c++都學(xué)了一陣子?;谧约旱膶W(xué)校出身,我身上也不可避免存在一些自卑心理,老覺(jué)得自己是野路子出來(lái),想游擊隊(duì)變正規(guī)軍系統(tǒng)的梳理。我近個(gè)月還在看php(對(duì)就是那個(gè)最好的編程語(yǔ)言)、后續(xù)我也打算在看http權(quán)威指南。工作之余還把幾個(gè)廠家的設(shè)備也主動(dòng)請(qǐng)纓的摸熟了,可能我身上的這些“匠心”的精神。這就是我不一般的表現(xiàn)吧!
自學(xué)網(wǎng)絡(luò)安全方向會(huì)遇到哪些問(wèn)題?
1.打基礎(chǔ)的時(shí)間長(zhǎng)
學(xué)基礎(chǔ)花費(fèi)了很長(zhǎng)的時(shí)間,光學(xué)語(yǔ)言都有好幾門(mén),有的人會(huì)止步于學(xué)習(xí)linux系統(tǒng)及命令的路上,更多的人會(huì)停在學(xué)習(xí)語(yǔ)言上面;
2.知識(shí)點(diǎn)掌握的不夠清楚
對(duì)于網(wǎng)絡(luò)安全基礎(chǔ)內(nèi)容,很多人不清楚到底需要學(xué)到什么程度,導(dǎo)致在基礎(chǔ)上花費(fèi)了太多的時(shí)間;很多同學(xué),買(mǎi)了HTML,PHP,數(shù)據(jù)庫(kù),計(jì)算機(jī)網(wǎng)絡(luò)
等書(shū)籍,每本還很厚,很多寫(xiě)得也很深,卻發(fā)現(xiàn)越學(xué)越?jīng)]自信,別人學(xué)個(gè)PHP或者數(shù)據(jù)庫(kù)就可以找到工作,而網(wǎng)絡(luò)安全要學(xué)這么多,越來(lái)越懷疑自己到底是不是選錯(cuò)了方向;
3.知識(shí)點(diǎn)不清楚重點(diǎn)
很多同學(xué)花費(fèi)了很大精力學(xué)完了基礎(chǔ)內(nèi)容,但是發(fā)現(xiàn)很多知識(shí)和后續(xù)網(wǎng)絡(luò)安全關(guān)聯(lián)不大,沒(méi)有分清重點(diǎn),浪費(fèi)了很多的時(shí)間;
4.知識(shí)點(diǎn)學(xué)習(xí)不夠系統(tǒng)
看到很多同學(xué)在b站找了好多學(xué)習(xí)視頻,也到別的平臺(tái)購(gòu)買(mǎi)了一些小課,百度云盤(pán)上也有1-2T的學(xué)習(xí)資料和視頻內(nèi)容,但每學(xué)完一類(lèi)都需要花費(fèi)不少的時(shí)間,且內(nèi)容很多有重復(fù)性,學(xué)完SQL注入后,后面又看到另一家講這個(gè)SQL注入,還不錯(cuò),又會(huì)去學(xué)習(xí)一遍,發(fā)現(xiàn)學(xué)完所有web漏洞原理后,自己還是不太確定自己是否把Web漏洞這塊的知識(shí)點(diǎn)學(xué)全了沒(méi)有,導(dǎo)致自己到底學(xué)沒(méi)學(xué)完都不知道;
5.自己解決問(wèn)題的能力不足
對(duì)于初學(xué)者來(lái)說(shuō),很多人都會(huì)自己搭建一些靶場(chǎng),但是由于配置環(huán)境的原因,耽誤的時(shí)間會(huì)很多,尤其對(duì)于初學(xué)者碰到連續(xù)3個(gè)問(wèn)題無(wú)法解決的時(shí)候,很容易放棄;對(duì)于一些動(dòng)手能力較差的同學(xué),這塊可能會(huì)直接影響到繼續(xù)學(xué)習(xí)的信心;
6.實(shí)戰(zhàn)水平不足
對(duì)于學(xué)網(wǎng)絡(luò)安全,滲透測(cè)試方向的技術(shù),其實(shí)很大程度上學(xué)習(xí)的就是“黑客”技術(shù),通過(guò)學(xué)習(xí)怎么進(jìn)攻和入侵,才能夠更清楚系統(tǒng)和應(yīng)用怎么去防御;而這塊也恰恰是網(wǎng)絡(luò)安全的核心,如果光有理論,實(shí)戰(zhàn)經(jīng)驗(yàn)少,也是較難去就業(yè);在平時(shí)學(xué)習(xí)中,除了可以搭建一些開(kāi)源的靶場(chǎng)用于練習(xí),最好還是要有真實(shí)漏洞組成的靶場(chǎng)用于學(xué)習(xí),當(dāng)然也可以去SRC平臺(tái)去滲透測(cè)試一些真實(shí)網(wǎng)站(一定要獲得授權(quán)才可以滲透真實(shí)網(wǎng)站),但是難度發(fā)現(xiàn)又比較大,很多初學(xué)者會(huì)喪失信心,懷疑自己的能力;
7.內(nèi)網(wǎng)的學(xué)習(xí)困難比較大
Web滲透這塊的資料在互聯(lián)網(wǎng)各各平臺(tái)到處都是,學(xué)習(xí)起來(lái)相對(duì)較為輕松,但是內(nèi)網(wǎng)這塊的資料在互聯(lián)網(wǎng)平臺(tái)上面相對(duì)較少,能夠借鑒的資料不多,另外也需要有相應(yīng)的靶場(chǎng)配合練習(xí),才能有技術(shù)上的提高和經(jīng)驗(yàn)的積累,學(xué)習(xí)難度會(huì)比較大。
成為一名合格的網(wǎng)絡(luò)安全工程師需要具備哪些能力?
1、網(wǎng)絡(luò)安全技術(shù)方面
包括端口、服務(wù)漏洞掃描、程序漏洞分析檢測(cè)、權(quán)限管理、入侵和攻擊分析追蹤、網(wǎng)站滲透、病毒木馬防范等。
2、對(duì)計(jì)算機(jī)系統(tǒng)有深入的了解,掌握常用的編程語(yǔ)言
例如windows及企業(yè)常用的linux系統(tǒng),編程語(yǔ)言如:Java、php 、python、c、c++。編程語(yǔ)言理論上來(lái)說(shuō)是多多益善, 如果精力不足,至少要會(huì)常用的。
3、了解主流網(wǎng)網(wǎng)絡(luò)安全產(chǎn)品
比如防火墻、入侵檢測(cè)系統(tǒng)、掃描儀等等。
4、安全協(xié)議方面
這部分內(nèi)容很多和web安全是相通的。熟悉sql 注入原理和手工檢測(cè)、熟悉內(nèi)存緩沖區(qū)溢出原理和防范措施、熟悉信息存儲(chǔ)和傳輸安全、熟悉數(shù)據(jù)包結(jié)構(gòu)、熟悉ddos攻擊類(lèi)型和原理有一定的ddos 攻防經(jīng)驗(yàn),熟悉iis安全設(shè)置、熟悉ipsec、組策略等系統(tǒng)安全設(shè)置。
5、機(jī)器學(xué)習(xí)算法
機(jī)器學(xué)習(xí)是一門(mén)人工智能的科學(xué),該領(lǐng)域的主要研究對(duì)象是人工智能,特別是如何在經(jīng)驗(yàn)學(xué)習(xí)中改善具體算法的性能,涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、算法復(fù)雜度理論等多門(mén)學(xué)科。
6、人工智能
人工智能是研究使計(jì)算機(jī)來(lái)模擬人的某些思維過(guò)程和智能行為的學(xué)科,主要包括計(jì)算機(jī)實(shí)現(xiàn)智能的原理、制造類(lèi)似于人腦智能的計(jì)算機(jī),使計(jì)算機(jī)能實(shí)現(xiàn)更高層次的應(yīng)用。人工智能將涉及到計(jì)算機(jī)科學(xué)、心理學(xué)、哲學(xué)和語(yǔ)言學(xué)等學(xué)科。可以說(shuō)幾乎是自然科學(xué)和社會(huì)科學(xué)的所有學(xué)科,其范圍已遠(yuǎn)遠(yuǎn)超出了計(jì)算機(jī)科學(xué)的范疇,人工智能與思維科學(xué)的關(guān)系是實(shí)踐和理論的關(guān)系,人工智能是處于思維科學(xué)的技術(shù)應(yīng)用層次,是它的一個(gè)應(yīng)用分支。
7、大數(shù)據(jù)分析
大數(shù)據(jù)分析是指對(duì)規(guī)模巨大的數(shù)據(jù)進(jìn)行分析。大數(shù)據(jù)可以概括為4個(gè)V, 數(shù)據(jù)量大(Volume)、速度快(Velocity)、類(lèi)型多(Variety)、價(jià)值(Value)。大數(shù)據(jù)作為時(shí)下最火熱的IT行業(yè)的詞匯,隨之而來(lái)的數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)安全、數(shù)據(jù)分析、數(shù)據(jù)挖掘等等圍繞大數(shù)據(jù)的商業(yè)價(jià)值的利用逐漸成為行業(yè)人士爭(zhēng)相追捧的利潤(rùn)焦點(diǎn)。
8、逆向匯編
匯編語(yǔ)言是一切程序的起點(diǎn)和終點(diǎn),畢竟所有的高級(jí)語(yǔ)言都是建立在匯編基礎(chǔ)之上的。在許多高級(jí)語(yǔ)言中我們都需要相對(duì)明確的語(yǔ)法,但是在匯編中,我們會(huì)使用一些單詞縮寫(xiě)和數(shù)字來(lái)表達(dá)程序。 一句話(huà)總結(jié),咱們搞網(wǎng)絡(luò)安全的人簡(jiǎn)直是全能型人才,文能提筆安天下,武能上馬定乾坤,說(shuō)的有點(diǎn)浮夸了。
怎么入門(mén)?
我們落到具體的技術(shù)點(diǎn)上來(lái),網(wǎng)絡(luò)安全學(xué)習(xí)路線(xiàn)整體學(xué)習(xí)時(shí)間大概半年左右,具體視每個(gè)人的情況而定。
高清可展開(kāi)腦圖點(diǎn)擊這里獲取
如果你把每周要學(xué)的內(nèi)容精細(xì)化到以下這種程度,你還會(huì)擔(dān)心學(xué)不會(huì),入不了門(mén)嗎?
1、Web安全相關(guān)概念(2周)
熟悉基本概念(SQL注入、上傳、XSS、CSRF、一句話(huà)木馬等);
通過(guò)關(guān)鍵字(SQL注入、上傳、XSS、CSRF、一句話(huà)木馬等)進(jìn)行Google/SecWiki;
閱讀《精通腳本黑客》,雖然很舊也有錯(cuò)誤,但是入門(mén)還是可以的;
看一些滲透筆記/視頻,了解滲透實(shí)戰(zhàn)的整個(gè)過(guò)程,可以Google(滲透筆記、滲透過(guò)程、入侵過(guò)程等);
2、熟悉滲透相關(guān)工具(3周)
熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相關(guān)工具的使用;
了解該類(lèi)工具的用途和使用場(chǎng)景,先用軟件名字Google/SecWiki;
下載無(wú)后門(mén)版的這些軟件進(jìn)行安裝;
學(xué)習(xí)并進(jìn)行使用,具體教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;
待常用的這幾個(gè)軟件都學(xué)會(huì)了可以安裝音速啟動(dòng)做一個(gè)滲透工具箱;
3、滲透實(shí)戰(zhàn)操作(5周)
掌握滲透的整個(gè)階段并能夠獨(dú)立滲透小型站點(diǎn)。 網(wǎng)上找滲透視頻看并思考其中的思路和原理,關(guān)鍵字(滲透、SQL注入視頻、文件上傳入侵、數(shù)據(jù)庫(kù)備份、dedecms漏洞利用等等);
自己找站點(diǎn)/搭建測(cè)試環(huán)境進(jìn)行測(cè)試,記住請(qǐng)隱藏好你自己;
思考滲透主要分為幾個(gè)階段,每個(gè)階段需要做那些工作;
研究SQL注入的種類(lèi)、注入原理、手動(dòng)注入技巧;
研究文件上傳的原理,如何進(jìn)行截?cái)唷㈦p重后綴欺騙(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等;
研究XSS形成的原理和種類(lèi),具體學(xué)習(xí)方法可以Google/SecWiki;
研究Windows/Linux提權(quán)的方法和具體使用;
4、關(guān)注安全圈動(dòng)態(tài)(1周)
關(guān)注安全圈的最新漏洞、安全事件與技術(shù)文章;
通過(guò)SecWiki瀏覽每日的安全技術(shù)文章/事件;
通過(guò)Weibo/twitter關(guān)注安全圈的從業(yè)人員(遇到大牛的關(guān)注或者好友果斷關(guān)注),天天抽時(shí)間刷一下;
通過(guò)feedly/鮮果訂閱國(guó)內(nèi)外安全技術(shù)博客(不要僅限于國(guó)內(nèi),平時(shí)多注意積累),沒(méi)有訂閱源的可以看一下SecWiki的聚合欄目;
養(yǎng)成習(xí)慣,每天主動(dòng)提交安全技術(shù)文章鏈接到SecWiki進(jìn)行積淀;
多關(guān)注下最新漏洞列表,推薦幾個(gè):exploit-db、CVE中文庫(kù)、Wooyun等,遇到公開(kāi)的漏洞都去實(shí)踐下。
關(guān)注國(guó)內(nèi)國(guó)際上的安全會(huì)議的議題或者錄像,推薦SecWiki-Conference;
5、熟悉Windows/Kali Linux(3周)
學(xué)習(xí)Windows/Kali Linux基本命令、常用工具;
熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;
熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;
熟悉Kali Linux系統(tǒng)下的常用工具,可以參考SecWiki《Web Penetration?Testing with Kali Linux》、《Hacking with Kali》等;
熟悉metasploit工具,可以參考SecWiki、《Metasploit滲透測(cè)試指南》;
6、服務(wù)器安全配置(3周)
學(xué)習(xí)服務(wù)器環(huán)境配置,并能通過(guò)思考發(fā)現(xiàn)配置存在的安全問(wèn)題;
Windows2003/2008環(huán)境下的IIS配置,特別注意配置安全和運(yùn)行權(quán)限,;
Linux環(huán)境下的LAMP的安全配置,主要考慮運(yùn)行權(quán)限、跨目錄、文件夾權(quán)限等;
遠(yuǎn)程系統(tǒng)加固,限制用戶(hù)名和口令登陸,通過(guò)iptables限制端口;
配置軟件Waf加強(qiáng)系統(tǒng)安全,在服務(wù)器配置mod_security等系統(tǒng);
通過(guò)Nessus軟件對(duì)配置環(huán)境進(jìn)行安全檢測(cè),發(fā)現(xiàn)未知安全威脅;
7、腳本編程學(xué)習(xí)(4周)
選擇腳本語(yǔ)言Perl/Python/PHP/Go/Java中的一種,對(duì)常用庫(kù)進(jìn)行編程學(xué)習(xí);
搭建開(kāi)發(fā)環(huán)境和選擇IDE,PHP環(huán)境推薦Wamp和XAMPP,IDE強(qiáng)烈推薦Sublime;
Python編程學(xué)習(xí),學(xué)習(xí)內(nèi)容包含:語(yǔ)法、正則、文件、網(wǎng)絡(luò)、多線(xiàn)程等常用庫(kù),推薦《Python核心編程》,不要看完;
用Python編寫(xiě)漏洞的exp,然后寫(xiě)一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲(chóng);
PHP基本語(yǔ)法學(xué)習(xí)并書(shū)寫(xiě)一個(gè)簡(jiǎn)單的博客系統(tǒng),參見(jiàn)《PHP與MySQL程序設(shè)計(jì)(第4版)》、視頻;
熟悉MVC架構(gòu),并試著學(xué)習(xí)一個(gè)PHP框架或者Python框架(可選);
了解Bootstrap的布局或者CSS;
8、源碼審計(jì)與漏洞分析(3周)
能獨(dú)立分析腳本源碼程序并發(fā)現(xiàn)安全問(wèn)題。
熟悉源碼審計(jì)的動(dòng)態(tài)和靜態(tài)方法,并知道如何去分析程序;
從Wooyun上尋找開(kāi)源程序的漏洞進(jìn)行分析并試著自己分析;
了解Web漏洞的形成原因,然后通過(guò)關(guān)鍵字進(jìn)行查找分析;
研究Web漏洞形成原理和如何從源碼層面避免該類(lèi)漏洞,并整理成checklist。
9、安全體系設(shè)計(jì)與開(kāi)發(fā)(5周)
能建立自己的安全體系,并能提出一些安全建議或者系統(tǒng)架構(gòu)。
開(kāi)發(fā)一些實(shí)用的安全小工具并開(kāi)源,體現(xiàn)個(gè)人實(shí)力;
建立自己的安全體系,對(duì)公司安全有自己的一些認(rèn)識(shí)和見(jiàn)解;
提出或者加入大型安全系統(tǒng)的架構(gòu)或者開(kāi)發(fā);
我也整理了一些網(wǎng)安學(xué)習(xí)資料
部分內(nèi)容展示
視頻教程
書(shū)籍資料(涉密部分分享不了)
SRC資料包&HW護(hù)網(wǎng)行動(dòng)
面試題資料
這份完整版的網(wǎng)安學(xué)習(xí)資料已經(jīng)上傳,朋友們?nèi)绻枰梢渣c(diǎn)擊下方↓鏈接免費(fèi)領(lǐng)取【保證100%免費(fèi)】
B站大禮包:《黑客&網(wǎng)絡(luò)安全入門(mén)&進(jìn)階學(xué)習(xí)資源包》免費(fèi)領(lǐng)取
最后,給大家整理了一個(gè)簡(jiǎn)單的學(xué)習(xí)方法,可以借鑒:
1. 多看書(shū)
閱讀永遠(yuǎn)是最有效的方法,盡管書(shū)籍并不一定是最好的入門(mén)方式,但書(shū)籍的理解需要一定的基礎(chǔ);但是就目前來(lái)看,書(shū)籍是比較靠譜的入門(mén)資料。
例如:《黑客攻防---web安全實(shí)戰(zhàn)詳解》《Web前端黑客技術(shù)揭秘》《安全之路:Web滲透技術(shù)及實(shí)戰(zhàn)案例解析(第2版)》
現(xiàn)在Web安全書(shū)籍比較多,因此大家在學(xué)習(xí)的過(guò)程中可以少走了不少的彎路。如果以上推薦書(shū)籍閱讀有困難,那就找自己能看得進(jìn)的 Web 安全的書(shū)。
當(dāng)然紙上談兵終覺(jué)淺,不實(shí)踐一下怎么好呢。
2.常用工具的學(xué)習(xí)
學(xué)習(xí) Proxy 抓包改包學(xué)習(xí) Intruder 爆破模塊學(xué)習(xí)實(shí)用 Bapp 應(yīng)用商店中的插件使用 Nmap 探測(cè)目標(biāo)主機(jī)所開(kāi)放的端口使用 Nmap 探測(cè)目標(biāo)主機(jī)的網(wǎng)絡(luò)服務(wù),判斷其服務(wù)名稱(chēng)及版本號(hào)對(duì) AWVS 中掃描出的 SQL 注入漏洞使用 SQLMap 進(jìn)行數(shù)據(jù)獲取實(shí)踐常見(jiàn)漏洞類(lèi)型的挖掘與利用方
3.學(xué)習(xí)開(kāi)發(fā)
1.書(shū)籍《細(xì)說(shuō) PHP》
2.實(shí)踐使用 PHP 寫(xiě)一個(gè)列目錄的腳本,可以通過(guò)參數(shù)列出任意目錄的列表使用 PHP 抓取一個(gè)網(wǎng)頁(yè)的內(nèi)容并輸出使用 PHP 抓取一個(gè)網(wǎng)頁(yè)的內(nèi)容并寫(xiě)入到Mysql數(shù)據(jù)庫(kù)再輸出。
也可以找一個(gè)培訓(xùn)班,系統(tǒng)的學(xué)習(xí)一下,都是可以的。
尾言
說(shuō)實(shí)話(huà),上面講到的資料包獲取沒(méi)有任何門(mén)檻。 但是,我覺(jué)得很多人拿到了卻并不會(huì)去學(xué)習(xí)。 大部分人的問(wèn)題看似是 “如何行動(dòng)”,其實(shí)是 “無(wú)法開(kāi)始”。 幾乎任何一個(gè)領(lǐng)域都是這樣,所謂 “萬(wàn)事開(kāi)頭難”,絕大多數(shù)人都卡在第一步,還沒(méi)開(kāi)始就自己把自己淘汰出局了。 如果你真的確信自己喜歡網(wǎng)絡(luò)安全/黑客技術(shù),馬上行動(dòng)起來(lái),比什么都重要。
網(wǎng)絡(luò)安全領(lǐng)域就像是一棵碩果累累的參天大樹(shù),底下站著無(wú)數(shù)觀望者,他們都聲稱(chēng)自己喜歡網(wǎng)絡(luò)安全,想上樹(shù)摘果,但面對(duì)時(shí)不時(shí)垂下來(lái)的藤枝,他們卻躊躇不前,猶豫不決。
實(shí)際上,只要任意抓住一根藤枝,都能爬上這棵樹(shù)。 大部分人缺的,就是這么一個(gè)開(kāi)端。