最經(jīng)典的黑客入門教程(安全必備技能)
黑客的種類和行為
以我的理解,“黑客”大體上應(yīng)該分為“正”、“邪”兩類,正派黑客依靠自己掌握的知識幫助系統(tǒng)管理員找出系統(tǒng)中的漏洞并加以完善,而邪派黑客則是通過各種黑客技能對系統(tǒng)進行攻擊、入侵或者做其他一些有害于網(wǎng)絡(luò)的事情,因為邪派黑客所從事的事情違背了《黑客守則》,所以他們真正的名字叫“駭客”(Cracker)而非“黑客”(Hacker),也就是我們平時經(jīng)常聽說的“黑客”(Cacker)和“紅客”(Hacker)。

黑客的行為主要有以下幾種:
一、學(xué)習(xí)技術(shù):
互聯(lián)網(wǎng)上的新技術(shù)一旦出現(xiàn),黑客就必須立刻學(xué)習(xí),并用最短的時間掌握這項技術(shù),這里所說的掌握并不是一般的了解,而是閱讀有關(guān)的“協(xié)議”(rfc)、深入了解此技術(shù)的機理,否則一旦停止學(xué)習(xí),那么依靠他以前掌握的內(nèi)容,并不能維持他的“黑客身份”超過一年。
初級黑客要學(xué)習(xí)的知識是比較困難的,因為他們沒有基礎(chǔ),所以學(xué)習(xí)起來要接觸非常多的基本內(nèi)容,然而今天的互聯(lián)網(wǎng)給讀者帶來了很多的信息,這就需要初級學(xué)習(xí)者進行選擇:太深的內(nèi)容可能會給學(xué)習(xí)帶來困難;太“花哨”的內(nèi)容又對學(xué)習(xí)黑客沒有用處。所以初學(xué)者不能貪多,應(yīng)該盡量尋找一本書和自己的完整教材、循序漸進的進行學(xué)習(xí)。
二、偽裝自己:
黑客的一舉一動都會被服務(wù)器記錄下來,所以黑客必須偽裝自己使得對方無法辨別其真實身份,這需要有熟練的技巧,用來偽裝自己的IP地址、使用跳板逃避跟蹤、清理記錄擾亂對方線索、巧妙躲開防火墻等。
偽裝是需要非常過硬的基本功才能實現(xiàn)的,這對于初學(xué)者來說成的上“大成境界”了,也就是說初學(xué)者不可能用短時間學(xué)會偽裝,所以我并不鼓勵初學(xué)者利用自己學(xué)習(xí)的知識對網(wǎng)絡(luò)進行攻擊,否則一旦自己的行跡敗露,最終害的害是自己。
三、發(fā)現(xiàn)漏洞:
漏洞對黑客來說是最重要的信息,黑客要經(jīng)常學(xué)習(xí)別人發(fā)現(xiàn)的漏洞,并努力自己尋找未知漏洞,并從海量的漏洞中尋找有價值的、可被利用的漏洞進行試驗,當然他們最終的目的是通過漏洞進行破壞或著修補上這個漏洞。
黑客對尋找漏洞的執(zhí)著是常人難以想象的,他們的口號說“打破權(quán)威”,從一次又一次的黑客實踐中,黑客也用自己的實際行動向世人印證了這一點——世界上沒有“不存在漏洞”的程序。在黑客眼中,所謂的“天衣無縫”不過是“沒有找到”而已。
四、利用漏洞:
對于正派黑客來說,漏洞要被修補;對于邪派黑客來說,漏洞要用來搞破壞。而他們的基本前提是“利用漏洞”,黑客利用漏洞可以做下面的事情:
1、獲得系統(tǒng)信息:有些漏洞可以泄漏系統(tǒng)信息,暴露敏感資料,從而進一步入侵系統(tǒng);
2、入侵系統(tǒng):通過漏洞進入系統(tǒng)內(nèi)部,或取得服務(wù)器上的內(nèi)部資料、或完全掌管服務(wù)器;
3、尋找下一個目標:一個勝利意味著下一個目標的出現(xiàn),黑客應(yīng)該充分利用自己已經(jīng)掌管的服務(wù)器作為工具,尋找并入侵下一個系統(tǒng);
黑客應(yīng)掌握的基本技能
從這一節(jié)開始,我們就真正踏上學(xué)習(xí)黑客的道路了,首先要介紹的是作為一名初級黑客所必須掌握的基本技能,學(xué)習(xí)這可以通過這一節(jié)的閱讀了解到黑客并不神秘,而且學(xué)習(xí)起來很容易上手。為了保證初學(xué)者對黑客的興趣,所以本書采取了循環(huán)式進度,也就是說每一章節(jié)的內(nèi)容都是獨立、全面的,學(xué)習(xí)者只有完整的學(xué)習(xí)過一章的內(nèi)容,才能夠進而學(xué)習(xí)下一章的內(nèi)容。
一、了解一定量的英文:
學(xué)習(xí)英文對于黑客來說非常重要,因為現(xiàn)在大多數(shù)資料和教程都是英文版本,而且有關(guān)黑客的新聞也是從國外過來的,一個漏洞從發(fā)現(xiàn)到出現(xiàn)中文介紹,需要大約一個星期的時間,在這段時間內(nèi)網(wǎng)絡(luò)管理員就已經(jīng)有足夠的時間修補漏洞了,所以當我們看到中文介紹的時候,這個漏洞可能早就已經(jīng)不存在了。因此學(xué)習(xí)黑客從一開始就要盡量閱讀英文資料、使用英文軟件、并且及時關(guān)注國外著名的網(wǎng)絡(luò)安全網(wǎng)站。
二、學(xué)會基本軟件的使用:
這里所說的基本軟件是指兩個內(nèi)容:一個是我們?nèi)粘J褂玫母鞣N電腦常用命令,例如ftp、ping、net等;另一方面還要學(xué)會有關(guān)黑客工具的使用,這主要包括端口掃描器、漏洞掃描器、信息截獲工具和密碼破解工具等。因為這些軟件品種多,功能各不相同,所以本書在后面將會介紹幾款流行的軟件使用方法,學(xué)習(xí)者在掌握其基本原理以后,既可以選擇適合自己的,也可以在“第二部分”中找到有關(guān)軟件的開發(fā)指南,編寫自己的黑客工具。
三、初步了解網(wǎng)絡(luò)協(xié)議和工作原理:
所謂“初步了解”就是“按照自己的理解方式”弄明白網(wǎng)絡(luò)的工作原理,因為協(xié)議涉及的知識多且復(fù)雜,所以如果在一開始就進行深入研究,勢必會大大挫傷學(xué)習(xí)積極性。在這里我建議學(xué)習(xí)者初步了解有關(guān)tcp/ip協(xié)議,尤其是瀏覽網(wǎng)頁的時候網(wǎng)絡(luò)是如何傳遞信息、客戶端瀏覽器如何申請“握手信息”、服務(wù)器端如何“應(yīng)答握手信息”并“接受請求”等內(nèi)容,此部分內(nèi)容將會在后面的章節(jié)中進行具體介紹。
四、熟悉幾種流行的編程語言和腳本:
同上面所述一樣,這里也不要求學(xué)習(xí)者進行深入學(xué)習(xí),只要能夠看懂有關(guān)語言、知道程序執(zhí)行結(jié)果就可以了。建議學(xué)習(xí)者初步學(xué)習(xí)C語言、asp和cgi腳本語言,另外對于htm超文本語言和php、java等做基本了解,主要學(xué)習(xí)這些語言中的“變量”和“數(shù)組”部分,因為語言之間存在內(nèi)在聯(lián)系,所以只要熟練掌握其中一們,其他語言也可以一脈相同,建議學(xué)習(xí)C語言和htm超文本語言。
基本理論和基本知識
網(wǎng)絡(luò)安全術(shù)語解釋
一、協(xié)議:
網(wǎng)絡(luò)是一個信息交換的場所,所有接入網(wǎng)絡(luò)的計算機都可以通過彼此之間的物理連設(shè)備行信息交換,這種物理設(shè)備包括最常見的電纜、光纜、無線WAP和微波等,但是單純擁有這些物理設(shè)備并不能實現(xiàn)信息的交換,這就好像人類的身體不能缺少大腦的支配一樣,信息交換還要具備軟件環(huán)境,這種“軟件環(huán)境”是人類實現(xiàn)規(guī)定好的一些規(guī)則,被稱作“協(xié)議”,有了協(xié)議,不同的電腦可以遵照相同的協(xié)議使用物理設(shè)備,并且不會造成相互之間的“不理解”。
這種協(xié)議很類似于“摩爾斯電碼”,簡單的一點一橫,經(jīng)過排列可以有萬般變化,但是假如沒有“對照表”,誰也無法理解一分雜亂無章的電碼所表述的內(nèi)容是什么。電腦也是一樣,它們通過各種預(yù)先規(guī)定的協(xié)議完成不同的使命,例如RFC1459協(xié)議可以實現(xiàn)IRC服務(wù)器與客戶端電腦的通信。因此無論是黑客還是網(wǎng)絡(luò)管理員,都必須通過學(xué)習(xí)協(xié)議達到了解網(wǎng)絡(luò)運作機理的目的。
每一個協(xié)議都是經(jīng)過多年修改延續(xù)使用至今的,新產(chǎn)生的協(xié)議也大多是在基層協(xié)議基礎(chǔ)上建立的,因而協(xié)議相對來說具有較高的安全機制,黑客很難發(fā)現(xiàn)協(xié)議中存在的安全問題直接入手進行網(wǎng)絡(luò)攻擊。但是對于某些新型協(xié)議,因為出現(xiàn)時間短、考慮欠周到,也可能會因安全問題而被黑客利用。
二、服務(wù)器與客戶端:
最簡單的網(wǎng)絡(luò)服務(wù)形式是:若干臺電腦做為客戶端,使用一臺電腦當作服務(wù)器,每一個客戶端都具有向服務(wù)器提出請求的能力,而后由服務(wù)器應(yīng)答并完成請求的動作,最后服務(wù)器會將執(zhí)行結(jié)果返回給客戶端電腦。這樣的協(xié)議很多。例如我們平時接觸的電子郵件服務(wù)器、網(wǎng)站服務(wù)器、聊天室服務(wù)器等都屬于這種類型。另外還有一種連接方式,它不需要服務(wù)器的支持,而是直接將兩個客戶端電腦進行連接,也就是說每一臺電腦都既是服務(wù)器、又是客戶端,它們之間具有相同的功能,對等的完成連接和信息交換工作。例如DCC傳輸協(xié)議即屬于此種類型。
從此看出,客戶端和服務(wù)器分別是各種協(xié)議中規(guī)定的請求申請電腦和應(yīng)答電腦。作為一般的上網(wǎng)用戶,都是操作著自己的電腦(客戶端),別且向網(wǎng)絡(luò)服務(wù)器發(fā)出常規(guī)請求完成諸如瀏覽網(wǎng)頁、收發(fā)電子郵件等動作的,而對于黑客來說則是通過自己的電腦(客戶端)對其他電腦(有可能是客戶端,也有可能是服務(wù)器)進行攻擊,以達到入侵、破壞、竊取信息的目的。
三、系統(tǒng)與系統(tǒng)環(huán)境:
電腦要運作必須安裝操作系統(tǒng),如今流行的操作系統(tǒng)主要由UNIX、Linux、Mac、BSD、Windows2000、Windows95/98/Me、Windows NT等,這些操作系統(tǒng)各自獨立運行,它們有自己的文件管理、內(nèi)存管理、進程管理等機制,在網(wǎng)絡(luò)上,這些不同的操作系統(tǒng)既可以作為服務(wù)器、也可以作為客戶端被使用者操作,它們之間通過“協(xié)議”來完成信息的交換工作。
四、IP地址和端口:
我們上網(wǎng),可能會同時瀏覽網(wǎng)頁、收發(fā)電子郵件、進行語音聊天……如此多的網(wǎng)絡(luò)服務(wù)項目,都是通過不同的協(xié)議完成的,然而網(wǎng)絡(luò)如此之大,我們的電腦怎么能夠找到服務(wù)項目所需要的電腦?如何在一臺電腦上同時完成如此多的工作的呢?這里就要介紹到IP地址了。
每一臺上網(wǎng)的電腦都具有獨一無二的IP地址,這個地址類似于生活中人們的家庭地址,通過網(wǎng)絡(luò)路由器等多種物理設(shè)備(無需初級學(xué)習(xí)者理解),網(wǎng)絡(luò)可以完成從一個電腦到另一個電腦之間的信息交換工作,因為他們的IP地址不同,所以不會出現(xiàn)找不到目標的混亂局面。但是黑客可以通過特殊的方法偽造自己電腦的IP地址,這樣當服務(wù)器接受到黑客電腦(偽IP地址)的請求后,服務(wù)器會將應(yīng)答信息傳送到偽IP地址上,從而造成網(wǎng)絡(luò)的混亂。當然,黑客也可以根據(jù)IP地址輕易的找到任何上網(wǎng)者或服務(wù)器,進而對他們進行攻擊(想想現(xiàn)實中的入室搶劫),因而如今我們會看到很多關(guān)于《如何隱藏自己IP地址》的文章。
接下來我解釋一下上面提到的第二個問題:一臺電腦上為什么能同時使用多種網(wǎng)絡(luò)服務(wù)。這好像北京城有八個城門一樣,不同的協(xié)議體現(xiàn)在不同的網(wǎng)絡(luò)服務(wù)上,而不同的網(wǎng)絡(luò)服務(wù)則會在客戶端電腦上開辟不同的端口(城門)來完成它的信息傳送工作。當然,如果一臺網(wǎng)絡(luò)服務(wù)器同時開放了多種網(wǎng)絡(luò)服務(wù),那么它也要開放多個不同的端口(城門)來接納不同的客戶端請求。
網(wǎng)絡(luò)上經(jīng)常聽到的“后門”就是這個意思,黑客通過特殊機能在服務(wù)器上開辟了一個網(wǎng)絡(luò)服務(wù),這個服務(wù)可以用來專門完成黑客的目的,那么服務(wù)器上就會被打開一個新的端口來完成這種服務(wù),因為這個端口是供黑客使用的,因而輕易不會被一般上網(wǎng)用戶和網(wǎng)絡(luò)管理員發(fā)現(xiàn),即“隱藏的端口”,故“后門”。
每一臺電腦都可以打開65535個端口,因而理論上我們可以開發(fā)出至少65535種不同的網(wǎng)絡(luò)服務(wù),然而實際上這個數(shù)字非常大,網(wǎng)絡(luò)經(jīng)常用到的服務(wù)協(xié)議不過幾十個,例如瀏覽網(wǎng)頁客戶端和服務(wù)端都使用的是80號端口,進行IRC聊天則在服務(wù)端使用6667端口、客戶端使用1026端口等。
常用黑客軟件用途分類
一、防范:
這是從安全的角度出發(fā)涉及的一類軟件,例如防火墻、查病毒軟件、系統(tǒng)進程監(jiān)視器、端口管理程序等都屬于此類軟件。這類軟件可以在最大程度上保證電腦使用者的安全和個人隱私,不被黑客破壞。網(wǎng)絡(luò)服務(wù)器對于此類軟件的需要也是十分重視的,如日志分析軟件、系統(tǒng)入侵軟件等可以幫助管理員維護服務(wù)器并對入侵系統(tǒng)的黑客進行追蹤。
二、信息搜集:
信息搜集軟件種類比較多,包括端口掃描、漏洞掃描、弱口令掃描等掃描類軟件;還有監(jiān)聽、截獲信息包等間諜類軟件,其大多數(shù)屬于亦正亦邪的軟件,也就是說無論正派黑客、邪派黑客、系統(tǒng)管理員還是一般的電腦使用者,都可以使用者類軟件完成各自不同的目的。在大多數(shù)情況下,黑客使用者類軟件的頻率更高,因為他們需要依靠此類軟件對服務(wù)器進行全方位的掃描,獲得盡可能多的關(guān)于服務(wù)器的信息,在對服務(wù)器有了充分的了解之后,才能進行黑客動作。
三、木馬與蠕蟲:
這是兩種類型的軟件,不過他們的工作原理大致相同,都具有病毒的隱藏性和破壞性,另外此類軟件還可以由擁有控制權(quán)的人進行操作,或由事先精心設(shè)計的程序完成一定的工作。當然這類軟件也可以被系統(tǒng)管理員利用,當作遠程管理服務(wù)器的工具。
四、洪水:
所謂“洪水”即信息垃圾炸彈,通過大量的垃圾請求可以導(dǎo)致目標服務(wù)器負載超負荷而崩潰,近年來網(wǎng)絡(luò)上又開始流行DOS分散式攻擊,簡單地說也可以將其歸入此類軟件中。洪水軟件還可以用作郵件炸彈或者聊天式炸彈,這些都是經(jīng)過簡化并由網(wǎng)絡(luò)安全愛好者程序化的“傻瓜式”軟件,也就是本書一開始指責的“偽黑客”手中經(jīng)常使用的軟件。
五、密碼破解:
網(wǎng)絡(luò)安全得以保證的最實用方法是依靠各種加密算法的密碼系統(tǒng),黑客也許可以很容易獲得一份暗文密碼文件,但是如果沒有加密算法,它仍然無法獲得真正的密碼,因此使用密碼破解類軟件勢在必行,利用電腦的高速計算能力,此類軟件可以用密碼字典或者窮舉等方式還原經(jīng)過加密的暗文。
六、欺騙:
如果希望獲得上面提到的明文密碼,黑客需要對暗文進行加密算法還原,但如果是一個復(fù)雜的密碼,破解起來就不是那么簡單了。但如果讓知道密碼的人直接告訴黑客密碼的原型,是不是更加方便?欺騙類軟件就是為了完成這個目的而設(shè)計的。
七、偽裝:
網(wǎng)絡(luò)上進行的各種操作都會被ISP、服務(wù)器記錄下來,如果沒有經(jīng)過很好的偽裝就進行黑客動作,很容易就會被反跟蹤技術(shù)追查到黑客的所在,所以偽裝自己的IP地址、身份是黑客非常重要的一節(jié)必修課,但是偽裝技術(shù)需要高深的網(wǎng)絡(luò)知識,一開始沒有堅實的基礎(chǔ)就要用到這一類軟件了。
學(xué)習(xí)黑客的基本環(huán)境
一、操作系統(tǒng)的選擇:
我們經(jīng)常聽說黑客酷愛Linux系統(tǒng),這是因為Linux相對Windows提供了更加靈活的操作方式,更加強大的功能。例如對于IP地址的偽造工作,利用Linux系統(tǒng)編寫特殊的IP頭信息可以輕松完成,然而在Windows系統(tǒng)下卻幾乎不可能做到。但是Linux也有它不足的一面,這個系統(tǒng)的命令龐雜、操作復(fù)雜,并不適合初學(xué)者使用,而且對于個人學(xué)習(xí)者,并沒有過多的人會放棄“舒適”的Windows、放棄精彩的電腦游戲和便捷的操作方式,去全心投入黑客學(xué)習(xí)中。而且對于初學(xué)黑客的學(xué)習(xí)者來說,大多數(shù)網(wǎng)絡(luò)知識都可以在Windows系統(tǒng)中學(xué)習(xí),相對Linux系統(tǒng),Windows平臺下的黑客軟件也并不在少數(shù),另外通過安裝程序包,Windows系統(tǒng)中也可以調(diào)試一定量的程序,因此初步學(xué)習(xí)黑客沒有必要從Linux入手。
本書使用的平臺WindowsME,因為對于個人用戶來說,NT或者2000多少有些苛刻——系統(tǒng)配置要求太高;然而使用95或者98又缺少某些必要的功能——NET、TELNET命令不完善。但是本書的大部分內(nèi)容測試漏洞,從遠程服務(wù)器出發(fā),所以也不是非要WindowsME操作系統(tǒng)進行學(xué)習(xí),對于少數(shù)系統(tǒng)版本之間的差異,學(xué)習(xí)者可以和我聯(lián)系獲得相應(yīng)系統(tǒng)的學(xué)習(xí)方法。
二、需要的常用軟件:
如果你的系統(tǒng)是WindowsME,那么告訴你一個好消息——你沒有必要安裝過多的額外軟件,因為我們接觸的黑客知識依靠系統(tǒng)提供給我們的命令和內(nèi)置軟件就足可以完成了!除了基本的操作系統(tǒng)以外,學(xué)習(xí)者還需要安裝各類掃描器,之后下載一個比較優(yōu)秀的木馬軟件、一個監(jiān)聽類軟件,除此以外別無它求。如果有必要,讀者可以自行安裝本文上述軟件,然后學(xué)習(xí)其用法,但是我要告訴你,對于各類炸彈、還有網(wǎng)絡(luò)上各式各樣的黑客軟件,在學(xué)習(xí)完本書后,你都可以自己制作、自己開發(fā),根本沒有必要使用他人編寫的軟件。
對于掃描器和監(jiān)聽軟件,我給出以下建議,并且在本書的后面還會對這幾個軟件進行詳細介紹:
這三個軟件都是免費的,而且功能異常強大。像xscanner是國產(chǎn)軟件,他集成了多種掃描功能于一身,并且同時支持控制臺和圖形界面兩種操作方式,另外提供了詳細的漏洞使用說明。對于初學(xué)者來說,具備了這兩個工具,學(xué)習(xí)黑客已經(jīng)綽綽有余了。
三、額外的工具:
如果可以安裝下面的工具,將會對學(xué)習(xí)黑客有莫大的幫助,當然下面的軟件主要是學(xué)習(xí)額外內(nèi)容并為“第二部分”學(xué)習(xí)作鋪墊用的,所以沒有也不會妨礙本書的學(xué)習(xí)。
1、后臺服務(wù)器:
擁有某些網(wǎng)絡(luò)應(yīng)用的后臺服務(wù)程序,可以將自己的電腦設(shè)置成一個小型服務(wù)器,用來學(xué)習(xí)相應(yīng)的網(wǎng)絡(luò)應(yīng)用,從“內(nèi)部”了解其運作機理,這將會大大提高自己對服務(wù)器的感性認識,同時還能夠在激活服務(wù)器的時候;監(jiān)測自己服務(wù)器上的數(shù)據(jù),如果有其他黑客來攻擊,則可以清晰的記錄下對方的攻擊過程,從而學(xué)習(xí)到更多的黑客攻擊方法。對于本書而言,主要介紹網(wǎng)站的Perl和asp等腳本語言漏洞,所以可以安裝一個IIS或者HTTPD。然后在安裝ActivePerl,使自己的服務(wù)器具備編譯cgi和pl腳本的能力。使用自己的服務(wù)器還有一個好處,可以節(jié)省大量的上網(wǎng)時間,將學(xué)習(xí)、尋找漏洞的過程放到自己的電腦上,既節(jié)省了金錢、有不會對網(wǎng)絡(luò)構(gòu)成威脅,一舉兩得。
2、C語言編譯平臺:
今后在學(xué)習(xí)黑客的路途中,將會遇到很多“屬于自己的問題”,這些問題網(wǎng)絡(luò)上的其他人可能不會注意,所以無法找到相應(yīng)的程序,這個時候?qū)W習(xí)者就要自己動手開發(fā)有關(guān)的工具了,所以安裝一個Borland C++將會非常便捷,通過這個編譯器,學(xué)習(xí)者既可以學(xué)習(xí)C語言,也能夠修改本書后面列出的一些小程序,打造一個屬于自己的工具庫