標籤:

黑客如何學起?

起步需要什麼資金條件?

多久能夠上手?

相關問題:零基礎怎麼做黑客?


今天心血來潮給大家寫個新手到黑客入門的路徑圖【附全部學習資料下載】!

寫在前面,這是我重新發布的一次,我的回答被舉報刪除了,不知道誰舉報的,但是希望不要用惡意的心態去看待分享這件事情,我分享都是能夠幫助到大家的,如果再被舉報刪除,那我也無話可說。

入門介紹:

說到黑客大家可能覺得很神秘,其實我們說的的黑客是白帽子黑客,就是去尋找網站、系統、軟體等漏洞並幫助廠商修復的人,剛入門的黑客大部分從事滲透工作,而滲透大部分屬於web安全方向,就是利用漏洞來取得一些數據或達到控制,讓對方程序崩潰等效果。

一些常用的名詞解釋:

挖洞的話,就相當於在程序中查找漏洞,舉一個不大恰當但容易理解的比喻,就像韓非子說所的那個自相矛盾的故事:楚國有個人自稱自己的矛是世界上最鋒利的矛,沒有什麼盾牌它刺不破,同時又說自己的盾是世界上最堅固的盾,沒有什麼矛能刺破它,雖然兩句話在語法上並沒有什麼不妥,但卻有個致命的邏輯漏洞,因為用他的矛刺他的盾,將導致「不可預知」的結果,當然了,在程序中這種「不可預知」的結果往往會導致各種問題,崩潰或執行非預期功能都有可能,這個就是漏洞了。

再來說說後門,這個很好比喻,就像是警匪片中的卧底或者是笑傲江湖中的岳不群,表面上做一套,背地裡做另一套。在軟體中就是這個軟體提供給你了你需要的功能,但在背後它可能偷偷摸摸地幹了一些你不想他乾的事,例如竊取你電腦上的文件。

0day和挖洞是相關的,漏洞發布後,廠商一般不能說馬上把漏洞填補了,那麼這段時間這個漏洞是可利用的,久而久之,我們把那些剛發布的漏洞(或者說根本沒發布自己偷偷用的漏洞)叫做0day,當然了,它的殺傷力較一些老的漏洞往往大的多。

肉雞的話我們可以直接理解為已經中了木馬受我們控制的傀儡計算機,我們可以控制傀儡機做一些我們不直接做的事情。Web安全必須要了解Web方面的一些基礎知識做為鋪墊的去的去學習這門技術,因為不是人人都可以直接先滲透在進行編程等方面學習的、所以為了更好的入門的Web安全必須要先掌握一些基礎知識,相比對逆向方面的入門Web安全真的不難,逆向要是想了解一個簡單的什麼叫jmp esp溢出需要的基礎知識不是一點點,如果是計算機專業的還好,不然通過自己去學習真的不是那麼簡單,不說太多,下面我就給大家推薦一個前期學習知識的路徑和資源鏈接。

進入學習階段:

首先是我給大家推薦的是前端的html/css/js + php進行學習,前端的這些都是肯定需要學習的知識,至於後端的編程語言我建議還是php,主要是因為入門學習快、目的呢就是更快的接觸到php+mysql開發,這樣前前後後的知識加起來才能在知識鏈上完整構成一個網站,這樣做的好處的就是快速了解一個網站如何開發,什麼是前端和後端?什麼是http?什麼是資料庫,網站的數據都存儲在哪?

當然不怕枯燥的話從C語言開始學起更佳,相比於C語言這種學習了半載一年還不一定有什麼成果的玩意,直接用工具按照教程來達到目的會容易且有趣的多,但學習C語言在很多的時候,往往能夠學習到C語言之外的東西,對程序的運行,內存的分配與管理,數據結構甚至是編程的書寫習慣,都有非常大的好處,可以說,C語言學會後再學習其它大部分的語言都會快得多。

第一部分資源鏈接如下:

這套PHP的教程包含了html/css/js和php+mysql保證一天看一課時的一個月就可以掌握,文件中的「就業班」的文件夾包括了一些後續的jquery+ajax+xml等等, 在前期的學習過程中這些後續知識可以選擇性學習

鏈接: https://pan.baidu.com/s/1geFVuzL 密碼:gmj8

下面這個鏈接是HTTP協議的教程來源自燕十八php教程中,我覺得這個http講解的非常好

鏈接: https://pan.baidu.com/s/1eSKXw8E 密碼:umuu

在學習了上面教程恭喜你已經簡單的入門了Web,接下來了就是進行安全的學習,這方面我就給大家一個教程就是小迪的,剩下的網路上的教程個人覺得都不太適 合入門,除了個別的不錯,大部分都是直入主題之家講怎麼利用,不適合學習!

鏈接: https://pan.baidu.com/s/1nuHLenn 密碼:c54y

教程中工具連接

鏈接: https://pan.baidu.com/s/1pLfx8Sz 密碼:sfsd

在學習完成以上知識後就可以在各大漏洞平台或SRC平台找一些目標來實際的挖洞一下,前期肯定是花大量的時間也不一定的夠挖到,所以可以加i春秋的QQ群問問群里的管理們:417360103

兩個重要的思維導圖:

情報收集思維圖

漏洞挖掘思維圖

注釋:SRC是各大互聯網廠商的安全部門,負責審核你挖掘的漏洞並提供獎勵。

挖洞時一定首要學習前期的信息收集,俗稱:踩點

新手必看:

漫談前期信息收集

信息收集系列之一--搜索引擎

信息收集系列之二--輕量級信息收集工具

信息收集系列之三-重量級信息收集工具

工具|手把手教你信息收集之子域名收集器

註:挖洞只為提交漏洞,維護網路安全,請勿做出違法行為,網路安全法規已出。

你是如何看待網路安全法的出台的?它會對你造成什麼影響?

談網路安全法的一些想法

第二部分資源鏈接如下:

好了,在學習上面的教程中已經可以算是安全入門了,不過接下來還需要在一部進行學習

這部分是沒有什麼教程的,需要自己去百度學習,學習的內容就是2003、2008操作系統聽著很簡單對不對?

我需要大家使用以上的操作系統使用網上的已有的CMS(如:discuz,WordPress,phpcms,dedecms等)大家一個站點,從在伺服器上安裝和配置php+apache+mysql等環 境開始,不要使用集成工具偷懶,去體會一個網站的搭建流程,知道是什麼ftp,什麼是空間,在網上買的虛擬主機和伺服器,vps是個什麼區別?什麼是CMS目標站點?

我建議是自行在空間商購買一個伺服器,價格一個月在100以內就可以了!

註:如果是不能購買那麼請學習安裝虛擬機本地使用鏡像搭建伺服器環境

以上的內容的最好通過百度自己完成,這些小問題都是百度都可以解決,要學會使用百度,不要什麼問題都去問別人!!!

接下來肯定是一部分的linux知識學習了

是一個在線的教程

http://study.163.com/course/courseMain.htm?courseId=983014

接著可以學習一門可以方便我們寫exploit利用工具的編程語言,首選肯定是python 優點:入門快,網路編程擁有強大的各種庫做支持,更易編寫工具

一套的簡易的在線教程,來自於中谷python,學習完畢後寫一些簡單的GET/POST型工具練練手不是問題

http://www.icoolxue.com/album/show/113

Python大法從入門到編寫POC

零基礎入門學習Python(全42集)

註:第二部分的同樣的很重要,了解網站的搭建構成,什麼是CMS,對滲透很有幫助,現在大多數的網站基本上都是使用的CMS建站,因為安全,方便,模板樣式也多,通常在滲透過程中我們對目標的信息收集就要著重關注這些程序的版本是不是最新的?如果不是有沒有漏洞呢?

第三部分資源鏈接如下:

這部分是一大塊,我不打算在細分了,之前的內容幾個月就可以完成,下面的內容能1年內完成都可以說是很不錯的!

這部分我認為應該需要掌握TCP/IP原理以及進一步的提升編程技術。

教主的TCP/IP教程

鏈接: https://pan.baidu.com/s/1dEMM8t7密碼:ybmm

傳智的前端的教程,非常推薦學習!

鏈接: https://pan.baidu.com/s/1cM12F0 密碼:6x8r

傳智的的Java教程,選擇性學習,如果感興趣Java的可以學習。如果不學習也可以看看裡面的oracle資料庫教程!

鏈接: https://pan.baidu.com/s/1mhQA4hM 密碼:kx29

有兩套Python的教程,都是系統的pythonWeb開發,選擇一套學習即可

鏈接: https://pan.baidu.com/s/1c1Hzwha 密碼: hbt9

完成基礎的姿勢學習後,一定要多看看其他白帽黑客的實戰思路,對你的實踐是非常有幫助的,知識是死的,思路是活的。

白帽子分享挖洞技術/思路的實戰內容【建議收藏】

挖洞小幫手:

AG安全團隊2017大型工具包

進階了解/學習:

彙編基礎視頻+天草逆向視頻

逆向/破解/病毒分析實戰分享【經常更新,建議收藏】

社會工程學也是必不可少的一項技能:

社工盒子 最全面的社會工程學工具

常見社工方法以及如何防社工

社工之經度緯度定位-50米以內

闡述網路上所有定位方法-超高精確定位

資源不夠的話可以去這裡搜一下

超級多的白帽黑客工具/源碼類集合【經常更新,建議收藏】

超級多的白帽黑客視頻/書籍教程集合【經常更新,建議收藏】

結語:

其實在接觸了Web安全1年之後大家都自己也能知道自己以後的學習目標,第三部分主要還是推薦些好的資源!

學習過程中,尤其是前期學習千萬不要放棄,三天兩頭的進行學習,同時學習的過程中要記錄圖文並茂的筆試,最重要的進行實踐,實踐,實踐!

在實踐中發現問題,解決問題!安全非一朝一夕之事。

註:解密密碼請看壓縮包注釋

【解壓密碼直接放出來吧:複製這個網址粘貼解密,www.lthack.com/php 非廣告,無用的網址。

最後的最後,這麼多乾貨學習資源,別光顧著收藏啊,點個贊+關注合情合理吧


轉載下我的《黑客學習發展流程圖(黑客反病毒論壇)》吧。

今天看一位網友的日誌上面有一篇名為「學黑的目標」的日誌,裡面有一個略顯粗糙學習發展流程圖,後面還跟著一句話「有目標才有動力」,不禁有些感慨。

這使我感覺到,一個「過來人」留下的東西對後面的新人影響之巨大!但是很不幸的是,這些影響並不都是正面的,因此我覺得,一點一滴的積累對於後人的學習與提高更有幫助!大多數人在越過門檻時被淘汰掉了,因此門檻後面的路對於大多數人來說並不重要,重要的是門檻前面的路是否好走。

有了這樣的一個想法,便因此誕生了一張圖,希望這張圖能給有信心的新人們指引一個方向,並使沒有信心的新人知難而退,以免浪費自己與別人的時間。

由這幅圖不難看出來,真正想學點有用的東西是需要很多基礎知識的,而這些基礎知識的涵蓋面也是非常廣的!因此,黑客技術並不適合沒有毅力的人學習,更不適合容易自我膨脹的人學習。

沒有一個與世無爭的心態,在網路安全領域裡很難有什麼成就。

===== 2015-01-05 更新 ========================================

6年前的夏天,還在大學的我百無聊賴的翻著技術書籍,耳邊是宿舍兄弟們打3C的聲音。隨手點了點博客,發現有個黑客技術初學者正在按照一張質樸的黑客學習路線圖去收集資料,並試圖學習黑客技術,正是由於這個原因,使得我突然間來了一種使命感,因此便誕生了《Windows下Hacker學習發展流程圖 V0.2 Beta》這張圖。

但是令我所想像不到的是,這張圖在隨後的幾年時間內在各大社區瘋傳,部分社區的點擊量甚至都是以10萬計,回復量甚至都是以千計的。除此之外,很幸運的是,這幅圖也成了不少大學信息安全專業的教學素材。

這幅圖能發揮出如此之大的力量是我創作之初所沒有想到的,也正是因此,才使得我有動力在6年之後完成了這幅圖的正式版。這個版本的圖沒有圖注,我期望這是一副僅憑直覺就能看懂的圖,如果您對這幅圖有什麼建議(包括但不限於內容準確性、樣式、配色、用語等),都歡迎向我反饋,我會儘快對其進行更新。

===== 2017-03-02 更新 ========================================

有關學習心法及具體書目請參照《黑客技術/信息安全/網路安全如何從零學起? - 知乎專欄》

歡迎關注我的專欄:黑客說 - 知乎專欄

.


現在的人都這麼浮躁的嗎,請從以下書籍開始學習:

《8086 彙編語言》

《c primer plus》

《微機原理與應用》

《深入理解計算機系統》

《從實模式到保護模式》

《x86 x64 體系探索及編程》

《c++ primer plus》

《數據結構》

《演算法導論》

《編譯原理》

看完,ok,你是小萌新了,可以按照其它回答的內容去學習了。

評論區很精彩。別說搞安全,創宇做爬蟲的小姐姐都把這些書放工位上。


如果你只是為了做黑客而去學技術,我覺得這是很膚淺的。我做了十五年的工程師,偶爾也去一些培訓機構給別人當老師,深知做黑客只是學習編程所附帶的技能。首先你必須把c語言學好,敲個幾萬行代碼自己體會。想要找到捷徑,不存在的。編程是一個鍛煉腦力邏輯能力的過程,學生的話,三天我就可以教你用java語言寫出飛機大戰,五子棋,球球大作戰這些簡單的小遊戲。而不是爬取別人的用戶信息來獲得滿足感,我覺得真正的滿足感來源於花上10分鐘寫出來的遊戲就能讓別人玩上半天。如果你真的有天賦,紅客倒是個不錯的選擇,不過想加入他們你必須攻破他們指定的網站,廢話不多說,入了我們這一行,大家都是兄弟,有不會的問題可以找我。


我一直有個疑惑:為什麼知乎答題者所答非所問?

別人的問題提了,你就要按照別人的問題一板一眼的去回答,否則就不要去回答,

因為那樣就像你在光天化日之下扯小雞雞,讓別人不爽的同時你自己也蛋疼的要命,

何必這樣無趣的自討苦吃?

提問題,回答問題是兩個非常重要的素質,可以說是需要專門進行訓練的,

然而咱們答題無數,提問無數卻鮮有人提取其中的要領進行專業化學習,

可能這也不見得能夠學到,因為他是要一個人各方面的綜合能力加整在一起才能具備的一項特殊技能。

我就在我回答問題以前業已存在的答題者作了一番批評教育(說不定會被罵),

下面通過我的回答請你們能夠吸取教訓,下不為例,日後改進行為作風

(說不定會被吐槽:裝逼)。

下面的答題格式之所以那樣的一板一眼的,是為了與上面和問題無關的部分區分開來,以讓閱者清晰意識到正式進入問題解決的部分,而不是死板。

我鼓勵更多類型的答題風格出現,比如可以講故事,但是請切中問題要害,不要連篇累牘的扯了半小時說了很多和問題毫無聯繫的廢話。

問題一:黑客如何學起?

答:必須從學習者的角度來看,如果你是一個已經學過編程,通曉幾門語言的人那麼這個答案就會和一個從沒有接觸過的計算機,甚至連什麼叫高級語言還不知道的人有所區別的對待。

這就像是登珠穆朗瑪峰一樣,有的人已經在200米高的地方,而有的人還在20米高的地方,如果要一個已經在頂峰的人來回答二位不同高度的人的問題:我應該怎樣像你一樣快速爬到頂峰?對於200米的人回答就可以略過珠穆朗瑪峰200米以下的那一部分應該如何爬,注意哪一點,並且基於一個已經對珠穆朗瑪峰有一定經驗的人來說,頂峰的人只需要通過整合他過去200米的經驗來指導就可以,但是如果對於200米高度的人的答案讓一個在20米處的人理解就有難度。同樣的,讓200米高度的人來理解對20米高度的人的回答就會顯得雜冗,猶如雞肋,食之無味,棄之可惜。所以請先定位你自己處於哪種層次。

下面我的回答是對身處20米高度的人的回答,甚至可以說對還沒有開始登峰的人回答,換到計算機黑客技術上來說就是針對零基礎小白來說的。

這個版本的答案對於已經能夠編程,知道計算機語言的類型,知道一些網路基礎協議的人來講就不免會顯得如雞肋一般食之無味棄之可惜,但如果認真研讀,還會有整合你過去認知的作用的。

小白的迷茫:

誰沒有小白過呢?在建築大樓、宇宙飛船、釣魚、養寵物、還有一個不太好意思透漏的談女朋友上至今本人也還是個小白。

回想起當年蹣跚學步。

晃晃噹噹的學騎自行車,由開始的緊張恐懼,手足無措,到最後的老司機,由走到跑,由跑到蹦,由蹦到想飛起,都有一個從小白到老司機的過程。

現在迷茫,不如想想曾經我們也迷茫過,在很多自己不熟悉的路上,未來也會有很多迷茫,但是請不要怕,因為迷茫意味著進化,意味著你即將開始新一段的從小白到老司機的歷程。這就是人生,一個成長的過程。所以小白的迷茫不足為懼,懼怕的是你因為迷茫而選擇放棄,度過迷茫期以後你才會有所改變,才會不再迷茫,逃離不該是你的選擇,你應該像是一隻雄鷹,而不是一隻老鼠,因為你的未來是藍天、白雲、而不是臭水溝、垃圾場。

此刻,你要踏上的是神聖而偉大的計算機黑客的殿堂,迷茫嗎?那就對了。

老司機指路:

黑客如何學起?

這個問題對於小白來說有點大。因為一談到黑客就不免講到各種入侵、破解、滲透、盜號、黑貓白貓、DDOS、偷窺、控制、破壞等相關的東西,而這些概念想要真正意義上的理解是必須在理解計算機工作原理的基礎之上的。

所以,基礎很重要,特別記住:基礎很重要。

我在這裡把基礎分為三塊吧:

第一:計算機工作原理基礎

第二:計算機網路基礎

第三:黑客基礎

就這三塊的劃分,對於小白來講都不免有迷茫,因為計算機是什麼?計算機網路是什麼?黑客是什麼?這些基礎中的基礎的東西可能都不太理解,談何理解這種劃分的根據呢?

這個迷茫是必要的,不迷茫哪來的探尋,沒有繼續的探尋哪來的進步和成長?

所以我還要再次慰藉,特別是自己摸索來自學的人:不要怕,地震會走,暴雨會停,迷茫也會消散,只要你不拋棄不放棄,那風雨後的彩虹才會是屬於你的。

待續...............

---------------------下面續更——————————————————————

那麼不理解上面的劃分怎麼辦?不理解為什麼要把計算機的工作原理單獨孤立出來作為一個學習對象,把計算機網路和黑客基礎單獨列出來作為一個學習對象,在這裡我認為就沒有必要繼續擴展你的問題海洋了,因為他已經足夠大了,如果繼續擴你的問題,恐怕你會問到世界從哪裡來,是否有一個開端。因此必須點到為止,劃定你的問題邊界,不該再繼續追問的時候就直接無條件接受,也就是我說這樣便是這樣,沒有什麼為什麼,收住你那思想的疑問盒子。

如果你實實在在的有很多對計算機緣何能展示那麼絢麗的圖像,還有怎麼播放視頻,如何能夠把信息從外國傳到中國這些問題不解決無法繼續前進的深在疑惑的話,我建議你從計算機的歷史中去解決。

計算機的歷史:這是計算機從無到有的,從簡單到複雜,從無人問津到人人趨之若鶩的發展總過程。

就像我們無法知道人類從何而來,那麼我們就從人類歷史裡去大致認識人類的發展圖景,這會讓我們對一件事物有更加深刻的認識。

此處附上百度百科計算機的詞條解釋索引,從中你會有所收穫,雖然你會有很多不懂的百度百科計算機

這是對於特別愛追根問底的自學者的一點指引建議,不那麼愛追根問底的人自學起來其實比較容易,因為你給他指一個蘋果告訴他那是蘋果,他就只管記住就可以了,不會去問為什麼蘋果這個樣子?為什麼會有蘋果等之類的複雜疑問。這些疑問有助於我們拓展更多對蘋果的認識,但是對於初步認識的人來說卻是一件不利之事兒。所以這對於那些不愛追根問底的人來講是有優勢的,但是長遠考慮的話,那些愛追根問底的人會更有優勢。

閑話少敘,我也不可能從開天闢地萬物之始去給你講到黑客如何學起,其一是我沒有這個能力,其二是真的這樣大動干戈的來,恐怕我要寫上個幾年,到那時咱們誰也別學了,都談天說地好了。

那就從計算機的工作原理開始說起

要完成這部分的基礎學習,你有很多開始的起點選擇,你可以選擇從經常使用電腦開始,也可以從明天起開始選擇一門編程語言去學開始(此處注意:小白可能不理解有哪些語言,並且很容易陷入迷亂中),或者是去一些論壇逛逛,或者是買一本書籍。起點的渠道很多,看你選擇哪一種。

我建議,首先從一門編程語言開始,一定要死磕,選擇一門編程語言不能放棄,要從頭到尾的去學完。我在這裡不推薦語言,可以自己慢慢了解去選擇自己喜歡的一門。(了解過程中不免有迷茫,很正常)

但這還只是一部分而已,還有一部分硬體的知識可能需要你去理解。比如什麼是馮諾依曼結構?作為一名小白可以不那麼三心二意,先把前人給你指引的首要的東西學了,然後再去拓展是最穩妥的。

計算機眾所周知的是由軟體+硬體的機器,硬體是軌道,軟體是跑車,跑車在軌道上跑才形成了各種各樣的數據樣式的展現。這是形象化了的舉例,與真正的硬體和軟體有所出入,但是前期為了理解,放棄那種精確,求之以粗糙是很有必要的。

上面我的建議,從編程開始入手學習,從更大的視野來看,就是從軟體開始下手,因為硬體已經被設計完成,與你操作計算機的關係不大,一個懂硬體的未必會對計算機操作很牛逼,因為你的目的是黑客,是對計算機工作的控制,而不是構造計算機,因此軟體優先於硬體。

後期如果對硬體感興趣,甚至於有改進計算機硬體結構的願望的話,理解了計算機的軟體後再去進行還會有輔助效果。

對於這部分的基礎,我不想再說更多,越說你越糊塗,你的疑問越多,想要學會游泳的最好方式是杜絕恐懼,不作什麼太多的準備,直接跳入水中,先行動,再從行動中找感覺,找到你的理解。

因此,去找一門編程語言,死磕一門,絕對要死磕,(我指的是想成為黑客大神的人,如果你的目標就是能搞個小入侵,知道點計算機的基本工作過程,沒有必要),學完一門語言後你就會進步很多,到時候你思維打通了,你才會明白今天我所說的。至於學什麼語言前面我已經說過不能推薦,一定要自己去摸索。

下一步是計算機網路基礎

當你能夠用一門語言去編程的時候你就對計算機如何工作的有很深的認知了,計算機上跑的任何軟體和程序(怎麼跑的,為什麼能跑?這些潛在的疑問在學的過程中會迎刃而解,此刻記住你的問題邊界,不要過分拓展疑問邊疆),一些安裝包什麼的,你都明白那是幹啥的。

接著對於所有軟體程序中的一個集合「網路協議」也就很容易學習了。

網路協議本質是程序,他的功能是讓計算機之間能夠通信,加一點,安全通信。

再上一部分的計算機工作原理基礎上你學習完成後,那麼這一部分的學習很輕鬆。但是絕對重要,因為黑客的影響力主要來自互聯網,沒有廣泛相互聯繫的互聯網,黑客也只能對面前的計算機進行操控,而不能遠程去控制和攻擊,學習計算機網路會讓你明白黑客攻擊當中的很多遠程的方式,並且黑客的多數偉大和神秘也是互聯網賦予的。

具體的協議有哪些,該怎麼學,對於一個小白來講沒有說的必要,小白的任務是前面的那個先完成。

最後是黑客基礎

黑客基礎是給學習完以上兩大基礎後依然不知道如何入侵和進行黑客工程的人準備的,一般有黑客天賦的人學完以上兩部分,對於如何利用計算機通過網路去進入其他計算機的系統,竊取信息等都會不學自通。

假如你還尚未打通,那麼就要學學黑客的基礎,這方面有大量前輩們所寫的書,對於前輩經驗們的系統性的梳理去認知也很快會讓你進入一個不一樣的思維模式去。

禁忌:不要在龐雜繁多混亂堆砌的概念上停留過多時間

上面很多答者都列出了一大籮筐的概念,我倒認為那些概念實在沒有必要拿出來嚇唬人,讓一個從來沒有學過元素周期表的人對各種物體的化學元素進行細緻的分類豈不是為難別人?讓一個還沒有下過水嘗試過身體接觸水的感受的人就去對各種游泳技法進行細緻的分類豈不是無用之談?

什麼php伺服器、asp伺服器、iis、黑貓白貓、伺服器環境、滲透、入侵、破解、HTML、java、虛擬主機、雲主機、IP追蹤、木馬編寫、病毒編寫、鍵盤記錄、釣魚網站、域名、DNS、埠掃描、DOS指令...............

如此繁複的概念殊不知都是在計算機工作原理和計算機網路基礎之上的概念,沒有關於一棟大廈地基的認識便要說什麼頂樓設計豈不是空中樓閣?懸在空中腳下無支撐物怎能不搖擺四晃?

所以我要在這裡敬勸閱者,莫要對那些看起來很高逼格的概念作過多的疑問,當你明白了計算機是怎麼跑起來的時候,這些概念的逼格無論多麼高,他的原理無非就是那麼些。

答題主第二個問題:需要什麼資金條件

如果你在學習的過程中不需要去培訓機構,不去請教老師,並且自己去找教程,找書籍,那麼資金不需要。

但是如果你需要減少自己摸索前行期間的痛苦和時間,那麼你就需要去請求外部世界的人的幫助,比如去個培訓機構,去請教個老師,去找別人為你整理好了的教程。這種情況需要一定資金支持。依次來看,培訓機構略貴,周期長,效果對於自律、自學能力差的人比較好;請教一些老師,看緣分;去找別人為你整理的教程,幾十幾百不等的支出。

答題主第三個問題:需要多久?

回答這個問題不得不又回到開篇,人是處在不同高度的,時間是沒有標準答案的。但是這個問題實在是格外普遍的問題,人有急於求成之心,可以諒解,畢竟人生有限,不能要學個百年才能學會。

但是你如果要說個具體確切的時間尺度又不太靠譜,因為還是那句話人的高度不同。

但是說個大概,不走極端,就是天才和蠢才,看個一般,拿出時間來倒也有個可能性。據估測,在這些條件下:零基礎、每周能學5天,每天能學5小時,一月內死鑽一門語言,可有整體的認識。到這個程度也就是對計算機工作原理的基本解決。

然後計算機網路,這個是更快的學習。不出一月應該可以解決。總計來算,兩個月到三個月時間對對各種攻擊入侵原理能夠掌握,進一步深入,對於黑客技術實操、軟體開發、網路架設、網路故障排查等都應該可以勝任。

但是記住一條:精湛和粗略知其所以然之間有一段大大的距離,它需要天賦和時間等各種因素去完成粗略到精湛的過渡。

迷茫,前面我提到了多次,可以見得答主曾經也頗受迷茫的蹂躪,因為一個從沒被大花蛇嚇過的人也不會逢人便說蛇有多可怕,不得不多次提出來讓別人加以警惕和防範,實在是因為答主深知迷茫的困境對於一個想要開始出發的人帶來的巨大幹擾,有時候挫敗一個人都不成問題。

但是如果你看到了前面的風景是那麼的美,因為迷茫不知怎樣到達便掉頭就走,然後還安慰自己那不適合自己,豈不是自欺欺人,如果每次遇見的風景都被你這樣給自欺欺人的放棄,你的有限人生豈不就是一個放棄縱橫的人生?試問:這樣灰溜溜的人生可值得一過


不需要什麼資金的,上手的話,也很快。

黑客就是吹得響,其實入門的門檻是非常低的。

強行裝逼的話,你去樓上小姐姐家裡修個電腦在路由器界面輸個admin,都可以算黑客了。

所以不要把黑客當成什麼神奇無比的東西去學,就是it技術幾個分支罷了。

學起來和普通技術本質上沒差。就是基礎知識儲備不大一樣罷了。

這種技能因為天生的枯燥,所以學起來最重要的是保持激情和樂趣。

因此,你一定要選一些自己想要做的,好玩的項目開始做。

比如最早我學破解的時候,自己挑的項目是《曹操傳》外掛dll。

在軒轅春秋論壇上看別人的分析,以及自己讀彙編代碼,

通過最簡單的地址跳轉做外掛功能。

有不懂的就去看雪上轉轉。

基本上照著別人的抄抄弄弄大致上也能琢磨出一點門道了。

這就相當有趣了呀,也非常簡單,學起來就事半功倍了。

興趣才是最好的老師。

我非常反對動不動就拿出一大堆書的人。

可能這種方法適合你,但是一定不適合群眾。

乾貨也許可以吃飽肚子,

但是只有天賦異稟的人才吃得下去。

一般人只能喝濕的。


黑客攻防入門(一)緩衝區(堆棧)溢出

1. 概說

緩衝區溢出又叫堆棧溢出(還有許許多的稱呼),這是計算機程序難以避免的漏洞,除非有新的設計方式將程序運行的堆棧設計取代。

溢出的目的是重寫程序的運行堆棧,使調用返回堆棧包含一個跳向預設好的程序的程序(代碼),這個程序通常稱為shellcode,通過這個shellcode就能獲得如期的shell,更有可能獲得root。

2. 緩衝區溢出的原理

計算機中每一個運行中的程序都有相同的內存布局(邏輯布局),Linux/Unix的程序布局大體如下:

存儲器布局

緩衝區溢出就是利用這個布局中的堆棧段來作文章的。

堆: 通常用來作為動態存儲分配,如C標準庫函數 malloc 就是在堆里申請內存空間的

棧: 自動變數和每次函數調用時所需保存的信息存放的地方。棧是自頂向下生長的,棧還有一個特別的地方,就是先進後出,往棧放數據就好比往洞里塞東西,當拿東西的時候只能先把最外面的拿走。

其中,最重要的一點: 棧中保存了函數調用時的返回地址。

緩衝區溢出的目的就是要將棧中保存的返回地址篡改成成溢出的數據,這樣就間接修改了函數的返回地址,當函數返回時,就能跳轉到預設的地址中,執行植入的代碼。

3. 緩衝區溢出需要掌握的知識

程序運行時的堆棧布局,請看上圖。

C語言基礎知識,這個可以看C語言相關的入門書籍,如《The C Programming language》。

彙編基礎,可以看入門的書籍,如《Assembly.Language.Step-by-Step》,下面簡單介紹一下:

寄存器: 通用寄存器有 AX, BX, CX,DX, DI, SI, BP, SP 共有8個,x86_64bit的cpu新增了八個通用寄存器,分別是r8,r9…r15, 8-15共8個。

非通用寄存器,即專用寄存器,最重要的是IP, 它總是指向cpu要執行的下一條指令的地址。這個很重要,緩衝區溢出的目的就是要修改ip的值。

通常寄存器名稱前都有修飾符,主要用來區分寄存器所代表的值的位數,32位的寄存器前面有E,如EAX、EBX等,64位的寄存器前面則有R,如RAX,RBX等。

BP和SP雖然是通用寄存器,但它專用為棧的基址(BP)指向棧的底部,SP指向棧的頂部。

64位CPU因為通用寄存器比32位的多,所以函數的參數分別用di,si,dx,cx,r8,r9去保存。

AX寄存器通常用來保存函數返回值。

通用寄存器

通用寄存器通用方法

4. 見證緩衝區溢出

4.1 測試代碼

通過下面的一個小程序,我們一起來見證一下緩衝區溢出。

#include &#include &#define BUFSIZE 10void foo(){ printf("Exploit
");
}int main(int argc, char *argv[]){ char buf[BUFSIZE]; strcpy(buf, argv[1]); printf("Buf: %s
", buf); return 0;
}

對照上圖的內存布局圖,上面這段小程序中,argv字元串數組就是命令行參數,環境變數(environ)默認不需要顯式寫出來。

接下來,通過下面的命令,我們將代碼編譯成二進位可執行文件。

gcc -g -o stack1 stack1.c

gcc帶-g參數方便gdb調試。

4.2 運行測試

我們定義了buf的大小是10,下圖是測試向buf複製10位元組、20位元組、24位元組、23位元組的情況:

溢出實驗

上圖中,我用centos 64bit系統測試,當向buf傳入24位元組時,程序產生了段錯誤(segmentation fault)。

那麼這有問題來了:

  1. buf的定義是 10 位元組,為什麼可以傳入大於10位元組的數據而不出錯?

  2. 當存入24位元組時,程序為什麼出現段錯誤?

  3. 這和緩衝區溢出有關係嗎?

先解釋第3個問題,上圖所參生的錯誤就是緩衝區溢出造成,我們成功的製造了一次緩衝區溢出案例。

4.3 緩衝區的空間估算

至於第一個問題,是因為所有內存存放數據都遵循約定的方式:存儲的數據必需是4、8、16、32和64的倍數,這種方式叫內存對齊。

為什麼要對齊呢?

這和cpu存取數據的效率有關,數據對齊方便存取,就和東西擺放得整齊方便尋找一個道理。

所以,雖然定義了buf的大小是10,但向其填充大於10的數據,只要在一定範圍內,容忍度還是有的。

那麼,為什麼它的容忍度不是30,不是20,而偏偏是24呢?因為24就是數據對齊的邊界,本來是可以容忍24個位元組的,但是符串的結尾有一個空字元』【/0】』,例子中存入24個A時,實際上存入了25個字元,超過了24的邊界,越界了,所以就出問題啦!

文字的說服力不如圖片,下面請看圖:

反彙編main

上圖是main函數的反彙編代碼,我們截取一小部分來看。

紅色框部分就是當前棧空間和main的參數傳遞。

mov %rsp, %rbp 設置當前棧指針地址為基址

sub %0x20, %rsp 新的棧指針

上面兩條語句作用是將一段新的內存空間設置為新的棧段,棧的空間大小是0x20(32位元組)

mov %edi, -0x14(%rbp) 參數1,距離棧的基址只有0x14(20位元組)

mov %rsi, -0x20(%rbp) 參數2

參數1是main的argc, 參數2就是argv字元串數組(其中argv[0]是/root/stack/stack1,argv[1]是我們將要存入buf的數據),我們來驗證一下是否正確:

參數傳入

上圖我們啟動stack1程序,用perl列印20個A作為參數傳遞,可以看到%rdi = 2, 是argc, %rsi 則是一個雙重指針,正符合*argv[]的定義,我們再看看這個指針的數據是什麼?

參數數據

上圖顯示的正是我們所預期的。

在這裡,也可以複習一下什麼是雙重指針,如**ptr, arry[][]諸類的定義,它們所指的數據,都要經過兩層間接才能接觸到。同理如果是***ptr這些定義,則要經過三層間接才找到最終數據。

言歸正轉,說說buf為什麼只能容納24個位元組

buf區域

  1. 對照上圖可知,buf的地址在當前的棧空間內,距離棧基RBP只有0x10(16位元組),即是說buf至少可以容納16位元組,這是內存數據對齊到8,buf定義是10byte,為了對齊,需要分配16byte。

    2.下面再看rbp上面的內容。

  2. 基棧之上

圖中可以看到在rbp上的更高的地址里有八個位元組多餘的,這也是為了對齊而分配的。

這個數字和前面16位元組,加起來就剛好是24位元組,注意:這裡不同的計算機體系、系統會有不同結果。

而0x7fffffffe328里放的數據就是main函數返回地址(0x00007ffff7a3ab15)。

這裡的數據讀法又涉及不同的計算機體系,有大端小端(Big-endian/Little-endian)之分,區分大小端的方法看上圖的數據存放,只要開頭的是數據高位,則這個計算機內存數據存儲方式就是大端(高位元組儲存在低地址),因為地址的顯示方式是從低往高顯示,所以大端就是開始的數據是大的意思。

4.4 main函數返回地址

我們再看下面的圖,這是main函數執行時的棧數據

main的棧

上圖紅色框部分就是main函數保存在棧的返回地址,當main函數執行完畢後,CPU就會跳到這個地址里執行指令。

那麼這個地址(0x7ffff7a3ab15) 保存在哪裡呢?

根據程序內存布局,可以肯定,它是保存在棧段里!

下面我們先看看當前的棧幀:

當前棧

紅色框里指示了棧的空間位置,我們再敲入指令看看這個棧幀包含了什麼數據

對照紅色框里的數據,並沒有0x7ffff7a3ab15,即是說main的返回地址並沒有保存在當前棧幀空間里,那麼是不是我們的肯定過於堅定了呢?

非也!我們再看

0x7ffff7a3ab15原來躲在了更高的地址里,這個也在棧段範圍內,是屬於調於函數的棧幀內。

bp和sp代表的是當前的棧幀空間,程序的運行周期里會利用不同的棧空間,實現函數的調用,棧的分段就像電影的幀,所以稱為棧幀。

4.5 緩衝區溢出

上述一系列說明,不難看出,我們最終的目的就是在buf里溢出數據去覆蓋main的返回地址。

上面分析,我們只要向buf寫入大於24位元組的數據就可以到達到保存main返回地址的空間,測試也證明了這一點。

當寫入大於24位元組後,程序為什麼會出現Segmentation fault (core dumped)這錯誤呢?

這是因為,我們覆蓋main地址的數據並不是一個main有效的返回地址。

為了達到溢出的真正目的(運行shell,取得root許可權),我們需要精心構建溢出數據。

首先我們要學會構建shellcode,那麼shellcode是如何構建的呢?請看下回分解!

推薦實驗學習:合天網安實驗室


基礎:
如何去學習
·要有學習目標
·要有學習計劃
·要有正確的心態
·有很強的自學能力
學習目標
·1.明確自己的發展方向(你現在或者將來要做什麼,程序員?安全專家?網路黑客等)
·2.自己目前的水平和能力有多高
·能簡單操作windows 2003
·能簡單配置windows 2003的一些服務
·能熟練的配置windows 2003的各種服務
·能熟練配置windows 2003和各種網路設備聯網
·能簡單操作Linux,Unix,Hp-unix, Solaris中的一種或者多種操作系統
·能配置cicso,huawei,3com,朗迅等網路設備
·會簡單編寫C/C++,Delphi,Java,PB,VB,Perl
·能簡單編寫Asp,Php,Cgi和script,shell腳本
·3.必須學會不相信態度,尊重各種各樣的能力
·不要為那些裝模做樣的人浪費時間
·尊重別人的能力,
·會享受提高自己能力的樂趣.
·在知道了自己的水平和能力之後就要開始自己的目標了
·--------安全專家
·--------黑客
·--------高級程序員
·黑客是建設網路,不是破壞網路, 破壞者是駭客;
·黑客有入侵的技術,但是他們是維護網路的,所以和安全專家是差不多的;
·因為懂得如何入侵才知道如何維護
·因為懂得如何維護才更要了解如何入侵
·這是 黑客與安全專家的聯繫
·但,他們都是在會編程的基礎上成長的!
·下面我們開始我們的學習計劃!
學習計劃
有了學習計劃才能更有效的學習
安全學習計劃
不奢求對win2000有多麼精通,我們也不講解win2000如何應用,如何精通,我們的起步是windows 2003
erver,這是我們培訓的最低標準,你對英語有一定的了解也是必不可少最基礎
·a.會裝windows 2003,知道在安裝的時候有兩種分區格式,NTFS與FAT32 及他們的區別,知道windows 2003可以在安裝的時

候分區,格式化硬碟, 可以定製安裝,可以定製自己需要安裝的一些組件,如果有網路適配器,可以直接加入域中 學習

點:NTFS和FAT32分區的不同 各個組件的作用
域的定義
·b.知道如何開,關機 知道註銷的用處
·c.知道windows 2003下面各主要目錄的作用 Documents and Settings,WINNT,system32 Program Files
·d.知道管理工具裡面各個組件的定義
·e.學會應用命令提示符cmd(dos)
·f.知道計算機管理裡面的各個選項的不通
·g.知道windows 2003強大的網路管理功能
·h.能非常熟練的操作windows 2003
·i.知道IP地址,子網掩碼,網關和MAC的區別
進階
·A.配置IIS,知道各個選項的作用
·B.配置DNS,DHCP
·C.配置主控制域,輔助域
·D.配置DFS
·E.配置路由和遠程訪問
·F.配置安全策略IPSEC
·G.配置service(服務)
·H.配置磁碟管理,磁碟分額
·i. 配置RAID(0,1,0+1,5)
·J.路由器的安裝與簡單配置
·K.交換機的安裝與簡單配置
·L.常見的VPN,VLAN,NAT配置
·M.配置常見的企業級防火牆
·N.配置常見的企業級防病毒軟體
高級
·之前我們學到的是任何一個想成為網路安全專家和黑客基本知識中的一部分
·你作到了嗎??
·如果你做到了,足以找到一份很不錯的工作!
配置負載均衡
·配置WIN2000+IIS+EXCHANGE+MSSQL+SERVER-U+負載均衡+ASP(PHP.CGI)+CHECK PIONT(ISASERVER) ·
·配置三層交換網路 ·
·配置各種複雜的網路環境
·能策劃一個非常完整的網路方案 ·
·能獨自組建一個大型的企業級網路 ·
·能迅速解決網路中出現的各種疑難問題
結束


如何成為一名黑客


我是怎麼學黑客的。與大家分享。

  由於在黑客界,要學習的東西相當多,也相當雜,特別是剛入門的菜鳥朋友,在初

次接觸黑客時,可能會到處碰壁,苦於找不到好的黑客學習方法而最終放棄這門技術.

在這裡,我提供一個行之有效的也非常適合菜鳥朋友的黑客學習方法-----分類學習法

.經過多數人的的實踐證明,發現該方法效果明顯,能使你的黑客技術突飛猛進,所以我

在這裡共享自己的學習方法.

所謂分類學習法,就是把黑客領域劃分成幾個不同層次的知識塊,然後規劃好時

間,專門對開某個知識點進行學習訓練.也就是分隔成一部分一部學習.對於剛入門的

黑客愛好者,建議按以下的分類方法進行學習,當然,技術的分類可以根據自己的興趣

和愛好來劃分

我這裡簡單的收集了入門朋友要學習的黑客內容.

1.黑客術語基礎(學習一個星期):主要把一些常用黑客術語搞清楚,比如什麼叫webshe

ll什麼叫注入,什麼叫旁註,還有一些常用工具的功能,比如nc,sc等等.

2.灰鴿子配置與使用(學習二天):通過學習要達到正確配置灰鴿子並能正常上線.對它

的功能進行操作訓練.

3.網頁木馬製作與傳播(一個星期)

4.網站入侵(差不多一個月)

5.木馬特徵碼修改(四五天)

當然知識塊的劃分與學習時間,可根據自己身情況進行適當選擇.

下面我把分類學習法過程,技巧,並結合自己在實際學習中以實例形式講解這種學

習方法的具體步驟.

分類學習法的主線:

收集資料----看動畫教程與技術文章----實戰訓練----回過頭再看教程與文章----

自己製作動畫教程與寫文章.

下面對各個環節進行講解:

一.收集資料

這個環節,主要目的是收集到盡量多的某類知識塊的相關動畫教程和技術文章.收集方

法主要有兩種方法:第一種,利用百度,google,搜索.比如我想找網站入侵相關教程,可

以在百度google中輸入關鍵字"網站入侵+空格+教程",這樣就可以收集大量教程和文

章,可以靈活變化關鍵字,比如輸入腳本入侵+空格+動畫,ASP入侵等等,可以搜到大量

網站入侵方面的資料.統統把它們收集整理起來.第二種,利用大型黑客網站的站內搜

索功能.這種搜索比百度和google命中率要高的多.比如你想找網頁木馬相關教程,你

可以到各大黑客網站.在站內搜索內輸入關鍵字網頁木馬.

網頁木馬製作.就會找到很多動畫教程和技術文章.這裡菜鳥朋友可以直接鎖定該欄目,把每一個專題動畫研究清楚.

二.看動畫教程與技術文章

在看之前,你要準備一個筆記本,專門用來記錄在看動畫或文章時,不明白的或疑惑

的地方,在看的過程中,你可能有些地方看不明白,沒關係,把不懂的地方記錄下來,當

然看動畫

與文章時要注意以下幾點:

1.要深刻理解動畫教程整體思路.

2.注意觀察動畫的每個操作細節,一有不清楚的就要馬上記錄.

那如何解決記錄著不懂的地方呢?通過以下幾種方法解決.

1.論壇提問:把你遇到的不明白地方描述清楚,發到論壇上,當然你還可以到其它的黑客論壇提問.

2.向黑客群或朋友請教,這裡你要多加幾個黑客技術群,多交幾個要好的黑客技術愛好

者,然後,把你的疑難問題拿出來與大家一起討論,一般也能解決.

3.反覆看動畫教程,技術文章,有時候,我們看一遍可能不能理解,但反覆的看,反覆

的思考,往往都能解開動畫或文章中的疑難問題。

4.用百度,google搜索相關內容,同樣利用關鍵字進行搜索相關內容。這種方法還是

不錯的,在你搞懂了你的疑難問題的同時也搞懂了N個其它相關問題。

三.實戰訓練

這一階段也是最重要的,剛開始你可以按照動畫步驟來操作,很多疑難問題在實

際操作才能真正體會到,同時在操作中也會得到解決。當然你在操作過程中遇到困難

還可以回過頭再看動畫,並一直反覆這個過程。慢慢的就會變成自己的技術。

四.回過頭再看動畫與文章

在操作過程中,遇到的疑難問題,然後我們帶著這些問題回過頭來看動畫,相信

理解的更深刻了。目的也更明確了。在這個過程中特別要注意在你操作的每個細節與

動畫中的細節作對比,發現存在問題的地方及時糾正。

五.自己製作動畫或寫文章

經過一段時間的學習,你可能對某個知識塊也有較深的理解,也有自己的見解,

所謂熟能生巧,熟練了自然而然也有個人的心得體會。這時候,你可以把你的新的入

侵思路和技巧做成動畫或寫成文章呀,這不但提高了你的思維能力同時也鍛煉了你的

實際操作水平。這也是提高黑客技術水平的一個重要方法。

所以我在這裡建議:若你有新的入侵思路或新的入侵技巧,不要埋在心裡,做成動

畫。你會在不知不覺中進步。

以上就是我個人認為效果不錯的黑客學習方法,當然還結合了以下四個方面的技巧。

一.做黑客筆記

1.記錄實戰入侵過程中的疑惑問題

2.在看別人動畫或文章時,不明白或不理解的地方也記錄下來。

3.同時,在學習過程中,遇到的入侵小技巧,入侵常用命令,優秀黑客工具,經典方

法也一一記錄下來。以後入侵或遇到難題時,隨時都可以拿來查看。

二.收集整理優秀文章,動畫教程,黑客工具。

1.分類整理優秀的技術文章。

2.收集整理經典的有技術含量的動畫教程

3.收集經典的優秀的黑客工具,大家都應該有自己的黑客工具箱,並分類整理存放好。

收集整理的目的是方便以後的學習。

三.在看別人動畫或文章時應該思考的問題。

1.領會動畫整體思路。

2.記下不明的或疑惑的細節。

3.評價別人的動畫,有何缺點,有何優點,學會分析和思考。同時要敢於提出自己的

想法,如何才能進一步完美他的入侵方法。

四.勤做動畫

這裡做動畫的好處,我不多說了,只要你做多了,自然而然就會體會到其中的好處!

只要具備以下條件的,都可以做成動畫,我想,也是你掌握技術的最好方法,所以這

也是行之有效的提高黑客技術的好方法。

1.看到好的文章就應做成動畫:

2.好的工具,經典工具的使用也做成動畫:

3.入侵總結:

之前我看到很多人做過木馬傳播的方法,也看過相關木馬傳播的文章,不過都比較零

散,後來我又參考了相關雜誌後就製作了木馬傳播的綜合教程----木馬傳播終級大套

餐。

4.新思路新技巧:

如果你有好的入侵思路或方法,也可做個動畫.

5.拓展,延伸別人的動畫:

主要是看了別人做的入侵動畫,給你帶來的新的入侵方法和技巧.

6.改善完美別人的動畫:

從以上可以看出,我們要做的教程,盡量不要重複別人的教程,要有自己的創意

和想法。所以,大家可以參考以上方法進行做動畫,同時在看別人教程時,不要一味

的照抄照搬,要有自己的見解,要學會思考,要善於總結,在看別人教程時還要不停

的反問自己,能進一步入侵嗎?他的這種入侵方法有什麼缺點嗎?能進一步完善他的

入侵方法嗎?只要你做到以上幾點,我相信,你的技術也會突飛猛進的。

在這裡,提醒那些初次接觸黑客技術的菜鳥朋友,不要及於求成,端正好自己的

學習態度,規劃好自己的學習計劃,尋找適合自己的學習方法,多思考,多實踐操作

,再加上一個好的學習環境,我敢說,你的成功不再遙遠!


還是先表態

「老大,什麼是黑客啊?」

「比如套近乎認識對方員工,然後通過社工得到這個員工的慣用密碼,冒充這個員工下源碼把對方源碼搞到手,熟讀對方代碼知道對方使用的各種框架和插件版本,然後去找對應版本已知的漏洞,看看能不能把對方的伺服器日下來」

「那那群整天掃埠跑字典,『一鍵入侵XX』的是什麼?」

「那是傻逼」

找幾台電腦,弄幾個路由器,你就可以開始了解網路運維的基本功了

貴點,要逼格,自己搞個ThinkPad知乎用戶:為什麼工作的人一般都用 ThinkPad?

伺服器機櫃,或者500塊錢以上機箱裝一套擴展性很好的機子,8盤位,光碟機位硬碟快倉

路由器弄個入門企業級的

沒錢,那就自己的屌絲破電腦,不夠就再配一台771的洋垃圾,路由器淘個N手思科華為TPDL飛魚星都能湊合

什麼,你問什麼是洋垃圾,你不會裝電腦?

那等你能看著診斷卡上POST代碼卡在C1的時候罵娘「一堆他喵的爛內存」再說黑客吧

是的,就是這麼殘酷,搞IT的人,主觀能動性和獨立解決問題的能力是相當重要的

不知道怎麼解決不可怕,不知道怎麼尋求解決才是真的無藥可救

熟悉各種網站不同的專業領域,知道該去哪裡找答案,去哪裡提問

學會合理的切分關鍵詞,充分利用搜索引擎,甚至熟悉每個搜索引擎的不同尿性

利用搜索引擎尋找資料和文檔,以及他人完全相同的悲慘日記,比如《我是如何解決XXXX報出xxx錯誤的》

直到你玩遍了這對破爛上能玩的一切,儘可能多的一切的一切

對電腦和網路有一個自己感性的,完整的理解,每個部件都是幹嘛的,為什麼必須要有它

你才真正具備成為一個黑客的基礎——Geek科技宅級別的知識儲備

等到你能用一堆破爛組建起一個能區域網共享小電影和遊戲的微型區域網,你基本上才真正走入網路工程的世界

為你的「伺服器」裝一套Linux的系統,然後在上面架個網站吧,LAMP,LNMP,都自己自娛自樂玩一下

裝個WordPress,或者自己開個DZ論壇

玩夠了你會發現,伺服器也沒什麼了不起的,Linux也並不是多麼複雜多麼高大上的一個東西,甚至用yum或者apt-get裝個軟體比Windows還要簡單

現在你可能已經懂了Linux的基本使用,懂了IP監聽、80埠、HTTP請求這些東西了,也明白資料庫是個什麼玩意了,庫表列行基本概念也有了

然後你可以大膽的嘗試一下,自己魔改這些PHP的代碼,踏足WEB前端三大件【HTML+CSS+JS】的領域,或者了解一下PHP的編寫

也可以嘗試一下把這個伺服器連到廣域網上,給你的朋友看【大部分運營商都封家用寬頻的80埠,你可以考慮換個埠試試或者只在當地同城同運營商的環境下展示】,隨後了解一下域名、DNS之類的東西

也可以去調戲一下伺服器上的資料庫,嘗試用SQL語句實現一些自己的目的,把最基礎的增刪改查了解一下,如何花式用WHERE語句,甚至使用各種複雜語句組合嵌套

你發現自己沒法架FTP給朋友分享小H片了?仔細排查,你發現了一個叫NAT設置的東西,於是你又開始研究路由器里的設置,熟悉各種區域網的基礎概念,WAN口、LAN口、VLAN、WLAN、RJ-45介面的十百千速率、QOS限速,甚至你會無聊到嘗試一下通過調整無線路由器的發射參數來提高自己在廁所里看電影的流暢度

直到你可以自己架一套網站和資料庫,然後自己把它黑掉,由於伺服器就在眼前,你可以完整的從攻防的兩個角度,測試你自己的矛和盾,觀察它們之間的交鋒,評估它們的效用

你是不是覺得自己學了很多其他細分專業的工作,比如運維或者前後端甚至網路通信領域?

很不幸,黑客就是這樣,需要了解一切,才能把一切玩弄於鼓掌之中

這也是黑客大神一定是Geek,必須有旺盛的好奇心和強大的知識儲備的原因

解決的問題總會帶來更多的問題,好奇心是殺不死的,也是永無止盡的

而這會讓你變得更強

事實上,阻止你成長的不是未知,而是你的創新能力,獨立解決問題的能力

你見過通過CPU風扇的轉速判斷系統是不是能正常開機的嗎?

要想成為一名有能力的黑客

靈活的,富有創意的,甚至另闢蹊徑驚為天人令人拍案叫絕的解決問題是必需品

腦子正常的人是黑不進為腦子正常的人設計的系統體系里的

而支撐他能劍走偏鋒出奇制勝的法寶,就是龐大的知識儲備,對這些系統的深刻理解

他 了 解 這 套 系 統 的 每 個 細 節,所以才可以為所欲為為所欲為

終有一天,你只要看見一套系統,你就知道,它是怎麼做出來的,你甚至能腦補出具體的代碼實現,設備拓撲,架設過程

當然,你也知道,如果是菜雞做這種東西會有怎樣的漏洞和弱點,因為你當年就是那個菜雞

現在對於基礎的入侵,你可能不需要任何教程和思路了,因為你知道原理,也就知曉了一切

玩得開心點,以及,別做惡

也許到了那一天,你早就沒什麼興趣去黑掉什麼網站,在一群不懂技術的麻瓜頭上作威作福了

創造和改變不是義務,是宿命,去做點真正牛逼大了的事情和東西吧


先從基礎做簡單的開始,比如,趁別人登錄賬號的時候,躲在他身後偷偷記住他的登錄密碼


其實很多百度知道的答案都說什麼學C,學彙編的。其實不然,畢竟網路安全是一個很大的領域。

首先你要明確你是想搞底層?還是Web?還是移動端?

找到一個有興趣的領域,鑽進去,三個月就能入門,當然這裡說的只是入門,略有小成,但是小成跟大成又是天壤之別,搞安全一口吃不成胖子,學到後來你覺得你的基礎知識越薄弱,這個時候需要惡補一些基礎知識了。如:各種協議,編程代碼等。

一定要學一門編程語言!

一定要學一門編程語言!

一定要學一門編程語言!

重要的事情說三遍!!

因為漏洞的產生都是代碼的問題,學一門語言你就能深入了解背後的原理,我上大一的時候給社團同學講Web的一些漏洞,Xss、注入等等,聽的他們一頭霧水。可到了大二,同學們已經有了開發能力,可以開發網站了,這個時候回過頭來看,Xss、注入原來就是這麼個玩意兒。一下子就通了。這個通很重要,就像馬桶被堵住,一疏通,立馬流暢無比!

看回答有說做腳本小子很容易的,對!做腳本小子很容易,難的是做一個牛逼的腳本小子。

如何牛逼?還是黑哥那句話:整就牛!

來自一個默默在整的學生狗


我不是黑客,我只能說我曾經是一名「愛好者」

一切指引我的是興趣。我小時候一直對周易,魔術等那種看起來就萬分神秘的事情著迷。所以,很自然而然,黑客這個詞就進入了我的視野。並且讓我越發好奇。

最開始是在搜索引擎上搜索「黑客聯盟」「紅客聯盟」而看到了那扇神秘的大門漏出來的微光。我

那時候應該是13~14歲,那會的目的很簡單。會一些別人看起來就比較「酷」的東西。就像在那個年齡喜歡聽周杰倫的「忍者」一樣。

從搜索引擎上知道了 黑白網路 小鳳居 小榕論壇基本上這一輩子都不會忘記的網址。後來買雜誌,黑客防線 黑客X檔案但凡跟黑客沾邊兒的書,我都買,那會在外地上學,沒有電腦。偷偷摸摸的帶書去網吧。還不敢讓網吧老闆看到。

從那會開始學著用冰河 破解軟體還原卡 做網頁木馬 盜QQ。我剛接觸那會最多入侵方式就是IPC空連.時間久的都有點記不住那曾經熟悉的的命令了,後來趕上RPC漏洞爆發 3389利用 什麼的,也沒做過什麼破壞。唯一記得的就是,日了一個網吧的伺服器。偷過幾個QQ號


如何成為一名黑客

說明 這篇文章是對 ESR 的經典文章 How to become a hacker ? 的最新修訂翻譯,參照了一些國內的翻譯版本,某種意義上來講,這不僅僅是一篇黑客入門的讀物,也是很不錯的編程入門指導。

閱讀全文:如何成為一名黑客?

---

更新於 2016 年 10 月 1號;

自己搭一小論壇,寫一點編程相關的東西: Suip 碎片論壇


低調、多修鍊,多交流.

推薦個安全社區

HackerTop - Index page


看了大部分回答,感覺都是教要麼成為駭客,要麼是網路安全專家,並不是真正意義上的黑客。黑客除了技術全面更有無限的創造力,擁有超凡的毅力和技術,有不斷進取和解決問題的熱情。因為有黑客才有了如今的internet的發展,才有了unix系統的發展,才有了Google,有了蘋果,有了微軟。那麼想成為黑客入門,最基本的技術層面,至少要會c,c++,python,perl,java,lisp中的兩三個,最好都精通。然後孜孜不倦讀別人的開源代碼,自己寫開源代碼,同時獲取一個源碼開放的unix系統,然後盡情的去讀它,去修改它,同時還要精通web開發,精通html標記語言,會構架網路,資料庫甚至虛擬技術。現在應該基本入門,有個幾年得心應手了,可以學習更多東西,把英語數學學好,要想跟真正黑客交流只能去國外一些論壇交流。黑客是一種精神,需要創造需要不斷學習,除了技術上的絕對優勢,更應該是改變互聯網,突破閉源的限制,讓人們的互聯網生活更美好的一幫人。


黑客從何學起的問題,我想先聊一下安全的就業前景

信息安全專業學生畢業後可在政府機關、國家安全部門、銀行、金融、證券、通信領域從事各類信息安全系統、計算機安全系統的研究、設計、開發和管理工作,也可在IT領域從事計算機應用工作

如:滲透測試,安全研究員,安全售前,系統管理員 網路管理員,安全項目經理,安全運維工程師,安全銷售經理,信息安全工程師,網路安全工程師,安全開發人員

安全比較缺人,現在自上而下的加強安全體系建設,人手肯定不夠用

還是要找到自己的興趣點,人都有自己的價值觀,肯定對於每個方向興趣都不同,所以對於想從事底層漏洞,逆向這一類的可以去看雪交流,學習web安全的話最好寫兩年web程序再搞,容易上手。可以先從實戰上感性的理解安全,比如破解個小程序,挖個小漏洞,然後再去學理論!

初學網路安全的時候吃了很多苦,後來我偶爾幫人制定學習計劃和訓練計劃,是收錢的。但我收錢的目的不是為了賺錢。兩份詳細計劃需要花費很多精力,收那麼點錢,從早忙到晚也發不了財,這是大實話。我收一點錢,目的是為了限制諮詢量,因為如果要計劃的人太多,我就別干別的了,光忙這個也忙不完。

相信喜歡用到黑客這兩個詞的兄弟更多是喜歡這層江湖色彩吧,喜歡那種刀光劍影的攻防生涯!


好的黑客必然是一個好的程序員。


從入門 到 入獄


推薦閱讀:

信息安全領域有哪些必讀的聖經?
有哪些值得推薦的有關信息安全的網站?
技術水平達到什麼程度才敢稱自己是黑客?
想成為網路安全技術愛好者(可能是黑客)的話,需要看什麼書?
如何評價諜影重重5當中的黑客技術?

TAG:黑客Hacker |