IP Spoof技術介紹(IP 欺騙)
更新時間:2007年01月16日 00:00:00 作者:
第一部分
1.什么是IP spoof?
IP spoof即IP 電子欺騙,我們可以說是一臺主機設備冒充另外一臺主機的IP地址,與其它設備通信,從而達到某種目的技術。
2.IP spoof可以實現嗎?
可以實現,早在1985年,貝爾實驗室的一名工程師Robbert Morris在他的一篇文章A weakness in the 4.2bsd
unix TCP/IP software中提出了IP spoof的概念,有興趣的讀者可參見原文:
http://www.coast.net/~emv/tubed/archives/Morris_weakness_in_TCPIP.txt
但要注意的是單純憑借IP spoof技術不可能很好的完成一次完整的攻擊,因為現有IP
spoof技術是屬于一種“盲人”式的入侵手段,下面會解釋“盲人”的概念。
3.IP spoof的實現原理
我們知道,IP是網絡層的一個非面向連接的協議, IP數據包的主要內容由源IP地址,目地IP地址,所傳數據構成,
IP的任務就是根據每個數據報文的目的地址,路由完成報文從源地址到目的地址的傳送。至于報文在傳送過程中是否丟失或出現差錯,
IP不會考慮。對IP來講,源設備與目的設備沒有什么關系,它們是相互獨立的。IP包只是根據數據報文中的目的地址發(fā)送,因此借助高層協議的應用程序來偽造IP地址是比較容易實現的。
與此同時,TCP作為保障兩臺通訊設備之間數據有保證的順序傳輸的協議,是面向連接的,它需要連接雙方?quot;同意"才能進行通訊。TCP傳輸雙方傳送的每一個字節(jié)都伴隨著一個序列號(SEQ),它期待對方在接收到后產生一個應答(ACK),
應答一方面通知對方數據成功收到,另一方面告知對方希望接收的下一個字節(jié)。同時,任何兩臺設備之間欲建立TCP連接都需要一個兩方確認的起始過程,稱三次握手,可分解如下面來表示:
第一步:請求方向服務方發(fā)送SYN,表示想發(fā)起一次TCP連接。我們假定這次的序列號是某個數值X
Trust ->Target
SYN
SEQ:X
第二步:服務方產生SYN,ACK響應,并向請求方發(fā)送ACK,
ACK的值為X+1,表示數據成功接收到,且告知下一次希望接收到字節(jié)的SEQ是X+1。同時, 服務方向請求方發(fā)送自己的SEQ,
我們假定它的序列號是某個數值Y。
Target -> Trust
SYN,ACK
SEQ:Y
ACK:X+1
第三步: 請求方向服務方發(fā)送ACK,表示接收到服務方的回應。這次它的SEQ值為X+1,同時它的ACK值為Y+1,原理同上。
Trust ->Target
ACK
SEQ:X+1
ACK:Y+1
完成這一步以后, 請求方與服務方之間的連接開放,數據可以進行傳輸了.
1.什么是IP spoof?
IP spoof即IP 電子欺騙,我們可以說是一臺主機設備冒充另外一臺主機的IP地址,與其它設備通信,從而達到某種目的技術。
2.IP spoof可以實現嗎?
可以實現,早在1985年,貝爾實驗室的一名工程師Robbert Morris在他的一篇文章A weakness in the 4.2bsd
unix TCP/IP software中提出了IP spoof的概念,有興趣的讀者可參見原文:
http://www.coast.net/~emv/tubed/archives/Morris_weakness_in_TCPIP.txt
但要注意的是單純憑借IP spoof技術不可能很好的完成一次完整的攻擊,因為現有IP
spoof技術是屬于一種“盲人”式的入侵手段,下面會解釋“盲人”的概念。
3.IP spoof的實現原理
我們知道,IP是網絡層的一個非面向連接的協議, IP數據包的主要內容由源IP地址,目地IP地址,所傳數據構成,
IP的任務就是根據每個數據報文的目的地址,路由完成報文從源地址到目的地址的傳送。至于報文在傳送過程中是否丟失或出現差錯,
IP不會考慮。對IP來講,源設備與目的設備沒有什么關系,它們是相互獨立的。IP包只是根據數據報文中的目的地址發(fā)送,因此借助高層協議的應用程序來偽造IP地址是比較容易實現的。
與此同時,TCP作為保障兩臺通訊設備之間數據有保證的順序傳輸的協議,是面向連接的,它需要連接雙方?quot;同意"才能進行通訊。TCP傳輸雙方傳送的每一個字節(jié)都伴隨著一個序列號(SEQ),它期待對方在接收到后產生一個應答(ACK),
應答一方面通知對方數據成功收到,另一方面告知對方希望接收的下一個字節(jié)。同時,任何兩臺設備之間欲建立TCP連接都需要一個兩方確認的起始過程,稱三次握手,可分解如下面來表示:
第一步:請求方向服務方發(fā)送SYN,表示想發(fā)起一次TCP連接。我們假定這次的序列號是某個數值X
Trust ->Target
SYN
SEQ:X
第二步:服務方產生SYN,ACK響應,并向請求方發(fā)送ACK,
ACK的值為X+1,表示數據成功接收到,且告知下一次希望接收到字節(jié)的SEQ是X+1。同時, 服務方向請求方發(fā)送自己的SEQ,
我們假定它的序列號是某個數值Y。
Target -> Trust
SYN,ACK
SEQ:Y
ACK:X+1
第三步: 請求方向服務方發(fā)送ACK,表示接收到服務方的回應。這次它的SEQ值為X+1,同時它的ACK值為Y+1,原理同上。
Trust ->Target
ACK
SEQ:X+1
ACK:Y+1
完成這一步以后, 請求方與服務方之間的連接開放,數據可以進行傳輸了.
相關文章
默認Samba版本在RedHat 9上的溢出獲取root演示
默認Samba版本在RedHat 9上的溢出獲取root演示...2007-01-01