?? 通過ip欺騙進行攻擊的原理及預防.txt
字號:
發信人: wugang (Just do it), 信區: Hacker
標 題: 通過IP欺騙進行攻擊的原理及預防
發信站: 哈工大紫丁香 (2001年08月31日00:12:16 星期五), 站內信件
發布者:netbull 閱讀次數:34
本文的目的在于向讀者解釋IP欺騙的實現方法和預防措施。它要求您掌握 有關UIIX和
TCP/IP的少量知識。如果您沒有,也沒有關系,相信下面的說明能 給您以足夠的背景知
識。
IP欺騙是適用于TCP/IP環境的一種復雜的技術攻擊,它由若干部分組成。 目前,在
Internet領域中,它成為黑客攻擊時采用的一種重要手段,因此有必 要充分了解它的工
作原理和防范措施;以充分保護自己的合法權益。
實際上,IP欺騙不是進攻的結果,而是進攻的手段。進攻實際上是信任關 系的破壞。然
而,在本文中,IP欺騙將被看作是涉及到的整個攻擊,對于利用IP 欺騙建立起來的虛假
信任關系進行破壞的其它行為不作為我們討論的內容。 本文將詳盡地解釋攻擊的全過程
。包括有關的操作系統與網絡信息。
背景知識(術語說明)
A:表示目標主機
B:表示對于A來說,可信任的主機
X:表示不能到達的主機
Z:表示進攻主機
1(2):主機1化裝成主機2
圖示符號定義
本文中有若干圖示,它們將類比以下示例進行解釋:
時間序列 主機A 控制 主機B
1 A --SYN--> B
時間序列;時間流逝的單位,可以無究細化。一般認為是很小的單位, 表示事件發生的
先后順序。
主機A:參與一次TCP對話的機器。
控制:顯示有關TCP控制字段頭部的控制字符和該字段的流動方向。
主機B:參與一次TCP對話的機器。
這個圖示中,在第一參考時間點上主機A發送TCP字段給主機B,控制字段中的 SYN控制位
將作為該TCP字段的主要信息。除非特別說明,我們一般不關心TCP 字段中的數據部分。
信任關系
在Unix領域中,信任關系能夠很容易得到。假如您在主機A和B上各有一個賬戶 ,您在使
用當中發現,在主機A上使用時需要輸入在A上的相應帳戶,在主機B上 使用時必須輸入在
B上的帳戶,主機A和B把您當作兩個互不相關的用戶,顯然有 些不便。為了減少這種不便
,您可以在主機A和主機B中建立起兩個帳戶的相互信 任關系,在主機A和主機B上您的
home目錄中創建.rhosts文件.從主機A上, 在您的home目錄中輸入e-cho" busername">
~/.rhosts;從主機B上,在您的 home目錄中輸入echo" A username">~/.rhosts.至此,您
能毫無阻礙地使用 任何以r*開頭的遠程調用命令,如:rlogin,rcall,rsh等,而無口
令驗證的 煩惱。這些命令將允計以地址為基礎的驗證,或者允許或者拒絕以IP地址為基
礎 的存取服務。
Rlogin
Rlogin是一個簡單的客戶/服務器程序,它利用TCP傳輸。Rlogin允許用戶從一臺 主機登
錄到另一臺主機上,并且,如果目標主機信任它,Rlogin將允許在不應答 口令的情況下
使用目標主機上的資源,安全對外開放證完全是基于源主機的IP 地址,因此,根據以上
所舉的例子,我們能利用Rlogin來從B遠程登錄到A,而且 不會被提示輸入口令,
lnternet協議(IP)
IP是TCP/IP協議組中非面向連接、非可靠傳輸的網絡協議。它由兩個數32bit的 頭字段提
供地址信息。IP數據包占TCP/IP協議網絡流量中的很大部分,可以說明 最為繁書記的部
分。IP的工作在于在網絡環境中發送數據包,它不提供保證 可靠性的任何機制,對于可
靠性的要求,由于層協議來完成。IP只是發送數據包 ,并且保證它的完整性。如果不能
收到完整的IP數據包,IP會向源地址發送一個 ICMP錯誤信息,希望重新處理。然而這個
包也可能丟失(ICMP是網際控制消息 協議,Internet Control Message Protocol,它
是用于根據網絡條件保證數據 傳送的協議,主要是向IP層或其它層發送不同的錯誤信息
)。由于IP是非面向 連接的,所以不保持任何連接狀態的信息。每個IP數據包被松散地
發送出去而 不關心前一個和后一個數據包的情況。由此我們不難看出,可以對IP堆本進
行 修改,在源地址和目的地址中放入任意滿足要求的IP地址,也就是說,提供 虛假的
IP地址。
傳輸控制協議(TCP)
TCP是在TCP/IP協議組中面向邊接、提供可靠傳輸的協議。面向連接意味著參 與對話的兩
個主機必須首先建立起連接,然后才能進行數據交換??煽啃允怯?數據包中的多位控制
字來提供的,但是,其中僅僅有兩個是與我們的討論有關。 它們是數據序列和數據確認
,分別有SYN和ACK來表示。TCP向每一個數據字節 分配一個序列號,并且可以向已成功接
收的、源地址所發送的數據包表示確認 (目的地址ACK所確認的數據包序列是源地址的數
據包序列,而不是自己發送 的數據包序列(。ACK在確認的同時還攜帶也下一個期望獲得
的數據序列號。 顯然,TCP提供的這種可靠性相對于IP來說更難于愚弄。
序列編號、確認和其它標志信息
由于TCP是基于可靠性的,它能夠提供處理數據包丟失,重復或是順序率亂 等不良情況的
機制實際上,通過向所傳送出的所有字節分配序列編號, 并且期待接收端對發送端所發
出的數據提供收旋確認,TCP就能保證可靠的傳送。 接收端利用序列號確保數據的先后順
序,除去重復的數據包。TCP序列編號可以 看作是否32位的計數器。它們從0至此2/32-1
排列。每一個TCP連接 (由一定的標未位來表示)交換的數據都是順序編號的。在TCPA數
據包中定義 序列號(SYN)的標示位位于數據段的前端。確認位(ACK)對所接收的數據
進行確認,并且指出下一個期待接收的數據序列號。
TCP通過滑動窗口聽要領來進行流量控制。設想在發送端發送數據的速度很快 而接收端接
收速度卻很慢的情況下,為了保證數據不丟失,顯然需要進行流量 控制協調好通信雙方
的工作節奏。所謂滑動窗口,可以理解成接收端所能提供 的緩沖區大小。TCP利用一個滑
動的窗口來告訴發送端對它所發送的數據能提供 多大的緩沖區。由于窗口由不得16位
BIT所定義,所以接收端TCP能最大提供 65535個字節的緩沖。由此,可以利用窗口大小和
第一個數據的序列號計算出 最大可接收的數據序列號。
其它TCP標示位有RST(連接復位,Reset the connection)、PSH (壓入功能,Push
function)如果RST被接收,TCP連接將立即斷開。 RST通常在接收端接收到一個與當前連
接不相關的數據包時被發送。 有些時候,TCP模塊需要立即傳送數據而不能等整段都充滿
時再傳。 一個高層的進程將會觸發在TCP頭部的PSH標示,并且告訴TCPA模塊立即 將所有
排列好的數據發給數據接收端。FIN表示一個應用連接結束。 當接收端接收到FIN時,確
認它,認為將接收不到任何數據了。
TCP連接的建立
為了利用TCP連接交換數據,主機間首先必須建立一個連接。TCP建立連接時 可以分為3個
步驟,稱為三步握手法。如果主機A運行rlogin客戶程序, 并且希望連接到主機B上的
rlogin daemon 服務器程序上,連接過程如圖1所示。
1 A ---SYN---> B
2 A <--SYN/ACK--- B
3 A ---ACK---> B
圖一
需要提醒讀者的是,主機A和B的TCP模塊分別使用自己的序列編號。在時刻1時, 客戶端
通過設置標志位SYN=1告訴服務器它需要建立連接。同時,客戶端在其 TCP頭中的序列號
領域SEQ放置了它的初始序列號(ISN),并且告訴服務器序 列號標示域是有效的,應該
被檢查。在時刻2時,服務器端在接收了上面的 SYN后,作出的反應是將自己的ISN和對客
戶端的ACKA發向客戶端并且千知 下一個期待獲得的數據序列號是(ISN+1)??蛻舳嗽诘?
一流時刻,對服務器 的ISN進行確認。這時,數據傳輸就可以進行了。
ISN與序列號的遞增
了解序數編號如何選擇初始序列號和如何根據時間變化是很重要的。似乎 應該有這種情
況,當主機啟動后序列編號初始化為1,但實際上并非如此。 初始序列號是由tcp_init函
數確定的。ISN每秒增加工廠128000,如果有連接 出現,每次連接將反計數器的數值增加
64000。很顯然,這使得用于表示ISN的 32位計數器在沒有連接的情況下每9.32小時復位
一次。之所以這樣,是因為 這樣有利于最大限度地減少舊有連接的信息干擾當前連接的
機會。這里運用了 望2MSL等待時間的概念(不在本文討論的范圍之內。)如果初始序列
號是 隨意選擇的,那么不能保證現有序列號是不同于先前的。假設有這樣一種情況, 在
一個路由回路中的數據包最終跳出了循環,回到了“舊有”的連接 (此時其實是不同于
前者的現有連接(,顯然會發生對現有連接的干擾。
端口號
為了提供對TCP模塊的并行訪問,TCP提供了叫做端口的用戶接口。端口被 操作系統內核
利用來標示不同的網絡進程,也就是嚴格區分傳輸層入口的標示 (就是說,IP不關心他
們的存在)。TCP端口與IP地址一起提供網絡端到端的 通信。事實上,在任何時刻任何
Internet連接都能由4個要素來措述:源IP地址、 源地址端口號、目的IP地址和目的地址
端口號。服務器程序一般被綁定在標準 的端口號上,便如,rlogin daemon 被綁定在TCP
513的端口。
IP欺騙
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -