黑客技術教程

黑客技術教程

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

基本信息

黑客行為

黑客的行為主要有以下幾種:
一、學習技術:
網際網路上的新技術一旦出現,黑客就必須立刻學習,並用最短的時間掌握這項技術,這裡所說的掌握並不是一般的了解,而是閱讀有關的“協定”(rfc)、深入了解此技術的機理,否則一旦停止學習,那么依靠他以前掌握的內容,並不能維持他的“黑客身份”超過一年。
初級黑客要學習的知識是比較困難的,因為他們沒有基礎,所以學習起來要接觸非常多的基本內容,然而今天的網際網路給讀者帶來了很多的信息,這就需要初級學習者進行選擇:太深的內容可能會給學習帶來困難;太“花哨”的內容又對學習黑客沒有用處。所以初學者不能貪多,應該儘量尋找一本書和自己的完整教材、循序漸進的進行學習。
二、偽裝自己:
黑客的一舉一動都會被伺服器記錄下來,所以黑客必須偽裝自己使得對方無法辨別其真實身份,這需要有熟練的技巧,用來偽裝自己的IP位址、使用跳板逃避跟蹤、清理記錄擾亂對方線索、巧妙躲開防火牆等。
偽裝是需要非常過硬的基本功才能實現的,這對於初學者來說成的上“大成境界”了,也就是說初學者不可能用短時間學會偽裝,所以我並不鼓勵初學者利用自己學習的知識對網路進行攻擊,否則一旦自己的行跡敗露,最終害的害是自己。
如果有朝一日你成為了真正的黑客,我也同樣不贊成你對網路進行攻擊,畢竟黑客的成長是一種學習,而不是一種犯罪。
三、發現漏洞:
黑客大戰黑客大戰
漏洞對黑客來說是最重要的信息,黑客要經常學習別人發現的漏洞,並努力自己尋找未知漏洞,並從海量的漏洞中尋有價值的、可被利用的漏洞進行試驗,當然他們最終的目的是通過漏洞進行破壞或著修補上這個漏洞。
黑客對尋找漏洞的執著是常人難以想像的,他們的口號說“打破權威”,從一次又一次的黑客實踐中,黑客也用自己的實際行動向世人印證了這一點——世界上沒有“不存在漏洞”的程式。在黑客眼中,所謂的“天衣無縫”不過是“沒有找到”而已。
四、利用漏洞:
對於正派黑客來說,漏洞要被修補;對於邪派黑客來說,漏洞要用來搞破壞。而他們的基本前提是“利用漏洞”,黑客利用漏洞可以做下面的事情:
1、獲得系統信息:有些漏洞可以泄漏系統信息,暴露敏感資料,從而進一步入侵系統;
2、入侵系統:通過漏洞進入系統內部,或取得伺服器上的內部資料、或完全掌管伺服器;
3、尋找下一個目標:一個勝利意味著下一個目標的出現,黑客應該充分利用自己已經掌管的伺服器作為工具,尋找併入侵下一個系統;
4、做一些好事:正派黑客在完成上面的工作後,就會修復漏洞或者通知系統管理員,做出一些維護網路安全的事情;
5、做一些壞事:邪派黑客在完成上面的工作後,會判斷伺服器是否還有利用價值。如果有利用價值,他們會在伺服器上植入木馬或者後門,便於下一次來訪;而對沒有利用價值的伺服器他們決不留情,系統崩潰會讓他們感到無限的快感!

基本技能

黑客應掌握的基本技能
從這一節開始,我們就真正踏上學習黑客的道路了,首先要介紹的是作為一名初級黑客所必須掌握的基本技能,學習這可以通過這一節的閱讀了解到黑客並不神秘,而且學習起來很容易上手。為了保證初學者對黑客的興趣,所以本書採取了循環式進度,也就是說每一章節的內容都是獨立、全面的,學習者只有完整的學習過一章的內容,才能夠進而學習下一章的內容。
一、了解一定量的英文:
學習英文對於黑客來說非常重要,因為現在大多數資料和教程都是英文版本,而且有關黑客的新聞也是從國外過來的,一個漏洞從發現到出現中文介紹,需要大約一個星期的時間,在這段時間區域網路絡管理員就已經有足夠的時間修補漏洞了,所以當我們看到中文介紹的時候,這個漏洞可能早就已經不存在了。因此學習黑客從一開始就要儘量閱讀英文資料、使用英文軟體、並且及時關注國外著名的網路安全網站。
二、學會基本軟體的使用:
黑客黑客
這裡所說的基本軟體是指兩個內容:一個是我們日常使用的各種電腦常用命令,例如ftp、ping、net等;另一方面還要學會有關黑客工具的使用,這主要包括連線埠掃描器、漏洞掃描器、信息截獲工具和密碼破解工具等。因為這些軟體品種多,功能各不相同,所以本書在後面將會介紹幾款流行的軟體使用方法,學習者在掌握其基本原理以後,既可以選擇適合自己的,也可以在“第二部分”中找到有關軟體的開發指南,編寫自己的黑客工具。
三、初步了解網路協定和工作原理:
所謂“初步了解”就是“按照自己的理解方式”弄明白網路的工作原理,因為協定涉及的知識多且複雜,所以如果在一開就進行深入研究,勢必會大大挫傷學習積極性。在這裡我建議學習者初步了解有關tcp/ip協定,尤其是瀏覽網頁的時候網路是如何傳遞信息、客戶端瀏覽器如何申請“握手信息”、伺服器端如何“應答握手信息”並“接受請求”等內容,此部分內容將會在後面的章節中進行具體介紹。
四、熟悉幾種流行的程式語言和腳本:
同上面所述一樣,這裡也不要求學習者進行深入學習,只要能夠看懂有關語言、知道程式執行結果就可以了。建議學習者初步學習C語言、asp和cgi腳本語言,另外對於htm超文本語言phpjava等做基本了解,主要學習這些語言中的“變數”和“數組”部分,因為語言之間存在內在聯繫,所以只要熟練掌握其中一們,其他語言也可以一脈相同,建議學習C語言和htm超文本語言。
五、熟悉網路應用程式:
 網路應用程式包括各種伺服器軟體後台程式,例如:wuftp、Apache等伺服器後台;還有網上流行的各種論壇、電子社區。有條件的學習者最好將自己的電腦做成伺服器,然後安裝並運行一些論壇代碼,經過一番嘗試之後,將會感性的弄清楚網路工作原理,這比依靠理論學習要容易許多,能夠達到事半功倍的效果!

術語介紹

一、協定:
網路是一個信息交換的場所,所有接入網路的計算機都可以通過彼此之間的物理連設備行信息交換,這種物理設備包括最常見的電纜、光纜、無線WAP和微波等,但是單純擁有這些物理設備並不能實現信息的交換,這就好像人類的身體不能缺少大腦的支配一樣,信息交換還要具備軟體環境,這種“軟體環境”是人類實現規定好的一些規則,被稱作“協定”,有了協定,不同的電腦可以遵照相同的協定使用物理設備,並且不會造成相互之間的“不理解”。
這種協定很類似於“摩爾斯電碼”,簡單的一點一橫,經過排列可以有萬般變化,但是假如沒有“對照表”,誰也無法理解一分雜亂無章的電碼所表述的內容是什麼。電腦也是一樣,它們通過各種預先規定的協定完成不同的使命,例如RFC1459協定可以實現IRC伺服器與客戶端電腦的通信。因此無論是黑客還是網路管理員,都必須通過學習協定達到了解網路運作機理的目的。
每一個協定都是經過多年修改延續使用至今的,新產生的協定也大多是在基層協定基礎上建立的,因而協定相對來說具有較高的安全機制,黑客很難發現協定中存在的安全問題直接入手進行網路攻擊。但是對於某些新型協定,因為出現時間短、考慮欠周到,也可能會因安全問題而被黑客利用。
對於網路協定的討論,更多人則認為:現今使用的基層協定在設計之初就存在安全隱患,因而無論網路進行什麼樣的改動,只要現今這種網路體系不進行根本變革,從根本上就無法杜絕網路黑客的出現。但是這種黑客機能已經超出了本書的範圍,因而不在這裡詳細介紹。
二、伺服器與客戶端:
黑客程式黑客程式
最簡單的網路服務形式是:若干台電腦做為客戶端,使用一台電腦當作伺服器,每一個客戶端都具有向伺服器提出請的能力,而後由伺服器應答並完成請求的動作,最後伺服器會將執行結果返回給客戶端電腦。這樣的協定很多。例如我們平時接觸的電子郵件伺服器、網站伺服器、聊天室伺服器等都屬於這種類型。另外還有一種連線方式,它不需要伺服器的支持,而是直接將兩個客戶端電腦進行連線,也就是說每一台電腦都既是伺服器、又是客戶端,它們之間具有相同的功能,對等的完成連線和信息交換工作。例如DCC傳輸協定即屬於此種類型。
從此看出,客戶端和伺服器分別是各種協定中規定的請求申請電腦和應答電腦。作為一般的上網用戶,都是操作著自己的電腦(客戶端),別且向網路伺服器發出常規請求完成諸如瀏覽網頁、收發電子郵件等動作的,而對於黑客來說則是通過自己的電腦(客戶端)對其他電腦(有可能是客戶端,也有可能是伺服器)進行攻擊,以達到入侵、破壞、竊取信息的目的。
三、系統與系統環境:
電腦要運作必須安裝作業系統,如今流行的作業系統主要由UNIX、Linux、Mac、BSD、Windows2000、Windows95/98/Me、WindowsNT等,這些作業系統各自獨立運行,它們有自己的檔案管理、記憶體管理、進程管理等機制,在網路上,這些不同的作業系統既可以作為伺服器、也可以作為客戶端被使用者操作,它們之間通過“協定”來完成信息的交換工作。
不同的作業系統配合不同的應用程式就構成了系統環境,例如Linux系統配合Apache軟體可以將電腦構設成一台網站伺服器,其他使用客戶端的電腦可以使用瀏覽器來獲得網站伺服器上供瀏覽者閱讀的文本信息;再如Windows2000配合Ftpd軟體可以將電腦構設成一台檔案伺服器,通過遠程ftp登入可以獲得系統上的各種檔案資源等。
四、IP位址和連線埠:
我們上網,可能會同時瀏覽網頁、收發電子郵件、進行語音聊天……如此多的網路服務項目,都是通過不同的協定完成的,然而網路如此之大,我們的電腦怎么能夠找到服務項目所需要的電腦?如何在一台電腦上同時完成如此多的工作的呢?這裡就要介紹到IP位址了。
每一台上網的電腦都具有獨一無二的IP位址,這個地址類似於生活中人們的家庭地址,通過網路路由器等多種物理設備(無需初級學習者理解),網路可以完成從一個電腦到另一個電腦之間的信息交換工作,因為他們的IP位址不同,所以不會出現找不到目標的混亂局面。但是黑客可以通過特殊的方法偽造自己電腦的IP位址,這樣當伺服器接受到黑客電腦(偽IP位址)的請求後,伺服器會將應答信息傳送到偽IP位址上,從而造成網路的混亂。當然,黑客也可以根據IP位址輕易的找到任何上網者或伺服器,進而對他們進行攻擊(想想現實中的入室搶劫),因而如今我們會看到很多關於《如何隱藏自己IP位址》的文章。
接下來我解釋一下上面提到的第二個問題:一台電腦上為什麼能同時使用多種網路服務。這好像北京城有八個城門一樣,不同的協定體現在不同的網路服務上,而不同的網路服務則會在客戶端電腦上開闢不同的連線埠(城門)來完成它的信息傳送工作。當然,如果一台網路伺服器同時開放了多種網路服務,那么它也要開放多個不同的連線埠(城門)來接納不同的客戶端請求。
網路上經常聽到的“後門”就是這個意思,黑客通過特殊機能在伺服器上開闢了一個網路服務,這個服務可以用來專門完成黑客的目的,那么伺服器上就會被打開一個新的連線埠來完成這種服務,因為這個連線埠是供黑客使用的,因而輕易不會被一般上網用戶和網路管理員發現,即“隱藏的連線埠”,故“後門”。
每一台電腦都可以打開65535個連線埠,因而理論上我們可以開發出至少65535種不同的網路服務,然而實際上這個數字非常大,網路經常用到的服務協定不過幾十個,例如瀏覽網頁客戶端和服務端都使用的是80號連線埠,進行IRC聊天則在服務端使用6667連線埠、客戶端使用1026連線埠等。
五、漏洞:
黑客技術教程黑客技術教程
漏洞就是程式中沒有考慮到的情況,例如最簡單的“弱口令”漏洞是指系統管理員忘記禁止某些網路應用程式中的賬;Perl程式漏洞則可能是由於程式設計師在設計程式的時候考慮情況不完善出現的“讓程式執行起來不知所措”的代碼段,“溢出”漏洞則屬於當初設計系統或者程式的時候,沒有預先保留出足夠的資源,而在日後使用程式是造成的資源不足;特殊IP包炸彈實際上是程式在分析某些特殊數據的時候出現錯誤等……
總而言之,漏洞就是程式設計上的人為疏忽,這在任何程式中都無法絕對避免,黑客也正是利用種種漏洞對網路進行攻擊的,本章開始的字眼兒“網路安全”實際就是“漏洞”的意思。黑客利用漏洞完成各種攻擊是最終的結果,其實真正對黑客的定義就是“尋找漏洞的人”,他們並不是以網路攻擊為樂趣,而是天天沉迷在閱讀他人的程式併力圖找到其中的漏洞。應該說,從某種程度上講,黑客都是“好人”,他們為了追求完善、建立安全的網際網路才投身此行的,只不過因為有的黑客或者乾脆是偽黑客經常利用具有攻擊性的漏洞,近些年人們才對黑客有了畏懼和敵視的心理。
六、加密與解密:
在“協定”的講解中,我提到了“由於網路設計的基層存在問題……”,簡單的說這一問題是允許所有上網者參與信息共享,因而對某些商業、個人隱私在網路上的傳送,就會暴露在眾目睽睽之下,我們的信用卡、個人電子郵件等都可以通過監聽或者截獲的方式被他人的到,如何才能讓這些信息安全呢?讀者也許想到了“二戰中”的間諜戰:參戰國家在使用電報的時候,都對代碼進行了加密處理,只有知道了“密碼薄”的接收者,才可以進行解碼工作。正是這種古老的加密方式,在現代化的網路上也依然存在它旺盛的生命力,通過加密處理的信息在網路上傳送,無論誰拿到了這份檔案,只要沒有“密碼薄”仍然是白費力氣的。
網路上最長使用的是設定個人密碼、使用DES加密鎖,這兩種加密方式分別可以完成用戶登入系統、網站、電子郵件信箱和保護信息包的工作,而黑客所要進行的工作,就是通過漏洞、暴力猜測、加密算法反向套用等方式獲得加密檔案的明文,有人把“魔高一尺、道高一仗”用在這裡,的確是在恰當不過了!網路上的加密方法和需要驗證密碼的系統層出不窮,黑客也在尋找破解這些系統的種種辦法。
可以說,“漏洞”和“解密”是兩個完全不同的黑客領域,對於不同的學習者對他們的偏好,將會直接影響到今後將會成為的黑客類型,因而在二者之間的選擇,應根據個人喜好進行,本書將會側重學習“漏洞”方面的知識。
七、特洛伊木馬:
特洛伊木馬是一個程式,這個程式可以做程式設計者有意設計的未出現過的事情。但是對於特洛伊木馬所做的操作,不論是否用戶了解,都是不被贊同的。根據某些人的認識,病毒是特洛伊木馬的一個特例,即:能夠傳播到其他的程式當中(也就是將這些程式也變成特洛伊木馬)。根據另外的人的理解,不是有意造成任何損壞的病毒不是特洛伊木馬。最終,不論如何定義,許多人僅僅用“特洛伊木馬”來形容不能複製的帶有惡意的程式,以便將特洛伊木馬與病毒區分開。

相關詞條

相關搜尋

熱門詞條

聯絡我們