如何讓本身成爲一名黑客高手全集

 

On  the road! 什麼是黑客在日本出版的《新黑客字典》中,對黑客是這樣定義的:「喜歡探索軟件程序並從中增加了其我的才幹的人。他們不像絕大多數電腦使用者那樣,只規規矩矩地瞭解別人指定的狹小的一部分知識」。在Open Source(開放源代碼)旗手ERIC。S。RAYMOND的《The New Hacker"s Dictionary》一文中,對「Hacker」的解釋包括了下面幾類人:javascript

 

一:那些喜歡發掘程序系統內部實現細節的人,在這種發掘過程當中,他們延伸並擴展着本身的能力,這和只知足於學習有限知識的人是大相徑庭的java

二:那些狂熱地沉浸在編程樂趣的人,並且,他們不只僅是在理論上談及編程python

三:一個高超的程序設計專家linux

四:一個喜歡智力挑戰的,並創造性地突破各類環境限制的人web

五:一個惡意的愛管閒事的傢伙,他試圖在網絡上逡巡溜達的同時發現一些敏感的信息對最後一類人,ERIC。S。RAYMOND賦予其更恰當的一個稱謂,那就是「Crasql

cker」,有就是咱們常說的「駭客」,指那些樂於破壞的傢伙。當他們在給這個社會製造着麻煩和噱頭的同時,就只能被冠以「駭客」之名。正是由於「駭客」的存在,純正而古老的黑客精神才越來越被人曲解,但在真正崇尚黑客精神的一類人眼裏,「駭客」與「黑客」是如此的涇渭分明,不可混淆!更有甚者,有些黑客們說:在黑客界,鬥爭只存在於「黑客」和「駭客」之間!shell

黑客羣體有本身特有的一套行爲準則(the hacker ethic)美國學者史蒂夫。利維在其著名的《黑客電腦史》中所指出的黑客道德準則(the hacker ethic)就是對其最深入的表述:編程

(1),通往電腦的路不止一條windows

(2),全部的信息都應當是免費共享的瀏覽器

(3),必定要打破電腦集權

(4),在電腦上創造的是藝術和美

(5),計算機將使生活更加美好

能夠看出,「黑客道德準則」正是這個獨特的文化羣體一直心領神會地遵循着的「江湖規矩」,以這種「江湖規矩」做爲參照,黑客們的行爲特徵也就清晰地呈現給咱們了!

一,熱衷挑戰

黑客們多數都有很高的智慧,至少在某些方面表現突出。他們喜歡挑戰本身的能力,編寫高難度程序,破譯電腦密碼給他們帶來了神氣的魔力,認爲運用本身的智慧和電腦技術去突破某些著名的防衛措施森嚴的站點是一件極、富刺激性和挑戰性的冒險活動。

二,崇尚自由

黑客文化首先給人的突出感受就是一種自由不羈的的精神。黑客如同夜行的蝙蝠俠,任意穿梭在網絡空間中。黑客在電腦虛擬世界發揮着本身的極致的自由。

他們隨意登陸在世界各地的網站,完成着現實生活中沒法企及的冒險旅程,實現着我的生命的虛擬體驗。正是這種對自由的體驗,使黑客如同吸毒上癮同樣,對網絡入侵樂此不疲

三,主張信息共享

黑客們認爲全部的信息都應當是免費的和公開的,認爲計算機應該是大衆的工具,而不該該只爲有錢人私有。信息應該是不受限制的,它屬於每一個人,擁有知識或信息是每一個人的天賦權利

四,反叛精神

黑客文化帶有某種反叛世界的傾向,黑客們蔑視傳統,反抗權威,痛恨集權,其行爲模式以深深烙上了無政府主義的印記。互聯網的一個顯著特色是平等和共享,對於在網絡中存在的許多禁區,黑客們認爲是有違網絡特徵的,他們但願創建一個沒有權威,沒有既定程序的社會,因此他們通常都喜歡與傳統,權威和集權作永無休止的鬥爭

五,破壞心理

黑客們要在網絡空間來去自如,蔑視權威,就必然夾帶着某些破壞行動。只有突破計算機和網絡的防禦措施才能隨意登陸站點,只有顛覆權威設置的程序才能表示反抗權威,也只有摧毀網絡秩序才能達至人人平等的信息共享目標。固然,因爲心理動機不一樣,不一樣黑客行爲的破壞程度也是有所區別的!

這樣一種獨特的黑客文化,必然孕育出黑客羣體所讀有的文化態度!

(1)這個世界不斷涌現出許多迷人的問題等待人們去解決

(2)一個問題不該該重複地解決兩次

(3)無聊而乏味的工做是可惡的

(4)自由是美好的,黑客們須要的是自由協做和信息共享,而不是專制和所謂的權威

(5)態度並不能成爲能力的替代品,想成爲黑客,只有態度是不夠的,更重要的是,還在於努力工做,傾心奉獻,鑽研和實踐!

言語

我寫這個並非由於我已經厭倦了一遍又一遍地回答一樣的問題,而是考慮到這確實是一個有意義的問題,其實不少人(90%)確實須要問這個問題而沒有問!

我被問了不少次有關安全領域的問題,好比,什麼編程語言你最推崇?應該讀什麼書做爲開始?總而言之,就是如何安全領域內成爲一個有影響的人。既然個人答案和通常的答案有所不一樣,我打算把個人見解說出來!

-------------------------------------------

從哪裏開始?

-------------------------------------------

個人觀點可能和通常的見解不一樣,若是你剛剛起步,我建議你不要從Bugtrap,Technotronic,Rootshell等站點開始。沒錯!不要從那裏開始(儘管它們是很好的站點,並且個人意思並非說不要去訪問這些站點)緣由很是簡單。若是你認爲你通曉「安全」,就是知道最新的漏洞,到頭來你將會發現本身一無所得

我贊成,知道什麼地方有漏洞是十分必要的,可是這些並不可以爲你的高手之路打下堅實的基礎。

好比,你知道RDS是最新的漏洞,知道如何下載並使用對這個漏洞進行利用的Script工具,知道如何修補這個漏洞(也許,不少人只知道如何攻擊,並不知道如何防範),但是,3個月後,補丁漫天飛舞,這個漏洞已經不存在了。。。。。如今你的那些知識還有什麼用?並且你可能根本沒有理解對漏洞的分析!

你應該學習的知識是什麼?是分析?仍是攻擊手段?

這是我想要再次強調的,人們可能沒有注意,已經有不少人認爲他們只要知道最新的漏洞就是安全專家,NO!全部他們知道的只不過是「漏洞」,而不是「安全」

例如,你知道有關於phf的漏洞,showcode.asp的漏洞,可是你知道它們爲何會成爲GGI漏洞的嗎?

你知道如何編一個安全的 通用網關程序嗎?你會根據一個GGI的狀態來判斷它有可能有哪些漏洞或哪方面的漏洞嗎?或者,你是否是隻知道這些GGI有漏洞呢?

因此,我建議你不要從漏洞開始,就當它們不存在(你知道個人意思),你真正須要作的是從一個普通用戶開始。

---------------------------------------------

作一個用戶

---------------------------------------------

個人意思是你至少要有一些基本的常規的知識。例如:你若是要從事Web Hacking,你是否連瀏覽器都不會用?你會打開Netscape,打開IE?很好!你會輸入姓名,你知道HTML是網頁,很好,你要一直這樣下去,變成一個熟練的用戶。你會區別ASP和GGI是動態的,什麼是PHP?什麼是轉向,COOKIES,SSL?你要知道任何一個普通用戶可能接觸到的關於Web事物。不是進攻漏洞,僅僅是使用。沒有這些基礎(也許是枯燥的)知識你不可能成爲高手,這裏沒有什麼簡捷好!如今你知道這裏的一切了,你用過了。在你Hack Unix以前至少要知道如何Login,Logout,如何使用Shell命令,如何使用通常的經常使用程序(MAIL,FTP,WEB,LYNX等)。

要成爲一個管理員,你須要掌握以下基本的操做

------------------------------------------------

成爲一個管理員

------------------------------------------------

如今你已經超過了一個普通用戶的領域了,進入更復雜的領域,你要掌握更多的知識。例如:Web服務器的類型,與其餘的服務器有什麼區別?如何去配置它,像這樣的知識,你知道得越多句意味着你更瞭解它是如何工做的?它是幹什麼的?你理解HTTP協議嗎?你的HTTP1.0和HTTP1.1之間的區別嗎?WEBDAV是什麼?知道HTTP1.1虛擬主機有助於創建你的Web服務器嗎?

你須要瞭解操做系統,例如你歷來沒有配置過NT,你怎麼可能去攻擊一個NT服務器呢?你歷來沒有用過Rdisk,用戶管理器,卻指望Crack一個管理員的密碼,獲得用戶權限?你想使用RDS,而你在NT下的操做一直用的是圖形界面?你須要從管理員提高到一個「超級管理員」,這不是指你有一個超級用戶的權限,而是你的知識要貫穿你的全部領域。很好!你會在圖形界面下填加用戶,在命令行你也能作到嗎?並且,system32裏的那些。exe文件都是幹什麼的?你知道爲何USERNETCTL必需要有超級用戶權限?你是否是歷來沒有接觸過USERNETCTL?不要覺得知道如何作到就好了,要儘量知道得更多,成爲一名技術上的領導者,可是。。。

-------------------------------------------------

你不可能知道全部的事情

-------------------------------------------------

這是咱們不得不面隊的事實。若是你認爲你能夠知道全部的事情,你在自欺欺人。你須要作的是選擇一個領域,一個你最感興趣的一個領域,並進一步學習更多的知識。

要想成爲一名熟練的用戶,成爲一個管理員,成爲一名技術上的領導者,直至成爲某一個領域中最優秀的人,不是僅僅學習如何使用Web瀏覽器,怎樣寫GGI就好了,你知道HTTP和WEB服務器的原理嗎?知道

當服務器不正常工做時應該怎樣使它工做嗎?當你在這個領域內有必定經驗時,天然就知道怎樣攻擊和防護了!

這實際上是很簡單的道理,若是你知道全部的 關於這方面的知識。那麼,你就能夠知道安全隱患在哪裏?面對全部的漏洞時(新的,舊的,未來的)你本身就可以發現未知的漏洞(你這時已是一個黑客高手了)

你找漏洞能夠,但你必須首先了解漏洞的來源。因此,放下你手中的Whisker的拷貝,去學習GGI究竟是幹什麼的?它們是怎麼使經過HTTP的Web服務器有漏洞的?很快你就會知道到底Whisker是幹什麼的了!

編程語言

在全部最近被說起的問題中,最唱聽到的就是:「你認爲應該學習什麼編程語言」

我想,這要看具體狀況了,如你花費多少時間來學習?你想用這種語言來作什麼事?想用多長時間來完成一個程序?這個程序將完成多複雜的任務?

如下有幾個選項:

*Visual Basic

一種很是容易學習的語言,有不少關於這方面的書,公開的免費源代碼也不少,你應該可以很快地使用它。可是這個語言有必定的侷限。它並不像C++那樣強大,你須要在Windows下運行它,須要有一個VB的編程環境。想用VB來編寫攻擊代碼或補丁是十分困難的

*C++

也許是最強大的語言了。在全部的操做系統裏都存在。在網上有成噸的源代碼和書是免費的,包括編程環境。它比VB複雜,掌握它須要花費的時間也比掌握VB長。簡單的東西容易學,功能強大的東西理解起來也要困難一些,這須要你本身衡量

*Assembly

也許是最複雜的語言,也是最難學的語言。若是你把它看成本身的初入門語言。那麼將會難的你的頭要爆裂。可是,先學會了彙編,其他的編程語言也就變得容易多了。市場上的彙編書籍有減小的趨勢。不過,彙編知識在某些方面相當重要,好比緩衝溢出攻擊。

*perl

一種很不錯的語言。它像VB同樣容易學習,也像VB同樣有侷限性。可是它在多數操做平臺上都能運行(unix和windows,因此這是它的優點。有不少這方面的書籍並且是徹底免費的。你能夠用它來製做一些普通的攻擊工具,它主要用於一些文本方式的攻擊技巧,並不適合製做二進制程序我想,這是你全部想知道的,有把握的說,C/C++是最佳選擇。

-----------------------------------------

推薦的書

-----------------------------------------

另一個問題是我推薦去讀什麼書。

我我的手邊有如下的幾本書做爲參考。

Applied Cryptography (Btuce Scheiner)

Linux Application Development (mike johnson and troan)

windows assembly language and systems programming(barry kauler)

perl cookbook (tom chirstiansen and nathan torkington)(o"reilly)

linux programmer"s reference (richard petersen)(osborne)

all the o"reilly "pocket reference"books,which include vi.emacs.python.

perl.pl/sql。nt.javascript.sendmail.tcl/tk.perl/tk

我老是在這些書的一些基本規則裏思考。

個人心得是,大部分o"reilly的書都很是耐讀,找一個你感興趣的領域專心去鑽研吧! 

相關文章
相關標籤/搜索