icmp協議篇1
要知道這其中的奧秘,我們有必要來看看ping命令的工作過程到底是怎么樣的。
假定主機a的ip地址是192.168.1.1,主機b的ip地址是192.168.1.2,都在同一子網內,則當你在主機a上運行“ping 192.168.1.2”后,都發生了些什么呢?
首先,ping命令會構建一個固定格式的icmp請求數據包,然后由icmp協議將這個數據包連同地址“192.168.1.2”一起交給ip層協議(和icmp一樣,實際上是一組后臺運行的進程),ip層協議將以地址“192.168.1.2”作為目的地址,本機ip地址作為源地址,加上一些其他的控制信息,構建一個ip數據包,并在一個映射表中查找出ip地址192.168.1.2所對應的物理地址(也叫mac地址,熟悉網卡配置的朋友不會陌生,這是數據鏈路層協議構建數據鏈路層的傳輸單元??幀所必需的),一并交給數據鏈路層。后者構建一個數據幀,目的地址是ip層傳過來的物理地址,源地址則是本機的物理地址,還要附加上一些控制信息,依據以太網的介質訪問規則,將它們傳送出去。
主機b收到這個數據幀后,先檢查它的目的地址,并和本機的物理地址對比,如符合,則接收;否則丟棄。接收后檢查該數據幀,將ip數據包從幀中提取出來,交給本機的ip層協議。同樣,ip層檢查后,將有用的信息提取后交給icmp協議,后者處理后,馬上構建一個icmp應答包,發送給主機a,其過程和主機a發送icmp請求包到主機b一模一樣。
從ping的工作過程,我們可以知道,主機a收到了主機b的一個應答包,說明兩臺主機之間的去、回通路均正常。也就是說,無論從主機a到主機b,還是從主機b到主機a,都是正常的。那么,是什么原因引起只能單方向ping通的呢?
一、安裝了個人防火墻
在共享上網的機器中,出于安全考慮,大部分作為服務器的主機都安裝了個人防火墻軟件,而其他作為客戶機的機器則一般不安裝。幾乎所有的個人防火墻軟件,默認情況下是不允許其他機器ping本機的。一般的做法是將來自外部的icmp請求報文濾掉,但它卻對本機出去的icmp請求報文,以及來自外部的icmp應答報文不加任何限制。這樣,從本機ping其他機器時,如果網絡正常,就沒有問題。但如果從其他機器ping這臺機器,即使網絡一切正常,也會出現“超時無應答”的錯誤。
大部分的單方向ping通現象源于此。解決的辦法也很簡單,根據你自己所用的不同類型的防火墻,調整相應的設置即可。
二、錯誤設置ip地址
正常情況下,一臺主機應該有一個網卡,一個ip地址,或多個網卡,多個ip地址(這些地址一定要處于不同的ip子網)。但對于在公共場所使用的電腦,特別是網吧,人多手雜,其中不泛有“探索者”。曾有一次兩臺電腦也出現了這種單方向ping通的情況,經過仔細檢查,發現其中一臺電腦的“撥號網絡適配器”(相當于一塊軟網卡)的tcp/ip設置中,設置了一個與網卡ip地址處于同一子網的ip地址,這樣,在ip層協議看來,這臺主機就有兩個不同的接口處于同一網段內。當從這臺主機ping其他的機器時,會存在這樣的問題:
(1)主機不知道將數據包發到哪個網絡接口,因為有兩個網絡接口都連接在同一網段;
icmp協議篇2
關鍵詞:黑客攻擊;網絡協議;ICMPIP
一、黑客基礎知識
不難想象,本文可選擇的攻擊類型范圍很廣。我之所以選取本文所討論的幾種特定攻擊,是因為它們不需要太多關于所涉及協議的知識,但仍然能有效地說明了攻擊是如何執行的、攻擊實際上是多么簡單(一旦您知道了詳細信息)以及攻擊者所需的資源(計算和網絡)是多么有限。盡管不可能在本文中涵蓋關于黑客攻擊的整個主題,但我已盡可能簡化基本原理,而仍然盡量多地提供必要信息,以便您理解所描述的攻擊。
二、攻擊的種類。拒絕服務攻擊:通常,黑客瞄準特定系統,闖入系統以便將其用于特定用途。那些系統的主機安全性經常會阻止攻擊者獲得對主機的控制權。但進行拒絕服務攻擊時,攻擊者不必獲得對系統的控制權。其目標只是使系統或網絡過載,這樣它們就無法繼續提供服務了。拒絕服務攻擊可以有不同的目標,包括帶寬消耗(bandwidth consumption)和資源缺乏(resource starvation)。
三、分析選定的網絡攻擊
(一)協議
本段討論了針對網際控制報文協議(ICMP)和傳輸控制協議(TCP)上的攻擊,這兩個協議都屬于網際協議(IP)系列。在深入研究關于這些協議的詳細信息之前,我打算先在適合于這些協議的環境中討論它們。
網際控制報文協議(ICMP)是IP的組成部分,但它使用某些IP服務。ICMP提供服務,使主機能夠彼此交流控制信息。ICMP由IP和一些更高級別的協議使用,如傳輸控制協議(TCP)。
傳輸控制協議(TCP)是本文中討論的第三個重要協議。TCP的功能比IP更進一步,并提供兩個重要特性:連接和服務質量。這意味著您可以在兩臺主機之間開一個虛擬通道,通過這個通道,使得所發送的包的順序及其實際傳遞都得到保障。
接下來更高的一級是應用層協議,如Telnet和SMTP。它們都使用由TCP提供的服務。例如,當您用Telnet連接到主機時,打開一個連接,并且您希望所有輸入這個Telnet會話的數據都以正確的順序發送到接收主機。
(二)理解IP
因為IP提供的是無連接、不可靠、最高效的(best-effort)數據報傳遞服務,所以IP的使用范圍多少受到了限制。但是,它提供兩個基本功能:尋址和分段。地址(在IP數據報頭中封裝為源和目的地地址)用來將數據報傳輸到其目的地,這個過程稱為路由。有兩種基本情況:
接收主機和發送主機位于同一子網,這種情況下數據報將被直接從發送方發送到接收方。
接收主機位于不同的子網,這種情況下發送主機將把數據報轉發到網關(連接兩個子網的IP主機),然后,如果目的地主機在一個與網關相連的子網中,則網關會嘗試將數據報傳遞到目的地主機。如果目的地主機不在與網關相連的子網中,網關將會把數據報轉發到另一個網關。這個過程將反復進行,直到能夠將數據報傳遞到其目的地主機為止。
既然我已經介紹了基礎知識,現在可以討論個別協議了。在以下幾節中,您將找到關于ICMP和TCP的更詳細的信息以及一些使用這些協議的有趣的攻擊。
(三)使用ICMP
超時消息:每個IP數據報頭中都包含一個字段―稱為“生存時間字段”―它指出數據報在被丟棄之前還能在因特網上保持多久。數據報在因特網上保持的時間以跳躍點(hop)衡量,其中一個跳躍點表示數據報通向目的地節點路徑上的一個網關。當數據報經過網關轉發時,它就將生存時間字段中的值減一。如果處理數據報的網關測定該數據報IP頭中的生存時間字段為0,則丟棄該數據報并用超時消息通知源主機。
回應請求和回應應答消息:如果主機A想知道主機B是否是活動的,則主機A會向主機B發送一條ICMP回應請求消息。主機B將用ICMP回應應答消息來應答,以表明自己是活動的。這條消息就是眾所周知的ping包。
以上這些并不是ICMP所使用的全部消息類型,但它們能使您大致了解ICMP的用途。接下來我將向您介紹兩種ICMP攻擊。
目的地不可到達攻擊
類別:拒絕服務攻擊
描述:如上所述,ICMP目的地不可到達消息向嘗試轉發消息的網關提供了一種工具,用來通知發送方:因為在數據報目的地地址中指定的主機不可到達,所以無法傳遞該消息。
如果入侵者獲得了網絡10.1.0.0中一臺主機的訪問權,那么,他可以廣播一條“目的地不可到達消息”,聲明網關G對于他所在網絡的所有主機是不可到達的。這將使網關G和網絡10.2.0.0暫時變得不可用,因而不可能從網絡10.1.0.0向網絡10.2.0.0傳輸任何消息。
這種攻擊背后的動機只是使網絡或服務暫時癱瘓。因為攻擊者不需要功能強大的機器或高速的網絡連接來執行這種攻擊,所以它特別危險。
(四)Smurf攻擊
類別:拒絕服務攻擊
描述:Smurf攻擊是拒絕服務攻擊的一種非??膳碌男问?,因為它具有放大效應。Smurf攻擊利用ICMP回應消息。如上所述,主機A每次向主機B發送回應請求消息時,主機B都會返回回應應答消息以表明自己是活動的。名稱“Smurf攻擊”源自一個名為smurf的利用程序,攻擊者用該程序來執行這種攻擊。
(五)傳輸控制協議(TCP)
在繼續討論攻擊之前,我將更詳細地討論TCP的某些方面,這些知識對于下面討論的攻擊是必需的。尤其是TCP包(稱為段)的結構、如何在主機之間建立TCP連接和如何關閉連接。
(六)TCP包的結構
與IP數據報類似,TCP段包含頭部分、可選(選項)部分和數據部分?,F在,讓我們更仔細地研究一下TCP頭的某些重要字段:
源端口:分配給啟動連接的主機上虛連接的端口號。
目的地端口:目的地端口號。這也由啟動連接的主機分配,因為只有該主機知道自己“想”連接到哪里。例如,如果您打開到特定主機的Telnet連接,則目的地端口將被設置為23。
序列號和確認號:發送方和接收方使用兩個序列號來確保包沒有丟失、沒有重復以及可以在目的地節點以正確順序重新組裝。
標志:這個字段包含六個控制位:
URG:向接收方表明一接收完數據就進行緊急處理。
ACK:表明確認號字段是有意義的。
PSH:表明必須迅速地將數據傳遞到接收方。
RST:表明要立即復位連接。
SYN:在需要同步序列號的情況下設置。
FIN:表明不會再有來自發送方的數據了(也就是說,連接將要關閉)。
以上是TCP頭中的重要字段,下面關于TCP連接的建立和關閉的幾節將使您更好地理解這些字段的用途。
建立和關閉TCP連接。
icmp協議篇3
關鍵詞 遠程OS探測 協議棧指紋 TCP/IP協議
1 引言
探測和識別一個計算機系統在運行什么OS是黑客入侵的重要步驟。如果不知道目標系統在運行什么OS,就很難在目標系統上執行操作,也無法判斷是否存在安全漏洞,更談不上攻擊。
從管理和防范的角度來說,如果能減少被探測時泄漏的信息,就減少了黑客入侵行為的信息來源,使其入侵行為變得相當困難。因此,研究這方面的技術,對于提高系統的安全性和抵抗入侵的能力具有重要的意義。
2 簡單的OS探測技術
在早期,黑客經常采用一些簡單的探測方法來獲取目標系統的信息。如通過telnet標題,ftp的標題和STAT命令,通過HTTP服務程序,DNS ,SNMP等都可以得到很多有用信息。
但是,在長期的入侵和防入侵的斗爭中,通過簡單的手段即可獲得的信息越來越少了。管理員努力地減少通過網絡泄漏的信息,有時還修改OS的代碼,給出虛假的信息。在這種情況下,簡單的方法已經很難奏效了,因此出現了通過網絡協議棧指紋來識別OS的技術。
3 網絡協議棧指紋原理
常用的網絡協議是標準的,因而從理論上講各個操作系統的協議棧應該是相同的。但是,在實踐中,各種操作系統的協議棧的實現存在細微的差異。這些差異稱作網絡協議棧的“指紋”。
對TCP協議族來說,這些差異通常表現在數據包頭的標志字段中。如window size、ACK序號、TTL等的不同取值。通過對這些差別進行歸納和總結,可以比較準確地識別出遠程系統的OS類型。
由于Internet廣泛使用TCP/IP協議族,因此下面的討論主要圍繞TCP/IP來進行。
4 網絡協議棧指紋構成
下面列出了不同OS的網絡協議棧的差異,這些差異可作為協議棧指紋識別的依據。
1) TTL
TTL:Time To Live,即數據包的“存活時間”,表示一個數據包在被丟棄之前可以通過多少躍點(Hop)。不同操作系統的缺省TTL值往往是不同的。
常見操作系統的TTL值:
Windows 9x/NT/2000 Intel 128
Digital Unix 4.0 Alpha 60
Linux 2.2.x Intel 64
Netware 4.11 Intel 128
AIX 4.3.x IBM/RS6000 60
Cisco 12.0 2514 255
Solaris 8 Intel/Sparc 64
…
2) DF位
DF(不分段)位識別:不同OS對DF位有不同的處理方式,有些OS設置DF位,有些不設置DF位;還有一些OS在特定場合設置DF位,在其它場合不設置DF位。
3) Window Size
Window Size:TCP接收(發送)窗口大小。它決定了接收信息的機器在收到多少數據包后發送ACK包。
特定操作系統的缺省Window Size基本是常數,例如,AIX 用0x3F25,Windows、OpenBSD 、FreeBSD用0x402E。
一般地,UNIX的Window Size較大。MSWindows,路由器,交換機等的較小。
4) ACK 序號
不同的OS處理ACK序號時是不同的。如果發送一個FIN|PSH|URG的數據包到一個關閉的TCP 端口,大多數OS會把回應ACK包的序號設置為發送的包的初始序號,而Windows 和一些打印機則會發送序號為初始序號加1的ACK包。
5) ICMP地址屏蔽請求
對于ICMP地址屏蔽請求,有些OS會產生相應的應答,有些則不會。會產生應答的系統有OpenVMS, MSWindows, SUN Solaris等。在這些產生應答的系統中,對分片ICMP地址屏蔽請求的應答又存在差別,可以做進一步的區分。
6) 對FIN包的響應
發送一個只有FIN標志位的TCP數據包給一個打開的端口,Linux等系統不響應;有些系統,例如 MS Windows, CISCO, HP/UX等,發回一個RESET。
7) 虛假標記的SYN包
在SYN包的TCP頭里設置一個未定義的TCP 標記,目標系統在響應時,有的會保持這個標記,有的不保持。還有一些系統在收到這樣的包的時候會復位連接。
8) ISN (初始化序列號)
不同的OS在選擇TCP ISN時采用不同的方法。一些UNIX系統采用傳統的64K遞增方法,較新的Solaris,IRIX,FreeBSD,Digital Unix,Cray等系統采用隨機增量的方法;Linux 2.0,OpenVMS, AIX等系統采用真隨機方法。Windows系統采用一種時間相關的模型。還有一些系統使用常數。如,3Com集線器使用0x803,Apple LaserWriter打印機使用0xC7001。
9) ICMP 錯誤信息
在發送ICMP錯誤信息時,不同的OS有不同的行為。RFC 1812建議限制各種錯誤信息的發送率。有的OS做了限制,而有的沒做。
10) ICMP 消息引用
RFC 規定ICMP錯誤消息可以引用一部分引起錯誤的源消息。
在處理端口不可達消息時,大多數OS送回IP請求頭外加8 字節。Solaris 送回的稍多,Linux 更多。
有些OS會把引起錯誤消息的頭做一些改動再發回來。例如,FreeBSD,OpenBSD,ULTRIX,VAXen等會改變頭的ID 。
這種方法功能很強,甚至可以在目標主機沒有打開任何監聽端口的情況下就識別出Linux和Solaris 。
11) TOS(服務類型)
對于ICMP端口不可達消息,送回包的服務類型(TOS)值也是有差別的。大多數OS是0,而Linux 是0xc0。
12) 分段重組處理
icmp協議篇4
【關鍵詞】蜜罐;指紋匹配;相關函數
1 Honeyd軟件介紹
Honeyd是由Niels Provos創建的一種具有開放源代碼的輕型低交互級別的蜜罐,除了具有蜜罐的共性――引誘攻擊者的攻擊外,它自身的設計特點不但可以使Honeyd更有效的完成任務,還能開發出許多新的應用出來。它可以同時模仿400多種不同的操作系統和上千種不同的計算機。
Honeyd有如下特點:
第一,Honeyd可以同時模仿上百甚至上千個不同的計算機,大部分蜜罐在同一時間僅可以模仿一臺計算機,而Honeyd可以同時呈現上千個不同的IP地址。
第二,可以通過簡單的配置文件對服務進行任意配置,可以對虛擬的主機進行ping操作或者進行traceroute,Honeyd可以根據簡單的配置文件對虛擬主機的任何服務進行任意的配置,它甚至可以作為其他主機的。
第三,可以在TCP/IP層模仿操作系統,這就意味著如果有人闖入用戶的蜜罐時,服務和TCP/IP都會模擬操作系統做出各種響應。當前,還沒有任何其他的蜜罐具有這種功能,可以完成的工作包括虛擬nmap和xprobe,調節分配重組策略以及調節FIN掃描策略。
第四,可以模擬任何路由拓撲結構,可以配置等待時間和丟包率。
第五,作為一種開放源代碼的工具,Honeyd可以免費使用,同時也迅速成為了很多安全組織的開發源代碼的一部分。
2 Honeyd邏輯結構
Honeyd結構由以下幾個部件組成:配置數據庫,中心數據包分配器,協議管理器,服務處理單元,特征引擎,可選的路由器部分。Honeyd的邏輯結構如圖1所示:
圖1 Honeyd的邏輯結構
各部分的功能分別為:
路由器:路由數據包到達某個虛擬蜜罐所在的地址,會產生三種情況:沒有找到目的地址而丟棄數據包;沒有找到目的地址,但是可以把數據包交付給下一個路由器;可以直接把數據包交付給目的地址。路由是一個可選擇的邏輯部件。
數據包分配器:該邏輯部件核查IP數據包的長度,對IP數據包進行正確性檢查,核實確認序列號。分配器只對協議管理器分配三種數據包:ICMP、UDP、TCP。其他協議的數據包會被丟棄并且不做任何記錄。
協議管理器:它包括ICMP/UDP/TCP協議管理和服務處理單元。ICMP協議管理支持ICMP請求。默認的,所有的蜜罐配置都響應回射請求和處理目標主機不可達信息;TCP和UDP協議管理器和服務處理單元能夠對外建立特定服務的連接。服務的行為完全依賴于外部應用。TCP協議管理器能夠很好的支持三次握手的建立和FIN或RST的拆卸,但是還不能很好地支持窗口管理和擁塞控制。
特征引擎:將對發送的所有數據包進行指紋匹配,以便在指紋識別工具前能很好地隱蔽。
配置數據庫:它當中包含了一切配置參數,例如虛擬蜜罐的IP地址、默認的ICMP響應,虛擬鏈路的網絡屬性,指紋數據等。
3 關鍵技術
Honeyd能夠虛擬蜜罐,并且能夠利用這些虛擬的蜜罐構建松散的虛擬蜜罐網絡或有層次結構的虛擬蜜罐網絡,這些虛擬的蜜罐網絡中甚至可以包含真實的主機。然而Honeyd要構建虛擬的蜜罐網絡需要面對這樣一些問題:首先是攻擊者利用指紋工具對連接的蜜罐進行識別時該怎么辦;其次,虛擬出的蜜罐網絡如果面對網絡拓撲發現工具時怎么辦。
Honeyd采用了兩種關鍵的技術來欺騙攻擊者,一種是指紋匹配技術,另一種是虛擬蜜罐網絡技術。
4 指紋匹配
為了在被探測的時候表現得跟真實的系統一樣,虛擬蜜罐要模擬給定操作系統的網絡棧行為,這是虛擬蜜罐的一部分特征。不同的特征能被設計成不同的虛擬蜜罐。特征引擎通過改變協議數據包頭部來匹配特定的操作系統,從而表現出相應的網絡協議棧行為,這一過程成為指紋匹配。
Honeyd運用NMAP的指紋數據庫作為TCP和UDP行為特征的的參考;用XPROBE指紋數據庫作為ICMP行為的參考。
下面用NMAP提供的指紋信息來改變蜜罐網絡棧的特征為例來進行說明:
Fingerprint IRIX 6.5.15m on SGI 02
Tseq(Class=TD%gcd=
T1(DF=N%W=EF2A%ACK=S++%Flags=AS%Ops=MNWNNTNNM)
T2(Resp=Y%DF=N%W=O%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=N%W=EF2A%ACK=O%Flags=A%Ops=NNT)
T4(DF=N%W=O%ACK=O%FlagsR%Ops=)
T5(DF=N%W=O%ACK=S++%Flags=AR%Ops=)
T6(DF=N%W=O%ACK=O%Flags=R%Ops=)
T7(DFN%W=O%ACK=S%Flags=R%Ops=)
PU(Resp=n)
T1測試設置了SYN和ECE TCP flags;T5測試僅設置了SYN TCP flags。后面7個測試決定了數據包到達開放的或關閉的端口的網絡棧行為。最后一個分析ICMP對關閉的UDP端口的響應。
Honeyd保持每一個蜜罐的可靠性。包括產生ISN信息可靠性,蜜罐的初始化時間,當前IP數據包的確認號的可靠性。保持狀態有利于我們在指紋修改后發送的數據包產生后續的ISN。
滑動窗口在不同的環境下表現出來的大小同樣也會成為攻擊者進行識別的一部分。當Honeyd為一個新建的連接發送一個數據包時,它會用NMAP指紋去檢測內部窗口的大小,在一個連接建立好以后,Honeyd框架將根據緩沖區中數據的多少調整窗口的大小。
5 指紋匹配相關函數
Honeyd邏輯上的特征引擎是由相關的函數參考配置數據庫中的參數,然后分別對各自的數據包進行指紋處理得到的。這些被處理的數據包主要由TCP數據包、UDP數據包和ICMP數據包。其中tcp _send(),tcp_personality()負責處理TCP數據包的指紋;udp_send()負責處理UDP數據包的指紋;icmp_send()數據包負責處理ICMP數據包的指紋。下面我們重點介紹處理TCP數據包的函數。
tcp_send()負責發送基于tcp協議的數據包,重要的是,它對即將發送的數據包進行改動,修改報頭,使得看上去和對應的操作系統的特征準確地吻合,以達到欺騙的效果。因而此函數只是在通過查詢特征庫后,得到返回的id(ip報頭的標識字段的值),調整其他參數,封裝成ip包發送。
udp_send()函數負責發送基于udp協議的數據包,如同上面的一樣,發送前,必須參考特征庫,修改得當的報頭。
icmp協議篇5
關鍵詞:ICMP;TCP;UDP;路由追蹤
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)18-2pppp-0c
1 背景
網路故障的一般表現是網速變慢或者無法訪問互聯網或內網服務器,在現場進行網絡故障診斷時,往往需要借助各種工具軟件如Sniffer、ping、traceroute等進行逐步排查,最后經過分析,選擇懷疑的網絡節點,然后在局端或現場對懷疑的網絡節點進行各種連通性、替代性測試,方法步驟繁雜,而且往往無法準確診斷。
經過分析,故障診斷的過程,可以使用專用的設備,并編寫相應的診斷程序,自動完成網絡故障節點的測試和判斷。
2 算法和設計
當測試節點到達目的網絡位置的鏈路存在問題時,一般可能是:物理鏈路斷開(線纜或節點設備故障);目的地址的相應端口沒有開放,或者中間鏈路經過的設備(交換機,路由器等)禁止了協議或端口;終端設備故障。故,處理流程首先是找到測試節點到達連接服務器節點的路徑,確定經過的網絡節點位置,然后對節點中的各個位置實施連通性測試,最后根據測試結果判斷故障節點位置和原因。
2.1 網絡路由的查詢
該部分的功能類似于Linux系統中提供的命令traceroute,不同的是,該部分功能進行路由診斷依賴的協議不僅僅是ICMP。
ICMP的原理是鏈路上的節點設備都要在轉發該 ICMP 回顯請求報文之前將報文頭部的 TTL 值減 1,當報文的 TTL 值減少到 0 時,節點設備向源發回 ICMP 超時信息。該診斷實用程序通過向目的地發送具有不同生存時間 (TTL) 的 ICMP報文,確定至目的地的路由。通過發送 TTL 為 1 的第一個回顯報文并且在隨后的發送中每次將 TTL 值加 1,直到目標響應或達到最大 TTL 值,可以確定鏈路經過的路由。通過檢查鏈路中間節點設備發回的 ICMP 超時信息,可以確定故障節點。
如果使用ICMP協議無法完成測試,則改為使用UDP協議和TCP協議分別進行路由偵測。源發出UDP數據包,源端口使用隨機的大于32768的高段端口號,目的端口從33434開始依此遞增,直至33434+29,同時TTL從1開始依此遞增,直至1+29=30。節點設備送回的 ICMP超時報文,使得源可以偵測到鏈路上每一個節點。
2.2 網絡節點診斷
向節點發送TCP握手信號,如果該節點可以通過connect連接成功,表示節點可以正常連接,如果回應RST,表示該節點禁止了該端口的訪問,如果該節點長時間不回復SYN,也可以認為該節點禁止端口。
因此,依據上述現象可以很容易判斷當前故障節點――離測試者最近的故障點,可以被認定為當前網絡故障點。
2.3 故障節點位置的判斷策略
如果路由尋找完整,一般能夠找到節點。在所有不回應SYN包或者回應RST包的
節點中,應該是離源最近跳數的節點設備將端口關閉。
如果路由尋找不完整,有可能找不到所找的故障點。如果在找到的n個節點中,只有非最遠離源的一個節點不回應,或回應RST包,則不能確定故障節點;如果是包括最遠離源在內的一個或多個節點不回應或回應RST包,則最右端節點可能為故障節點,但并不能確定在整個路由中的故障節點所在,因為路由不完整。
2.4 不能覆蓋的異常情況
如果使用ICMP和UDP都無法尋找到完整路由,則有可能找不到故障節點,但這種情況非常少,因為根據UDP的測試原理,除非中間節點將大于32768的端口全部封掉,否則都可以得到完整的路由路徑。
3 代碼片段和程序流程
3.1 整體框架代碼
int f_procon_scan_showerr(char *re_info)
{char err_node[16];
inet_ntoa_b(info_scan.node[info_scan.err_num],err_node);
if(err_tcpscan == ERR_PORTSCAN_ROUTE_HALF){
sprintf(re_info,"路由信息不完整,故障點可能是:%s",err_node);
}else if(err_tcpscan == ERR_PORTSCAN_ROUTE_NO){
sprintf(re_info,"未找到達到目的地址的路徑,無法診斷故障");
}else{
sprintf(re_info,"路由信息完整,故障點是:%s",err_node);
}
return OK;
}
static int quitflag=0;
int f_procon_scan_tcp(void)
{char * re_info; /* 測試完后返回的信息 */
int re_find;
int i,rv;
char buf[512];
int numBytes,count;
int on,len;
int ctrlSock;
struct sockaddr_in ctrlAddr;
struct router_node bak_router_node;
sprintf(buf,"正在使用ICMP獲取路由信息...");
server_virtual_display_output(buf,0);
bzero((char *)&info_scan,sizeof(info_scan));
re_find = find_node(0);/*使用ICMP協議*/
if(info_scan.number == 0){/* 沒有正確找到到目的地址的路由信息,嘗試使用udp協議查找*/
sprintf(buf,"正在使用UDP獲取路由信息...");
server_virtual_display_output(buf,0);
bzero((char *)&info_scan,sizeof(info_scan));
re_find = find_node(1);/*使用UDP協議*/
if(info_scan.number == 0){
err_tcpscan = ERR_PORTSCAN_ROUTE_NO;
return OK;
}
}else if(re_find == ERROR){/*獲取不完整路徑,嘗試用udp獲取*/
sprintf(buf,"正在使用UDP獲取路由信息...");
server_virtual_display_output(buf,0);
memcpy(&bak_router_node,&info_scan,sizeof(info_scan));
bzero((char *)&info_scan,sizeof(info_scan));
re_find = find_node(1);/*使用UDP協議*/
if(info_scan.number == 0){/*udp沒有獲取到路徑,則恢復icmp的路徑*/
memcpy(&info_scan,&bak_router_node,sizeof(bak_router_node));
re_find=ERROR;
}else if(re_find == ERROR){/*udp獲取的也是不完整路徑,則進行比較,選最多的*/
if(info_scan.number
memcpy(&info_scan,&bak_router_node,sizeof(bak_router_node));
}
}
}
if(re_find == ERROR){
err_tcpscan = ERR_PORTSCAN_ROUTE_HALF;
}else{
err_tcpscan = ERR_PORTSCAN_ROUTE_OK;
}
quitflag=1;
info_scan.node[info_scan.number].s_addr=self_ip;
for(i=info_scan.number-1;i>=0;i--){
/*創建socket*/
ctrlSock = socket (AF_INET, SOCK_STREAM, 0);
if (ctrlSock < 0){
sprintf(buf,"無法創建socket");
server_virtual_display_output(buf,0);
return (ERROR);
}
/*設置socket為非阻塞模式*/
on=TRUE;
if(ioctl(ctrlSock,FIONBIO,(int)&on)
printf("set socket to no block is error/n");
}
ctrlAddr.sin_family= AF_INET;
ctrlAddr.sin_addr.s_addr = info_scan.node[i].s_addr;
ctrlAddr.sin_port= htons(s_procon_info.port);
if(connect(ctrlSock,(struct sockaddr *)&ctrlAddr, sizeof (ctrlAddr))< 0){
if(!((errno==EINPROGRESS) || (errno==EALREADY))){
shutdown(ctrlSock,2);
close(ctrlSock);
continue;
}
}
rv=server_wait_for_write_timeout(ctrlSock,&quitflag);
if(rv!=0){
shutdown(ctrlSock,2);
close(ctrlSock);
break;
}
shutdown(ctrlSock,2);
close(ctrlSock);
}
if(i
i=0;
}else if(i!=info_scan.number-1){/*不是最后一個不同,則認為就是他了*/
i++;
}else if(err_tcpscan == ERR_PORTSCAN_ROUTE_OK){/*最后一個竟然也是通的,則認為是服務器本身了*/
i++;
}
info_scan.err_num=i;
return OK;
}
3.2 查找路由節點函數
static int find_node(int flag)
{int dst_ip, gateway;
int i,num;
int result = OK;
S_TRACERT_INTERFACES info_tracert;
S_TRACERT_INTERS *intrs;
struct in_addr ip_tra;
dst_ip = s_procon_info.ip_remote.s_addr; /* tracert ip is test ip */
switch(s_netcon_info.mode){
case D_NETCON_MODE_STATIC_IP:
gateway = s_netcon_info.sta_ip.ip_router.s_addr;
self_ip = s_netcon_info.sta_ip.ip_local.s_addr;
break;
case D_NETCON_MODE_DHCPC:
gateway = s_netcon_info.dhcpc.ip_router[0].s_addr;
self_ip = s_netcon_info.dhcpc.ip_local.s_addr;
break;
case D_NETCON_MODE_PPPOEH:
gateway = s_netcon_info.pppoeh.ip_remote.s_addr;
self_ip = s_netcon_info.pppoeh.ip_local.s_addr;
break;
}
f_tracert_routine(dst_ip,gateway,flag); /* exec tracert for find node */
/* 如果tracert未結束,查看是否出現超時找不到路由情況,如果是,終止測試 */
/* 如果tracert停止,看是否追蹤到最終的路由 */
while(!v_tracert_end){
f_tracert_show((char *)&info_tracert); /* 取信息,判斷 */
for(i=0;i
intrs=&info_tracert.tracert_info[i];
ip_tra.s_addr = intrs->ip;
if(intrs->ip == 0){
info_tracert.number -= 1;
f_tracert_end();
result = ERROR;
}
}
taskDelay(sysClkRateGet()/2);
}
f_tracert_show((char *)&info_tracert);
info_scan.number = info_tracert.number;
/* save the node infomation to my struct */
for(i=0;i
intrs=&info_tracert.tracert_info[i];
info_scan.node[i].s_addr = intrs->ip;
}
num = info_scan.number - 1;
if(info_scan.node[num].s_addr == 0){
info_scan.number -= 1;
}
return result;
}
3.3 涉及到的數據結構
保存狀態的結構體。
static struct router_node{
int number; /* 到目的地址能找到的節點總數 如果為0,表示未找到路由*/
int err_num; /* 詢查所有節點,最后一個對端口無回應的節點序號*/
struct in_addr node[31]; /* 用Tracert查到的路由節點地址 */
char f_send[30]; /* 向相應節點成功發送TCP SYN包標志 ,成功置 1*/
charf_recv[30]; /* 成功接收各節點回復包標志,接收到置 1 */
int send_seq[30]; /* 發送的各SYN包的SEQ號,用來判斷接收包 */
unsigned char flag[30]; /* 如果接收返回包,保存返回包的TCP FLAG字段 */
}info_scan;
錯誤狀態如下:
#define ERR_PORTSCAN_ROUTE_NO 0x01
#define ERR_PORTSCAN_ROUTE_OK 0x02
#define ERR_PORTSCAN_ROUTE_HALF 0x03
#define ERR_PORTSCAN_SEND_SYN 0x11 //向網絡節點發送SYN同步包出錯
4 應用案例
現有一計算機終端,無法登錄其開通的網絡多媒體點播服務系統,但可以登錄其它網站,使用網絡測試儀的網絡故障診斷軟件來診斷該案例。
首先,通過用戶界面,填入多媒體點播系統的IP地址(如202.102.249.174)極其端口號(1026),然后點擊測試,診斷軟件首先查找從局域網絡到達202.102.249.174的路由如下:
1
2 *** Request timed out.
3 2 ms 1 ms 1 mshn.kd.ny.adsl [125.42.110.1]
4
5
6
然后,軟件將根據算法,從最后一個節點開始診斷,發現直到hn.kd.ny.adsl時,1026端口的連接測試不能通過,從而確定,問題是因為hn.kd.ny.adsl設備禁止了1026端口。向局端工程師確認,并修改多媒體登錄系統的端口為其它端口(8080),可以登錄,問題解決。
5 后記
使用該算法的網絡測試儀產品已經研制成功,該產品同時具備了ping、sniffer等更多的網絡功能,可以更好的替代網絡維護人員隨聲攜帶的筆記本電腦和其它設備,簡便地進行網絡故障的診斷。
參考文獻:
[1](美)科默(Comer,D.E.),林瑤,蔣慧,等,譯.用TCP/IP進行網際互聯(第1卷):原理、協議與結構.北京:電子工業出版社,2001,5.
[2](美)W.Richard Stevens,范建華,等,譯.TCP/IP詳解.北京:機械工業出版社,2000,4.
[3](美)DonnaL.Harrington,童小林,等,譯.CCNP實戰指南:故障排除.北京:人民郵電出版社,2003,12.
[4](美)史蒂文斯,(美)芬納,(美)魯道夫,楊繼張,譯. UNIX網絡編程.北京:清華大學出版社,2006,1.
收稿日期:2008-03-10
icmp協議篇6
關鍵詞:木馬關鍵技術;動態嵌入技術;反向連接技術
中圖分類號:TP393.08 文獻標識碼:A文章編號:1007-9599 (2011) 10-0000-01
The Implementation of Trojan Key Technology
Wang Delei
(BeiJin LuHang Institute,Beijing101123,China)
Abstract:With the development of internet technology and the popularization of the global information technology has become a major trend.However,in recent years,hackers,technology continues to mature,network information security face a great challenge.This paper describes the dynamics of Trojans embedded technology,connectivity and reverse ICMP Trojan communications technology.
Keywords:Trojan key technology;Dynamic embedding;Reverse connection technology
一、引言
隨著計算機網絡和程序設計技術的普及和發展,木馬程序的編制技術也不斷地普及和發展,目前,世界上有20多萬個黑客網站在介紹一些攻擊方法和攻擊軟件的使用以及系統的漏洞。
二、木馬技術發展狀況
按其在不同階段使用的典型技術可分為以下幾代木馬:第一代,即簡單的密碼竊取、發送等,如“QQ密碼大盜”。第二代木馬在遠程控制技術上有了很大的進步,“冰河”是當時國內木馬的典型代表之一。第三代木馬在數據傳遞技術上又做了不小的改進,出現了ICMP和反彈端口等類型的木馬,利用畸形報文傳遞數據,增加了殺毒軟件查殺木馬的難度。比較典型的是“網絡神偷”。第四代木馬在進程隱藏方面,采用了內核插入式的嵌入方式,利用遠程插入線程技術,嵌入DLL線程,或者掛接API,從而實現木馬程序的隱藏?,F在第五代木馬正在發展中,具有遠程DLL動態入侵、模塊化升級、智能化通信等新特點。
三、木馬關鍵技術的實現
(一)動態嵌入技術的實現。動態嵌入技術是指木馬采用遠程線程技術或HOOK技術注入其他進程的運行空間等方法導致殺毒軟件無法發現木馬的運行痕跡。(二)反向連接技術的實現。反向連接技術是指木馬為了克服服務端在某一端口上偵聽易被發現這一缺點,而采用服務端主動連接,客戶端偵聽的一種技術。這樣用一般的port scanner或者fport就發現不了服務端。這種反彈端口型木馬的典型例子是國產木馬“網絡神偷”。實現時主要的難點有兩個:一個是客戶端IP地址不能確定,服務端如何找到客戶端。另一個是服務端主動連接客戶端時防火墻也會報警。下面圍繞這兩點探討解決方法。1.解決IP地址問題。一種解決方法是客戶端通過一個有固定IP或者固定域名的第三方自己的IP,比如:事先約定好一個個人主頁的空間,放置一個文本文件,木馬固定多長時間去取一次這個文件,如果文件內容為空就什么都不做,如果有內容就按照文本文件中的數據計算出控制端的IP和端口,反彈一個TCP鏈接回去,這樣每次控制者上線只需要上傳一個文本文件就可以告訴木馬自己的位置。另一種方法是使用RAW socket來收聽ECHO REPLY類型的ICMP包且在ICMP數據包的數據中就包含了客戶端IP。或者是截獲其他進程收到的TCP數據或UDP包,然后分析截獲的數據,從中確定是否客戶端發來了一個報告其IP的數據片斷。這種客戶端通過某種方法主動告訴服務端自己的IP和端口的方法可以保證最大的可靠性,安全性和靈活性。2.解決防火墻報警問題。一種方法是上面提到的動態嵌入技術,服務端將自己注入到一個可以合法的與外界進行網絡通訊的進程的地址空間中,然后就可以以一個新線程的形式運行。在新線程內去主動連接客戶端,如果是寄生在IE內就連接客戶端的80端口;如果是寄生在OICQ內,可以連接客戶端的8000端口。另一種方法是木馬服務端使用80端口,將傳送的數據包含在HTTP的報文中,就算是能夠分析報文、過濾TCP/UDP的防火墻,也不可能分辨出通過HTTP協議傳送的究竟是網頁還是控制命令和數據。
(三)ICMP木馬技術的實現。ICMP全稱是Internet Control Message Protocol(互聯網控制報文協議)它是IP協議的附屬協議,用來傳遞差錯報文以及其他的消息報文,例如工具Ping就是通過發送接收ICMP_ECHO和ICMP_ECHOREPLY報文來進行網絡診斷的。ICMP木馬技術的出現正是得到了Ping程序的啟發,ICMP木馬技術利用ICMP報文由系統內核或進程直接處理而不是通過端口的特點,將自己偽裝成一個Ping的進程,系統就會將ICMP_ECHOREPLY(Ping的回包)的監聽、處理權交給木馬進程,木馬進程通過判斷包大小、ICMP_SEQ等特征,來確定是否是自己需要的數據,一旦事先約定好的ICMP_ECHOREPLY包出現,木馬就會接受、分析并從報文中解碼出命令和數據來執行。另外一種辦法是修改ICMP頭的構造,加入木馬的控制字段。由于ICMP_ECHOREPLY包還有對于防火墻和網關的穿透能力,這種技術使得木馬擺脫了端口的限制,突破了防火墻對目標主機的保護。
四、結束語
綜上所述,隨著internet技術的發展和使用的普及,木馬技術也在不斷的成熟和普及,本文僅從一個側面加以討論,希望通過這一探討讓我們對木馬的關鍵技術有一個簡單的認識,同時也為我們防范他人利用木馬非法入侵提供參考。
參考文獻:
[1]張友生,米安然.計算機病毒與木馬程序的剖析[M].北京:科海電子出版社,2003
[2]周明全,呂林濤,李軍懷.網絡信息安全技術[M].西安:電子科技大學出版社,2003
[3]孫鋒.網絡安全與防黑技術[M].北京:機械工業出版社,2004
icmp協議篇7
【關鍵詞】 漏桶 攻擊 配置
一、引言
松原局s8016設備曾被病毒惡意攻擊過,經過認真核實,訪問列表等都已經設置了,但是CPU的占用率為100%,這顯然是不正常的現象,為了有效遏制病毒攻擊,我們及時與華為工程師溝通,采取了有效的措施及時地進行障礙診斷處理,對該設備的漏桶進行重新設置。因為通過漏桶上傳的報文一般都是與網關有交互,需要到MPU處理的協議報文或者ping網關及telnet、FTP等報文,根據實際情況,考慮配置以下漏桶,對丟棄頻繁的漏桶進行限流配置。
二、故障現象描述:
首先查看漏桶:
[8016]display system-bucket 1
****Token information****
#The slot number: 1 /*板號*/
#The token ID: 1 /*漏桶號*/
The time of the last packets arrive:36403113 /*上次報文到來的時間ms*/
The number of present tokens: 32716 /*當前剩余的令牌*/
The traffic rate of the token: 32K /*漏桶通道大小*/
The height of the token bucket:32768 /*漏桶深度*/
The number of the discarded packets: 0 /*丟棄報文數*/
三、障礙處理過程
根據網上設備運行經驗:如果單板ARP數小于100個,則漏桶可以配置為2K;如果單板的ARP數小于500個,對于ARP攻擊建議將漏桶配置成4K;如果大于500個,建議漏桶配置值為8K。通過上述的配置,在一般情況或者攻擊很少的情況對正常業務影響不大。具體配置如下:
apply system-bucket 1 22 traffic-rate 4/*將1號板的22號漏桶ARP配置為4K*/每個漏桶的報文類型可以通過?命令查看“display system-bucket ?”
display system-bucket 7 ?
1 Default bucket,any packet not list here use this bucket
缺省類型,也就是表中沒有列出的其他類型報文都公用這一個桶
2 ARP Miss message,use it to form ARP entry
ARP MISS 消息(請求下一跳的ARP)
3 FIB Miss Message,use it to form host route entry
FIB MISS消息(掃描網段時經常發生,上送觸發ARP請求)
4 PPP protocol control frame
PPP控制報文
5 Packet MFIB Miss ,use it to form (S,G) route
組播路由MISS后導致的上送消息
6 ARP response packet
回應S8016的ARP應答報文
8 ISIS protocol packet
ISIS報文
9 IP multicast packet which destIP address is 224.0.0.2(used by IGMP, LDP
etc)
224.0.0.2:所有組播路由器,應用的協議:IGMP、LDP
10 IP multicast packet which destIP address is 224.0.0.5(used by OSPF) 224.0.0.5:OSPF路由器
11 IP multicast packet which destIP address is 224.0.0.6(used by OSPF) 224.0.0.6:OSPF指定路由器
12 IP multicast packet which destIP address is 224.0.0.9(used by RIP2) 224.0.0.9:RIP2路由器
14 IP multicast packet which destIP address is 224.0.0.13(used by PIM)
15 Other IP multicast packet which destIP address is in
224.0.0.0-224.0.0.255(excluded.2 .5 .6 .9 .10 .13 .18)
其他組播報文應用不多,本參數應該可以滿足
16 HGMP protocol packet
HGMP報文上送
17 GVRP protocol packet
GVRP報文上送
19 BPDU protocol packet
BPDU報文上送
21 Packet length exceed MTU and DF flag is set,it is used by host to discover the MTU in the route
MTU超值且DF置位上送
22 ARP request packet send by all the host,use it to learning host route
ARP 請求報文,一般用戶發出或者下級設備發出
23 DHCP protocol packet
DHCP報文
24 Arp request packet witch destIP is in NAT pool
NAT地址池的ARP請求報文,應用很少
25 Register packet used in PIM SIM protocol
組播注冊報文
27 Packet which destIP is ip address of gateway, exclude ICMP and TCP
目的地址為網關的報文,不報括ICMP和TCP,通常為UDP報文等
28 ICMP request packet witch destIP is webswitch’s VIP
和CLPU板相關,應用很少
30 IP multicast packet which destIP address is 224.0.0.18(used by VRRP) VRRP組播報文,如果有VRRP配置時會有
31 ICMP packet which destIP is ip address of gateway, for example, ping packet
目的地址為網關的ICMP報文,典型的為ping
32 TCP packet which destIP is ip address of gateway, for example, FTP, BGP peer, LDP session
目的地址為網關的的TCP報文,如果沒有BGP和LDP,注意此漏桶的攻擊,默認帶寬較大,有256K
33 RIP1 protocol packet
RIP協議報文
A:想查看8016的CPU占用率,只需要在系統視圖下輸入display cpu命令。
四、故障總結
icmp協議篇8
摘要:該文介紹一個新的主動型的網絡安全系統-蜜罐。首先給出了蜜罐的定義和分類,然后詳細描述了一個網絡層次上的模擬計算機系統的虛擬蜜罐框架Honeyd,討論了Honeyd的原理、結構、特點、設計和實現,并對它的功能作了全面的測試評估。關鍵字:蜜罐,交互性,個性,路由拓撲,模板1蜜罐(Honeypot)的介紹今天網絡安全問題正日益嚴重。黑客利用自動化的大規模的漏洞掃描工具,可以在發現漏洞后不久就使全球的計算機系統遭受破壞。可是經過數十年的研究和探索,我們仍然不能確保計算機系統的安全,甚至無法準確評估它們的安全性。現在我們介紹一種新的網絡安全預警系統:蜜罐(Honeypot)。蜜罐是指受到嚴密監控的網絡誘騙系統,它可以迷惑敵人,將攻擊從網絡中比較重要的機器上轉移開,對新攻擊發出預警,更重要的是可以引誘黑客攻擊而并對其攻擊的行為和過程進行深入的分析研究。將蜜罐和入侵檢測系統、防火墻等結合使用,可以有效提高系統安全性。Honeypot分為兩種類型:一種是低交互性蜜罐(Low-InteractionHoneypot),另一種是高交互性蜜罐(High-InteractionHoneypot)。低交互性蜜罐通常是運行于現有操作系統上的仿真服務,只允許少量的交互動作,黑客只能在仿真服務預設的范圍內動作,它的優點是結構簡單,部署容易,風險很低。高交互性蜜罐通常由真實的操作系統來構建,提供給黑客的是真實的系統和服務。采用這種方式可以獲得大量的有用信息,包括我們完全不了解的新的網絡攻擊方式。同時,它也帶來了更多的風險--黑客可能通過這個完全開放的真實系統去攻擊和滲透網絡中的其他機器。配置高交互性的物理的蜜罐成本很高,因為每個蜜罐是具有自已IP地址的真實機器,要有它自已的操作系統和相應硬件。而虛擬蜜罐是由一臺機器去模擬構造一個擁有的多個虛擬主機和虛擬服務的網絡。相對而言,虛擬蜜罐需要較少的計算機資源和維護費用。本文描述的Honeyd,就是一個在網絡層次上模擬計算機系統的虛擬蜜罐框架。2Honeyd的設計和實施Honeyd是一個輕型的開放源代碼的虛擬蜜罐的框架,可以模擬多個操作系統和網絡服務,支持IP協議族,創建任意拓撲結構的虛擬網絡。同時,為了模擬拓撲分散的網絡地址空間和共享負荷,該結構也支持網絡通道。圖1Honeyd的數據接收圖2Honeyd的結構2.1網絡數據的接收要使Honeyd可以對目的IP地址屬于虛擬蜜罐之一的網絡數據包正常的接受和回應,有如下方法:對指向Honeyd主機的虛擬IP地址創建特定路由、使用ARP及使用網絡通道。如圖1所示,假設10.0.0.1為我們路由器的IP地址,10.0.0.2為Honeyd主機的IP地址。10.0.0.11-14是Honeyd虛擬的蜜罐的IP地址。最簡單的情況是虛擬蜜罐的IP位于我們局域網內。當從互聯網向蜜罐WindowsNT4.0發送一個包時,路由器首先查詢它的路由表由找到10.0.0.13的轉送地址,如果沒有配置專用的路由,路由器通過ARP請求確定虛擬蜜罐的MAC地址,因為沒有相應的物理機器ARP請求會不被響應,因此我們配置Honeyd主機用自己的MAC地址的對10.0.0.13的ARP請求做出反應,這樣通過ARP路由器就把發送蜜罐WindowsNT4.0的包轉到Honeyd主機的MAC地址。在復雜的情況下,我們也可以應用通用路由封裝(GRE)通道協議在網絡地址空間和hondyd主機間建立通道。2.2Honeyd結構Honeyd結構由幾部分構成:一個配置數據庫,一個中央包分配器,協議處理器,個性化引擎和隨機的路由組件,見圖2。Honeyd支持三種主要的互聯網協議:ICMP,TCP和UDP。輸入的包由中央包分配器處理,它首先檢測IP包的長度并驗證校驗,然后查詢配置數據庫找到與目的IP地址相對應的蜜罐配置,如果不存在專用的配置,則應用缺省模板。確定了配置后,數據包被傳送給相應的協議處理器。ICMP協議處理器支持大多數ICMP請求。缺省時,對ECHO請求做出反應并給出目的地址不可達的信息。對TCP和UDP來說,該結構能為任意的服務建立連接,服務是在STDIN上接受數據并把輸出發送到STDOUT的外部應用。Honeyd包含一個簡化的TCP狀態機,完全支持三次握手(Three-wayHandshake)的建立連接和通過FIN或RST撤消連接,但是接受器和擁塞窗口管理沒有完全實現。UDP數據報直接傳到應用,當收到一個發往封閉端口的UDP包的時候,默認發出一個ICMP端口不可達的信息。Honeyd結構也支持連接的重定向,重定向可以是靜態的或依賴于連接四元組(源地址,源端口,目的地址,目的端口)。重定向允許我們把虛擬蜜罐上的一個服務連接請求轉遞給一個在真正的服務器上運行的服務,例如,我們可以把DNS請求重指向一個域名服務器甚至可以把連接反傳給敵人。2.3個性化引擎(PersonalityEngine)黑客通常會運用象Xprobe或Nmap的指紋識別工具來收集目標系統的信息,為了迷惑敵人,Honeyd可以模擬給定操作系統的網絡堆棧行為,我們把這稱為虛擬蜜罐的個性(Personality)。個性化引擎使蜜罐的網絡堆棧按照個性設置來改變每個外出包的協議頭,以便與被配置的操作系統的特征相符。Honeyd結構應用Nmap指紋庫作為個性的TCP和UCP行為的參照,用Xprobe的指紋據庫作為個性的ICMP行為的參照。下面介紹怎樣應用Nmap提供的指紋信息來改變蜜罐的網絡堆棧特性。FingerprintWindowsNT4.0SP6ahotfixesTSeq(Class=RI%gcd=<6%SI=<40132&>290%IPID=BI|RPI%TS=U)T1(DF=Y%W=2017琄=S%Flags=AS%Ops=M)T2(Resp=Y
本文鏈接:http://www.svtrjb.com/v-141-3071.htmlicmp協議范文8篇
相關文章:
快遞包裝袋廣告語07-27
適合晚安的朋友圈句子,溫暖治愈,句句貼心07-20
亦舒名人名言短句07-17
五一勞動節經典語錄07-05
開發部年終總結11-15
最新內控工作總結報告 內控工作總結公文標題(4篇)08-19
學校遲到檢討書11-09
父母長期居住證明08-10
應用文求職信教案07-16
小學開學典禮校長發言稿02-19
裁判員加油稿12-20
會議通知優秀09-13
學生對學校的建議書12-26
天鵝湖的作文12-24
我最敬佩的人四年級作文09-13
江蘇2024年11月證券從業資格報名網址:https://www.sac.net.cn/11-03
小學生綜合素質評價評語(優秀13篇)08-08
文言文通假字11-09