當前位置:編程學習大全網 - 編程語言 - 什麽是黑客,什麽IT精英

什麽是黑客,什麽IT精英

什麽是黑客

在日本出版的《新黑客字典》中,對黑客是這樣定義的:“喜歡探索軟件

程序並從中增長了其個人才幹的人。他們不像絕大多數電腦使用者那樣,只規

規矩矩地了解別人指定的狹小的壹部分知識”。在Open Source(開放源代碼)

旗手ERIC。S。RAYMOND的《The New Hacker‘s Dictionary》壹文中,對“Hac

ker”的解釋包括了下面幾類人:

壹:那些喜歡發掘程序系統內部實現細節的人,在這種發掘過程中,他們延

伸並擴展著自己的能力,這和只滿足於學習有限知識的人是截然不同的

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

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

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

五:壹個惡意的愛管閑事的家夥,他試圖在網絡上逡巡溜達的同時發現壹些

敏感的信息

對最後壹類人,ERIC。S。RAYMOND賦予其更恰當的壹個稱謂,那就是“Cra

cker”,有就是我們常說的“駭客”,指那些樂於破壞的家夥。當他們在給這個

社會制造著麻煩和噱頭的同時,就只能被冠以“駭客”之名。正是因為“駭客”

的存在,純正而古老的黑客精神才愈來愈被人曲解,但在真正崇尚黑客精神的壹

類人眼裏,“駭客”與“黑客”是如此的涇渭分明,不可混淆!更有甚者,有些

黑客們說:在黑客界,鬥爭只存在於“黑客”和“駭客”之間!

黑客群體有自己特有的壹套行為準則(the hacker ethic)美國學者史蒂夫

。利維在其著名的《黑客電腦史》中所指出的黑客道德準則(the hacker ethic)

就是對其最深刻的表述:

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

(2),所有的信息都應當是免費***享的

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

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

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

可以看出,“黑客道德準則”正是這個獨特的文化群體壹直心照不宣地遵循

著的“江湖規矩”,以這種“江湖規矩”作為參照,黑客們的行為特征也就清晰

地呈現給我們了!

壹,熱衷挑戰

黑客們多數都有很高的智慧,至少在某些方面表現突出。他們喜歡挑戰自己

的能力,編寫高難度程序,破譯電腦密碼給他們帶來了神氣的魔力,認為運用自

己的智慧和電腦技術去突破某些著名的防衛措施森嚴的站點是壹件極、富刺激性

和挑戰性的冒險活動。

二,崇尚自由

黑客文化首先給人的突出感覺就是壹種自由不羈的的精神。黑客如同夜行的蝙

蝠俠,任意穿梭在網絡空間中。黑客在電腦虛擬世界發揮著自己的極致的自由。

他們隨意登錄在世界各地的網站,完成著現實生活中無法企及的冒險旅程,實現

著個人生命的虛擬體驗。正是這種對自由的體驗,使黑客如同吸毒上癮壹樣,對

網絡入侵樂此不疲

三,主張信息***享

黑客們認為所有的信息都應當是免費的和公開的,認為計算機應該是大眾的工

具,而不應該只為有錢人私有。信息應該是不受限制的,它屬於每個人,擁有知

識或信息是每個人的天賦權利

四,反叛精神

黑客文化帶有某種反叛世界的傾向,黑客們蔑視傳統,反抗權威,痛恨集權,

其行為模式以深深烙上了無政府主義的印記。互聯網的壹個顯著特點是平等和***

享,對於在網絡中存在的許多禁區,黑客們認為是有違網絡特征的,他們希望建

立壹個沒有權威,沒有既定程序的社會,所以他們壹般都喜歡與傳統,權威和集

權做永無休止的鬥爭

五,破壞心理

黑客們要在網絡空間來去自如,蔑視權威,就必然夾帶著某些破壞行動。只有

突破計算機和網絡的防護措施才能隨意登錄站點,只有顛覆權威設置的程序才能

表示反抗權威,也只有摧毀網絡秩序才能達至人人平等的信息***享目標。當然,

由於心理動機不同,不同黑客行為的破壞程度也是有所區別的!

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

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

(2)壹個問題不應該重復地解決兩次

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

(4)自由是美好的,黑客們需要的是自由協作和信息***享,而不是專制和所

謂的權威

(5)態度並不能成為能力的替代品,想成為黑客,只有態度是不夠的,更重

要的是,還在於努力工作,傾心奉獻,鉆研和實踐!

言語

我寫這個並不是因為我已經厭倦了壹遍又壹遍地回答同樣的問題,而是考慮到這確實是壹個有意義

的問題,其實很多人(90%)確實需要問這個問題而沒有問!

我被問了很多次有關安全領域的問題,比如,什麽編程語言妳最推崇?應該讀什麽書作為開始?總

而言之,就是如何安全領域內成為壹個有影響的人。既然我的答案和壹般的答案有所不同,我打算把我

的看法說出來!

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

從哪裏開始?

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

我的觀點可能和壹般的看法不同,如果妳剛剛起步,我建議妳不要從Bugtrap,Technotronic,Roo

tshell等站點開始。沒錯!不要從那裏開始(盡管它們是很好的站點,而且我的意思並不是說不要去訪

問這些站點)原因非常簡單。如果妳認為妳通曉“安全”,就是知道最新的漏洞,到頭來妳將會發現自

己壹無所獲

我同意,知道什麽地方有漏洞是十分必要的,但是這些並不能夠為妳的高手之路打下堅實的基礎。

比如,妳知道RDS是最新的漏洞,知道如何下載並使用對這個漏洞進行利用的Script工具,知道如何修補

這個漏洞(也許,很多人只知道如何攻擊,並不知道如何防範),可是,3個月後,補丁漫天飛舞,這個

漏洞已經不存在了。。。。。現在妳的那些知識還有什麽用?而且妳可能根本沒有理解對漏洞的分析!

妳應該學習的知識是什麽?是分析?還是攻擊手段?

這是我想要再次強調的,人們可能沒有註意,已經有很多人認為他們只要知道最新的漏洞就是安全QQ:9750406

專家,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是幹什麽的了!

編程語言

在所有最近被提及的問題中,最唱聽到的就是:“妳認為應該學習什麽編程語言”

我想,這要看具體情況了,如妳花費多少時間來學習?妳想用這種語言來做什麽QQ:9750406

事?想用多長時間來完成壹個程序?這個程序將完成多復雜的任務?

以下有幾個選項:

*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的書都非常耐讀,找壹個妳感興趣的領域專心去

鉆研吧!

遠程聯線

遠程聯線是壹個不可思議的工具, 它讓您超越時空壹般的使用遠端的

電腦系統。有了遠程聯線, 電腦軟硬體資源的分享變得很有效率, 打個比

喻來說, 您可以連線載入位於某處的超級電腦(假設您有存取權), 做天體

模擬運算, 當結果迅速的產生時, 您可以將資料傳送到另壹部圖形模擬工

作站, 由那裏產生壹份實體模擬圖。在這例子中, 您先後用到了壹部超級

電腦以及壹部圖形處理工作站, 而您雙手真正接觸到的, 很可能是壹部位

於實驗室的個人電腦(PC), 可是其他這兩臺電腦可能在什麼地方也不知道!

是的, 您壹點也無須知道, 通過Internet的遠程聯線工具, 您只需到知道

那裏有您要的CPU時間,以及應用軟件, 如此而已。

遠程聯線可以應用於跨越時空的環境, 當然也同樣適用於辦公室區域

網絡間, 壹臺電腦模擬成另壹臺電腦的終端機而連線載入對方系統。

什麼是Telnet?

也許讀者們聽說過Telnet是壹種通訊協定之壹, 對於這種說法, 您大

可以忽略掉。 讀者不妨簡單的想, Telnet就是讓剛剛以上的說明成為具體

可行的壹個實際的工具, 也就是說, 我們只是單純的視Telnet為壹個執行

遠程聯線的工具之壹, 讓壹臺電腦連線載入另外壹部電腦。

筆者記得前面已經提到很多次, 在網絡上的應用程式多半是采用

Client/Server模式, 用中文來說, 也就是壹定有壹端是請求端, 請求端

執行Telnet請求程式。在主機這壹端則有裝置有伺服程式來接受連線請求

,不過在多半的情況, 主機端則Client與Server兩者都有。

遠程聯線的使用程序與您平常在本地通過電話線或任何其他方式載入

壹部主機並沒有很大不壹樣, 您在對方主機壹定要有壹個私人使用帳號,

以及您的通行密碼, 這樣子您才有辦法連線進入該主機系統。細節上請參

考下面的示意。另外, 在Internet上, 有相當多的各式各樣服務系統也是

通過這方式來提供服務, 其中決大部分是免費的服務, 像是Hytelnet、BBS

、Gopher及Archie等等就是, 這類系統通常開放有公用帳號, 且無須使用

密碼。

Telnet在功能上, 是模擬成遠端壹部電腦系統的終端機, 通過網絡連

線載入該電腦系統。假如您實驗室中有跑DOS的個人電腦, 該電腦也已經連

結上校園網絡, 您可以請人幫您裝設壹套NCSA Telnet軟件, 之後您就可以

做筆者以上所介紹的這些不可思議的事情 (筆者壹直都沒有吹牛:-) )。

NCSA Telnet是專門為DOS設計的壹個請求程式, 至於在Unix機器上, 您就

無須擔心, 因為Unix是網絡的天生好手, 它壹出廠就已經具備有Telnet這

東西, 而且通常是請求程序與服務程序同時具備。

□ 二. □例:遠程聯線遠端某個主機系統

┌——————————————————————————————————————————┐

│ $ telnet jet.ncic1.ac.cn ← 連線 │

│ Trying 159.226.43.26... │

│ Connected to 159.226.43.26 │

│ Escape character is ‘^]‘. │

│ │

│ SunOS UNIX (sparc4) (連線成功) │

│ │

│ login: feng ←輸入賬號

password:******* ←輸入密碼

│ Last login: Thu Dec 30 11:37:17 from 159.226.43.45 │

│ SunOS Release 4.1.1 (sparc15) #1: Tue Nov 12 05:15:31 CST 1996 │

└——————————————————————————————————————————┘

遠程聯線就是這麼簡單, 上面的操作就是壹個典型遠程聯線的應用,

我們應用遠程聯線的功能,來取用遠端某壹臺主機系統提供的某某公

***服務系統, 至於很多商業性服務系統也可以用這方式來連線進入。

在Internet, 我們可以發現很多有趣的服務系統, 比方說,

假如您喜歡下棋, 您也找得到壹些圍棋服務系統, 利用這系統您可以與另

外壹個人下圍棋 ( 註意是對手是「人」, 而您可能不知道對手人在地球的

那個角落, 妙哉! ) , 其他像是網絡遊戲系統(比方MUD)您有時間也可以壹

試。其他的服務系統像是BBS、IRC及Gopher等等也可以通過Telnet來取得

服務。

□ 三. Telnet、Tn3270 淺介

遠程聯線時, 您只須知道幾個Telnet的指令, 大抵如何連線, 如何中

途執行本端指令 (您自己主機這壹端) , 如何結束連線及萬壹不得已時使

用的中斷連線等等。Telnet的使用並沒有像FTP有很多獨特的操作指令。

不論在DOS或Unix環境, Telnet 都是個非常容易的指令, 您幾乎不

需要任何學習, 您該知道的頂多只是壹開始的連線動作, 以及最後要退出

對方系統時的操作程序, 以下筆者只介紹兩個指令:

Unix下的telnet與tn3270在操作上幾乎是壹樣的, 所不同者, 只因為

所連線對方系統並不壹樣, 所以操作程序稍稍有異, 所以您要註意的只是,

「遵照」對方系統的要求程序來中斷連線即可。舉例來說, 您用tn3270連

線IBM VM系統時, 「logoff」 (大小寫不拘) 就是您結束連線的指令, 您

除非不得已, 不要用Unix〃kill〃指令來結束連線。

在Unix下, 無論telnet或 tn3270, 您都可以按CTRL-] (CTRL 鍵及]

鍵同時按, 有時得按兩次 ) 暫時回到 telnet/tn3270 環境, 這時您可

以執行telnet/tn3270本身的指令, 會出現下面畫面。

┌——————————————————————————————————————————┐

│ telnet> ? ← ? 符號求助 │

│ Commands may be abbreviated. Commands are: │

│ │

│ close close current connection │

│ display display operating parameters │

│ mode try to enter line-by-line or character-at-a-time mode │

│ open connect to a site │

│ quit exit telnet │

│ send transmit special characters (‘send ?‘ for more) │

│ set set operating parameters (‘set ?‘ for more) │

│ status print status information │

│ toggle toggle operating parameters (‘toggle ?‘ for more) │

│ z suspend telnet │

│ ? print help information │

│ telnet> │

│ │

│ toggle toggle operating parameters (‘toggle ?‘ for more) │

│ z suspend telnet │

│ ? print help information │

│ telnet> status ← 查看目前連線狀況 │

│ No connection. │

│ Escape character is ‘^]‘. │

│ telnet> z ← 暫時回到本地的shell, 把連線作業放在背景 │

│ │

│ [1] + Stopped telnet │

│ [^C] interrupt. │

│ [^U] kill. │

│ [^\] quit. │

│ [^D] eof. │

│ │

│ $ fg ← 將連線切回前臺 (回到telnet) │

│ telnet │

│ │

│ telnet> q ← 中斷連線 (不被鼓勵使用) │

│ $ │

└——————————————————————————————————————————┘

另外, 從telnet回到連線, 只須在telnet> 提示符號下按鍵即

可。以上說明同樣應用於tn3270, 這裏筆者不另外說明。

最後, 筆者只能告訴您, Telnet本身非常容易操作及了解, 這是為什

麼本節沒有舉很多例子。而 Telnet 所能連線的系統才是您所要認識的,

Telnet 可以說只是壹個橋梁而已, 您行走過該橋時, 大可不知道該橋是那

些工匠或用那些材料造的。

□ 四. Unix rlogin介紹

rlogin是Unix主機間壹個遠程聯線工具程序, rlogin最大的賣點可能

是它的8-bit clean連線方式, 也就是說, 萬壹您想載入遠端壹部Unix系統

, 且使用圖形操作界面(比方像中文及圖形視窗環境等等), 若您的Telnet

無法提供8-bit clean能力, 您就可以選擇rlogin。

$ rlogin 159.226.43.26 -l feng -8 ← 遠程聯線

fengs Password: ***** ← 該系統詢問通行密碼讀者們可以用〃man rlogin〃指令

查詢到更詳細的介紹。

  • 上一篇:71歲日本老奶奶打扮,在街上多次被異性搭訕。妳怎麽想呢?
  • 下一篇:安徽理工大學3D創新設計協會推薦嗎
  • copyright 2024編程學習大全網