防黑客,菜鳥必定要知道的知識
一、黑客的種類和行為
黑客平時需要用大量的時間學習,很多人曾經問我做黑客平時都做什么?不是非常安慰?也有人對黑客的理解是天天做無聊且重復的事情 ” 實際上這些又是一個錯誤的認識。不知道這個過程有沒有終點,只知道 “ 多多益善 ” 由于學習黑客完全出于個人喜好,所以無所謂 “ 無聊 ” 重復是不可防止的因為 “ 熟能生巧 ” 只有經過不時的聯系、實踐,才可能自己體會出一些只可意會、不可言傳的心得。
以我理解,無論那類黑客。黑客 ” 大體上應該分為 “ 正 ” 邪 ” 兩類,正派黑客依靠自己掌握的知識協助系統管理員找出系統中的漏洞并加以完善,而邪派黑客則是通過各種黑客技能對系統進行攻擊、入侵或者做其他一些有害于網絡的事情,因為邪派黑客所從事的事情違背了黑客守則》所以他真正的名字叫 “ 駭客 ” Cracker 而非 “ 黑客 ” Hacker 也就是平時經常聽說的黑客 ” Cacker 和 “ 紅客 ” Hacker
最初的學習內容都將是本部分所涉及的內容,而且掌握的基本技能也都是一樣的即便日后他各自走上了不同的道路,但是所做的事情也差不多,只不過動身點和目的不一樣而已。
黑客的行為主要有以下幾種:
1、學習技術:
互聯網上的新技術一旦出現,黑客就必須立刻學習,并用最短的時間掌握這項技術,這里所說的掌握并不是一般的了解,而是閱讀有關的“協議”(rfc)、深入了解此技術的機理,否則一旦停止學習,那么依靠他以前掌握的內容,并不能維持他的“黑客身份”超過一年。
初級黑客要學習的知識是比較困難的,因為他們沒有基礎,所以學習起來要接觸非常多的基本內容,然而今天的互聯網給讀者帶來了很多的信息,這就需要初級學習者進行選擇:太深的內容可能會給學習帶來困難;太“花哨”的內容又對學習黑客沒有用處。所以初學者不能貪多,應該盡量尋找一本書和自己的完整教材、循序漸進的進行學習。
2、偽裝自己:
黑客的一舉一動都會被服務器記錄下來,所以黑客必須偽裝自己使得對方無法辨別其真實身份,這需要有熟練的技巧,用來偽裝自己的IP地址、使用跳板逃避跟蹤、清理記錄擾亂對方線索、巧妙躲開防火墻等。
偽裝是需要非常過硬的基本功才能實現的,這對于初學者來說成的上“大成境界”了,也就是說初學者不可能用短時間學會偽裝,所以我并不鼓勵初學者利用自己學習的知識對網絡進行攻擊,否則一旦自己的行跡敗露,最終害的害是自己。
如果有朝一日你成為了真正的黑客,我也同樣不贊成你對網絡進行攻擊,畢竟黑客的成長是一種學習,而不是一種犯罪。
3、發現漏洞:
漏洞對黑客來說是最重要的信息,黑客要經常學習別人發現的漏洞,并努力自己尋找未知漏洞,并從海量的漏洞中尋找有價值的、可被利用的漏洞進行試驗,當然他們最終的目的是通過漏洞進行破壞或著修補上這個漏洞。
黑客對尋找漏洞的執著是常人難以想象的,他們的口號說“打破權威”,從一次又一次的黑客實踐中,黑客也用自己的實際行動向世人印證了這一點——世界上沒有“不存在漏洞”的程序。在黑客眼中,所謂的“天衣無縫”不過是“沒有找到”而已。
4、利用漏洞:
對于正派黑客來說,漏洞要被修補;對于邪派黑客來說,漏洞要用來搞破壞。而他們的基本前提是“利用漏洞”,黑客利用漏洞可以做下面的事情:
1)獲得系統信息:有些漏洞可以泄漏系統信息,暴露敏感資料,從而進一步入侵系統;
2)入侵系統:通過漏洞進入系統內部,或取得服務器上的內部資料、或完全掌管服務器;
3)尋找下一個目標:一個勝利意味著下一個目標的出現,黑客應該充分利用自己已經掌管的服務器作為工具,尋找并入侵下一個系統;
4)做一些好事:正派黑客在完成上面的工作后,就會修復漏洞或者通知系統管理員,做出一些維護網絡安全的事情;
5)做一些壞事:邪派黑客在完成上面的工作后,會判斷服務器是否還有利用價值。如果有利用價值,他們會在服務器上植入木馬或者后門,便于下一次來訪;而對沒有利用價值的服務器他們決不留情,系統崩潰會讓他們感到無限的快感!
二、黑客應掌握的基本技能
從這一節開始,我們就真正踏上學習黑客的道路了,首先要介紹的是作為一名初級黑客所必須掌握的基本技能,學習這可以通過這一節的閱讀了解到黑客并不神秘,而且學習起來很容易上手。為了保證初學者對黑客的興趣,所以本書采取了循環式進度,也就是說每一章節的內容都是獨立、全面的,學習者只有完整的學習過一章的內容,才能夠進而學習下一章的內容。
1、了解一定量的英文:
學習英文對于黑客來說非常重要,因為現在大多數資料和教程都是英文版本,而且有關黑客的新聞也是從國外過來的,一個漏洞從發現到出現中文介紹,需要大約一個星期的時間,在這段時間內網絡管理員就已經有足夠的時間修補漏洞了,所以當我們看到中文介紹的時候,這個漏洞可能早就已經不存在了。因此學習黑客從一開始就要盡量閱讀英文資料、使用英文軟件、并且及時關注國外著名的網絡安全網站。
2、學會基本軟件的使用:
這里所說的基本軟件是指兩個內容:一個是我們日常使用的各種電腦常用命令,例如ftp、ping、net等;另一方面還要學會有關黑客工具的使用,這主要包括端口掃描器、漏洞掃描器、信息截獲工具和密碼破解工具等。因為這些軟件品種多,功能各不相同,所以本書在后面將會介紹幾款流行的軟件使用方法,學習者在掌握其基本原理以后,既可以選擇適合自己的,也可以在“第二部分”中找到有關軟件的開發指南,編寫自己的黑客工具。
3、初步了解網絡協議和工作原理:
所謂“初步了解”就是“按照自己的理解方式”弄明白網絡的工作原理,因為協議涉及的知識多且復雜,所以如果在一開始就進行深入研究,勢必會大大挫傷學習積極性。在這里我建議學習者初步了解有關tcp/ip協議,尤其是瀏覽網頁的時候網絡是如何傳遞信息、客戶端瀏覽器如何申請“握手信息”、服務器端如何“應答握手信息”并“接受請求”等內容,此部分內容將會在后面的章節中進行具體介紹。
4、熟悉幾種流行的編程語言和腳本:
同上面所述一樣,這里也不要求學習者進行深入學習,只要能夠看懂有關語言、知道程序執行結果就可以了。建議學習者初步學習C語言、asp和cgi腳本語言,另外對于htm超文本語言和php、java等做基本了解,主要學習這些語言中的“變量”和“數組”部分,因為語言之間存在內在聯系,所以只要熟練掌握其中一們,其他語言也可以一脈相同,建議學習C語言和htm超文本語言。
5、熟悉網絡應用程序:
網絡應用程序包括各種服務器軟件后臺程序,例如:wuftp、Apache等服務器后臺;還有網上流行的各種論壇、電子社區。有條件的學習者最好將自己的電腦做成服務器,然后安裝并運行一些論壇代碼,經過一番嘗試之后,將會感性的弄清楚網絡工作原理,這比依靠理論學習要容易許多,能夠達到事半功倍的效果!
三、網絡安全術語解釋
1、協議:
網絡是一個信息交換的場所,所有接入網絡的計算機都可以通過彼此之間的物理連設備行信息交換,這種物理設備包括最常見的電纜、光纜、無線WAP和微波等,但是單純擁有這些物理設備并不能實現信息的交換,這就好像人類的身體不能缺少大腦的支配一樣,信息交換還要具備軟件環境,這種“軟件環境”是人類實現規定好的一些規則,被稱作“協議”,有了協議,不同的電腦可以遵照相同的協議使用物理設備,并且不會造成相互之間的“不理解”。
這種協議很類似于“摩爾斯電碼”,簡單的一點一橫,經過排列可以有萬般變化,但是假如沒有“對照表”,誰也無法理解一分雜亂無章的電碼所表述的內容是什么。電腦也是一樣,它們通過各種預先規定的協議完成不同的使命,例如RFC1459協議可以實現IRC服務器與客戶端電腦的通信。因此無論是黑客還是網絡管理員,都必須通過學習協議達到了解網絡運作機理的目的。
每一個協議都是經過多年修改延續使用至今的,新產生的協議也大多是在基層協議基礎上建立的,因而協議相對來說具有較高的安全機制,黑客很難發現協議中存在的安全問題直接入手進行網絡攻擊。但是對于某些新型協議,因為出現時間短、考慮欠周到,也可能會因安全問題而被黑客利用。
對于網絡協議的討論,更多人則認為:現今使用的基層協議在設計之初就存在安全隱患,因而無論網絡進行什么樣的改動,只要現今這種網絡體系不進行根本變革,從根本上就無法杜絕網絡黑客的出現。但是這種黑客機能已經超出了本書的范圍,因而不在這里詳細介紹。
2、服務器與客戶端:
最簡單的網絡服務形式是:若干臺電腦做為客戶端,使用一臺電腦當作服務器,每一個客戶端都具有向服務器提出請求的能力,而后由服務器應答并完成請求的動作,最后服務器會將執行結果返回給客戶端電腦。這樣的協議很多。例如我們平時接觸的電子郵件服務器、網站服務器、聊天室服務器等都屬于這種類型。另外還有一種連接方式,它不需要服務器的支持,而是直接將兩個客戶端電腦進行連接,也就是說每一臺電腦都既是服務器、又是客戶端,它們之間具有相同的功能,對等的完成連接和信息交換工作。例如DCC傳輸協議即屬于此種類型。
從此看出,客戶端和服務器分別是各種協議中規定的請求申請電腦和應答電腦。作為一般的上網用戶,都是操作著自己的電腦(客戶端),別且向網絡服務器發出常規請求完成諸如瀏覽網頁、收發電子郵件等動作的,而對于黑客來說則是通過自己的電腦(客戶端)對其他電腦(有可能是客戶端,也有可能是服務器)進行攻擊,以達到入侵、破壞、竊取信息的目的。
3、系統與系統環境:
電腦要運作必須安裝操作系統,如今流行的操作系統主要由UNIX、Linux、Mac、BSD、Windows2000、Windows95/98/Me、Windows NT等,這些操作系統各自獨立運行,它們有自己的文件管理、內存管理、進程管理等機制,在網絡上,這些不同的操作系統既可以作為服務器、也可以作為客戶端被使用者操作,它們之間通過“協議”來完成信息的交換工作。
不同的操作系統配合不同的應用程序就構成了系統環境,例如Linux系統配合Apache軟件可以將電腦構設成一臺網站服務器,其他使用客戶端的電腦可以使用瀏覽器來獲得網站服務器上供瀏覽者閱讀的文本信息;再如Windows2000配合Ftpd軟件可以將電腦構設成一臺文件服務器,通過遠程ftp登陸可以獲得系統上的各種文件資源等。
4、IP地址和端口:
我們上網,可能會同時瀏覽網頁、收發電子郵件、進行語音聊天……如此多的網絡服務項目,都是通過不同的協議完成的,然而網絡如此之大,我們的電腦怎么能夠找到服務項目所需要的電腦?如何在一臺電腦上同時完成如此多的工作的呢?這里就要介紹到IP地址了。
每一臺上網的電腦都具有獨一無二的IP地址,這個地址類似于生活中人們的家庭地址,通過網絡路由器等多種物理設備(無需初級學習者理解),網絡可以完成從一個電腦到另一個電腦之間的信息交換工作,因為他們的IP地址不同,所以不會出現找不到目標的混亂局面。但是黑客可以通過特殊的方法偽造自己電腦的IP地址,這樣當服務器接受到黑客電腦(偽IP地址)的請求后,服務器會將應答信息傳送到偽IP地址上,從而造成網絡的混亂。當然,黑客也可以根據IP地址輕易的找到任何上網者或服務器,進而對他們進行攻擊(想想現實中的入室搶劫),因而如今我們會看到很多關于《如何隱藏自己IP地址》的文章。
接下來我解釋一下上面提到的第二個問題:一臺電腦上為什么能同時使用多種網絡服務。這好像北京城有八個城門一樣,不同的協議體現在不同的網絡服務上,而不同的網絡服務則會在客戶端電腦上開辟不同的端口(城門)來完成它的信息傳送工作。當然,如果一臺網絡服務器同時開放了多種網絡服務,那么它也要開放多個不同的端口(城門)來接納不同的客戶端請求。
網絡上經常聽到的“后門”就是這個意思,黑客通過特殊機能在服務器上開辟了一個網絡服務,這個服務可以用來專門完成黑客的目的,那么服務器上就會被打開一個新的端口來完成這種服務,因為這個端口是供黑客使用的,因而輕易不會被一般上網用戶和網絡管理員發現,即“隱藏的端口”,故“后門”。
每一臺電腦都可以打開65535個端口,因而理論上我們可以開發出至少65535種不同的網絡服務,然而實際上這個數字非常大,網絡經常用到的服務協議不過幾十個,例如瀏覽網頁客戶端和服務端都使用的是80號端口,進行IRC聊天則在服務端使用6667端口、客戶端使用1026端口等。
5、漏洞:
漏洞就是程序中沒有考慮到的情況,例如最簡單的“弱口令”漏洞是指系統管理員忘記屏蔽某些網絡應用程序中的賬號;Perl程序漏洞則可能是由于程序員在設計程序的時候考慮情況不完善出現的“讓程序執行起來不知所措”的代碼段,“溢出”漏洞則屬于當初設計系統或者程序的時候,沒有預先保留出足夠的資源,而在日后使用程序是造成的資源不足;特殊IP包炸彈實際上是程序在分析某些特殊數據的時候出現錯誤等……
總而言之,漏洞就是程序設計上的人為疏忽,這在任何程序中都無法絕對避免,黑客也正是利用種種漏洞對網絡進行攻擊的,本章開始的字眼兒“網絡安全”實際就是“漏洞”的意思。黑客利用漏洞完成各種攻擊是最終的結果,其實真正對黑客的定義就是“尋找漏洞的人”,他們并不是以網絡攻擊為樂趣,而是天天沉迷在閱讀他人的程序并力圖找到其中的漏洞。應該說,從某種程度上講,黑客都是“好人”,他們為了追求完善、建立安全的互聯網才投身此行的,只不過因為有的黑客或者干脆是偽黑客經常利用具有攻擊性的漏洞,近些年人們才對黑客有了畏懼和敵視的心理。
6、加密與解密:
在“協議”的講解中,我提到了“由于網絡設計的基層存在問題……”,簡單的說這一問題是允許所有上網者參與信息共享,因而對某些商業、個人隱私在網絡上的傳送,就會暴露在眾目睽睽之下,我們的信用卡、個人電子郵件等都可以通過監聽或者截獲的方式被他人的到,如何才能讓這些信息安全呢?讀者也許想到了“二戰中”的間諜戰:參戰國家在使用電報的時候,都對代碼進行了加密處理,只有知道了“密碼薄”的接收者,才可以進行譯碼工作。正是這種古老的加密方式,在現代化的網絡上也依然存在它旺盛的生命力,通過加密處理的信息在網絡上傳送,無論誰拿到了這份文件,只要沒有“密碼薄”仍然是白費力氣的。
網絡上最長使用的是設置個人密碼、使用DES加密鎖,這兩種加密方式分別可以完成用戶登陸系統、網站、電子郵件信箱和保護信息包的工作,而黑客所要進行的工作,就是通過漏洞、暴力猜測、加密算法反向應用等方式獲得加密檔案的明文,有人把“魔高一尺、道高一仗”用在這里,的確是在恰當不過了!網絡上的加密方法和需要驗證密碼的系統層出不窮,黑客也在尋找破解這些系統的種種辦法。
可以說,“漏洞”和“解密”是兩個完全不同的黑客領域,對于不同的學習者對他們的偏好,將會直接影響到今后將會成為的黑客類型,因而在二者之間的選擇,應根據個人喜好進行,本書將會側重學習“漏洞”方面的知識。
7、特洛伊木馬:
特洛伊木馬是一個程序,這個程序可以做程序設計者有意設計的未出現過的事情。但是對于特洛伊木馬所做的操作,不論是否用戶了解,都是不被贊同的。根據某些人的認識,病毒是特洛伊木馬的一個特例,即:能夠傳播到其他的程序當中(也就是將這些程序也變成特洛伊木馬)。根據另外的人的理解,不是有意造成任何損壞的病毒不是特洛伊木馬。最終,不論如何定義,許多人僅僅用“特洛伊木馬”來形容不能復制的帶有惡意的程序,以便將特洛伊木馬與病毒區分開。
新聞熱點
疑難解答