本片文章是寫給社團中學習網絡安全的同學的一點指導性文章,大家衆所周知,我們學校并沒有網絡安全這門專業,所有的學習将是完全靠大家自學,社團建立網絡安全戰隊就是為了力所能及的給大家提供最好的資源,幫助大家。本片文章内容隻是我的個人觀點,并不全面,本人也是一個剛入門的CTF練習生,所有的東西也是自學,并不全面,沒有系統化學習過,更多資源還需靠自己查找。祝願各位打算從事網安事業的同學加油!理論是枯燥的,但所有的實踐需要理論去支撐!
寫在前面:
本片文章是寫給社團中學習網絡安全的同學的一點指導性文章,大家衆所周知,我們學校并沒有網絡安全這門專業,所有的學習将是完全靠大家自學,社團建立網絡安全戰隊就是為了力所能及的給大家提供最好的資源,幫助大家。本片文章内容隻是我的個人觀點,并不全面,本人也是一個剛入門的CTF練習生,所有的東西也是自學,并不全面,沒有系統化學習過,更多資源還需靠自己查找。祝願各位打算從事網安事業的同學加油!理論是枯燥的,但所有的實踐需要理論去支撐!
對于剛剛涉足安全界的同學來說,在沒有老師帶領的情況下,在如何學習網絡安全上充滿了迷茫,網絡安全是一個綜合性學科,涉及領域非常廣,常指網絡系統的硬體、軟體及其系統中的資料受到保護,不因偶然的或者惡意的原因而遭受到破壞、更改、洩露,系統連續可靠正常地運作,網絡服務不中斷。 網絡安全包含網絡裝置安全、網絡資訊安全、網絡軟體安全。從廣義來說,凡是涉及到網絡上資訊的保密性、完整性、可用性、真實性和可控性的相關技術和理論都是網絡安全的研究領域。網絡安全是一門涉及計算機科學、網絡技術、通信技術、密碼技術、資訊安全技術、應用數學、數論、資訊論等多種學科的綜合性學科。
這麼多内容,對于一個剛入門的小白來說,剛開始摸不着頭腦,是以,我根據自己的學習、工作以及實踐經驗列出了我的學習方法,希望可以幫助到更多的學弟學妹。
0x00 計算機基本常識:
首先學習網絡安全,要了解和掌握計算機基本常識,常用軟體使用。這是最最最~基礎的東西。
需要學會基本使用的軟體或技術有:Word、VMware、***、Visual Studio、FireFox及其插件、一款編輯器,學會如何截圖、編譯運作程式、使用 Baidu Google查詢資料等,掌握搜尋引擎的用法,就等于掌握了網絡上的所有資源,随取随用。
0x01 C語言基礎:
學習基礎的 C 語言,不管是否是程式設計方向,我覺得都有必要了解一些 C 語言,會編 寫簡單的 C 程式代碼。 我們需要的并不是你能想大神一樣用C來寫一個作業系統,我們要的是程式設計思想,要的是邏輯判斷和程式的執行思想。
在這裡,我推薦的入門書籍有:譚浩強《C程式設計》這本書洗的有點亂,需要有一點基礎的人看、《C和指針》,如果從來都沒了解過C,建議去某寶買一本清華大學出版社出版的C語言來看,寫的比較全面。或者去學校圖書館借一本輕松學C也可以。C語言對于初入門的同學來說是一座大山,但一旦翻過了這座大山,前面将會是一馬平川。如果想深入研究C語言,《C和指針》這本書将是你最好的選擇。
0x02 web安全基礎:
你需要了解web應用的各種常見漏洞(知道是什麼,如何形成):SQL注入、XSS、CSRF、上傳漏洞、解析漏洞、任意檔案包含漏洞、點選劫持、弱密碼、cookie欺騙等,會使用一些常用入侵檢測工具和輔助工具,并入侵一些安全系數較低的web應用。要能判斷某密碼的hash類型、能識别一些常用的web指紋、能在網際網路上搜尋目标相關資訊、了解一句話木馬并會利用等等。
了解關于web安全的周邊知識,經常去看一些技術論壇或者大神的部落格,自己最好搭建有一個部落格,來記錄和分享自己對知識點的了解。同時也可以分享給他人學習。
0x03 常用Windows指令:
選做滲透測試的同學,尤其需要首先學習一些常用的 windows 指令(最好在實戰中邊運用 邊練習),特别是入侵檢測是常用指令,如 net user、net localgroup、net use、net share、net start、arp、whoami、regedit、tasklist、find、cp、mkdir、del、dir、 print…… ,我在後期會在部落格中将一些Windows的相關指令寫出來供大家參考,同時你也可以去個搜尋引擎搜尋,不要嫌煩,網絡安全就是要勤動手,才能掌握更多知識。要自己能寫一些批處理腳本,完成一些重複性任務。腳本這個東西,将在你的網絡安全道路上一直伴随你。
0x04 資料結構:
有走開發方向的同學,這是必學的,其他方向的同學也可以适當了解。
在C語言學習到一定階段後,可以開始了解資料結構,它和C語言相輔相成,可以說在我們學習C語言的後期,很好的對我們C語言知識進行了整理。當學習完成資料結構後就可以寫一些ACM的競賽題目了,我也看到社團中有一部分人也參加了ACM程式設計集訓隊。
0x05 Windows程式設計:
在資料結構學習完成之後,我覺得就是一個分水嶺了。做滲透方向的就不必繼續深
入 Windows 程式設計,大可繼續積累網絡安全經驗,但開發、逆向的同學就需要學習 windows 程式設計了。
Windows 程式設計無非就是閱讀 MSDN,熟悉每個 windowsAPI 的用法,平時想到的 好點子可以嘗試寫成程式,增加自己的代碼量積累。
windows 程式設計也是一個積累的過程,需要慢慢了解每個 API,是以學習起來并不緊 張。
0x06 web安全積累期:
其實積累是一個長期的過程,是以也不分期限的。平時可以在如部落格園、csdn、看雪,安全科之類的安全社群和大家一起讨論,多關注最新的技術、漏洞,平時注意 搜集每個漏洞的成因、利用方法、修補方法,并嘗試在網上尋找實戰的機會。 這段時間還可以學點腳本語言,當掌握了一門順手的腳本語言後就能更快速、更便捷地做很多針對性的攻擊。
0x07 彙編語言
彙編也是一門基礎課程,對以後的逆向破解、漏洞挖掘、木馬免殺的學習都有直接 影響,在 windows 程式設計的學習期間可以開始學習彙編。 大概了解16位的彙編語言,知道基本文法,重點在32位彙編的學習上。學習彙編語言可以結合自己寫的C程式,将自己寫好的程式調試,單步調試每一句彙編語言,不懂就查。
0x08 逆向破解
在彙編基本文法學習完畢後,可以選擇性地開始學習逆向、破解相關操作。在學習逆向的過程中就可以熟悉之前學習的彙編指令的使用推薦圖書:《加密與解密》
0x09 一門腳本語言
對于做滲透測試方向的同學尤為重要,對于做開發的同學也可以學習一門腳本語言。
我推薦的是python或php,學習 python 可以快速開發出一些有針對性的腳本,而學習 php 可以嘗試進行 web 漏洞的挖掘。 同時也要掌握正則表達。
0x10 Linux使用
學習滲透的同學在這段時間又能分為兩條路,一是web安全,二是内網滲透。web安全偏重于web應用漏洞挖掘和利用,内網滲透偏重于網絡環境的分析、内網計算機的漏洞利用。内網中大部分重要計算機屬于Linux,是以學會Linux基礎的使用,Linux各種服務的搭建、維護、漏洞利用修補是必須的。 推薦圖書:《鳥哥的 Linux 私房菜》 非常好的一本書。
0x11 木馬免殺
在逆向學習完成後,又可以分為幾個小方向:深入破解、exploit、木馬免殺。能夠自己編寫木馬後,最需要的就是免殺。如果編寫的病毒木馬不能運作,也無濟于事。免殺成功與否是運氣、經驗、靈感、技術、耐心的集合體,缺一不可。是以雖然很多人嘗試學習,但最後真正能做到完美的人并不多 推薦圖書:《黑客免殺攻防》
0x12 Exploit二進制漏洞
在逆向學習完成後,又可以分為幾個小方向:深入破解、exploit、木馬免殺。其中Exploit對技術要求較高,回報也最豐厚,是以是很多大牛集結之地。學習exp需要對C、C++有牢固的基礎,并有一雙發現問題的眼睛。在他人眼中可能隻是一個軟體崩潰或錯誤資訊,在exper眼裡就可以是無窮無盡的财富。
0x13 網絡環境利用與win伺服器
在Linux基礎學習到一定程度後,可以開始學習網絡,如何利用内網内各種計算機開啟的各種服務,來達到滲透進目标機器的目的。當然,同時也要學習 Windows 伺服器的使用,了解什麼是域,如何在 windows 環境下使用各種服務。因為一個大内網下一般個人機、目标機是windows系統。
0x14 Windows核心程式設計
在Windows程式設計學習到一定程度後就可以開始核心程式設計,其實二者并無太大差別,隻是核心程式設計更加偏重windows核心的一些機制。當你的技術不僅限于開發桌面應用以後,木馬、病毒這些更接近系統底層的東西既可以滿足要求。這本書對于以後做開發的同學必看不可:《Windows核心程式設計》、《天方夜譚》、 《寒江獨釣》。
以上是學習過程的總結,作參考使用。
下面是我在網上找的關于網絡安全學習的思維導圖。
供11張,後面附有原圖的下載下傳位址
● 網絡安全緒論
● 掃描與防禦技術
● 網絡監聽及防禦技術
● 密碼破解及防禦技術
● 欺騙攻擊及防禦技術
● 拒絕服務供給與防禦技術
● 緩沖區溢出攻擊及防禦技術
● Web攻擊及防禦技術
● 木馬攻擊與防禦技術
● 計算機病毒
● 網絡安全發展與未來
檢視連結:https://blog.egsec.cn/archives/402
附件:思維導圖下載下傳
最後:
學習網絡安全還需要學習網絡安全法,要知道什麼事情能做,什麼事情不能做,一個法律邊緣徘徊的學科,所有我們學習的同時也要守住自己的底線。别動不動就攻擊入侵他人計算機!