自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度分析TCP會話劫持

安全 黑客攻防
本篇文章講述了黑客攻擊者會通過TCP傳輸協(xié)議的ACK風暴漏洞,進行諸如ARP欺騙的方式以達到進行TCP會話劫持的目的。并模擬了一次TCP會話劫持過程幫助大家深入理解。

作為一種會話劫持的方法,黑客如果對一些并不可靠的協(xié)議進行劫持,那么將會輕而易舉的視線,但是TCP協(xié)議是一種被稱為可靠的傳輸協(xié)議,許多傳輸功能也都是基于TCP協(xié)議進行的,所以TCP會話劫持將作為本章討論的對象。

TCP會話劫持

根據(jù)TCP/IP中的規(guī)定,使用TCP協(xié)議進行通訊需要提供兩段序列號,TCP協(xié)議使用這兩段序列號確保連接同步以及安全通訊,系統(tǒng)的TCP/IP協(xié)議棧依據(jù)時間或線性的產(chǎn)生這些值。在通訊過程中,雙方的序列號是相互依賴的,這也就是為什么稱TCP協(xié)議是可靠的傳輸協(xié)議(具體可參見RFC 793)。如果攻擊者在這個時候進行會話劫持,結果肯定是失敗,因為會話雙方“不認識”攻擊者,攻擊者不能提供合法的序列號;所以,會話劫持的關鍵是預測正確的序列號,攻擊者可以采取嗅探技術獲得這些信息

TCP協(xié)議的序列號

現(xiàn)在來討論一下有關TCP協(xié)議的序列號的相關問題。在每一個數(shù)據(jù)包中,都有兩段序列號,它們分別為:

SEQ:當前數(shù)據(jù)包中的第一個字節(jié)的序號

ACK:期望收到對方數(shù)據(jù)包中第一個字節(jié)的序號

假設雙方現(xiàn)在需要進行一次連接:

S_SEQ:將要發(fā)送的下一個字節(jié)的序號

S_ACK:將要接收的下一個字節(jié)的序號

S_WIND:接收窗口

//以上為服務器(Server)

C_SEQ:將要發(fā)送的下一個字節(jié)的序號

C_ACK:將要接收的下一個字節(jié)的序號

C_WIND:接收窗口

//以上為客戶端(Client)

它們之間必須符合下面的邏輯關系,否則該數(shù)據(jù)包會被丟棄,并且返回一個ACK包(包含期望的序列號)。

C_ACK <= C_SEQ <= C_ACK + C_WIND

S_ACK <= S_SEQ <= S_ACK + S_WIND

如果不符合上邊的邏輯關系,就會引申出一個“致命弱點”,具體請接著往下看。

致命弱點

這個致命的弱點就是ACK風暴(Storm)。當會話雙方接收到一個不期望的數(shù)據(jù)包后,就會用自己期望的序列號返回ACK包;而在另一端,這個數(shù)據(jù)包也不是所期望的,就會再次以自己期望的序列號返回ACK包……于是,就這樣來回往返,形成了惡性循環(huán),最終導致ACK風暴。比較好的解決辦法是先進行ARP欺騙,使雙方的數(shù)據(jù)包“正常”的發(fā)送到攻擊者這里,然后設置包轉發(fā),最后就可以進行會話劫持了,而且不必擔心會有ACK風暴出現(xiàn)。當然,并不是所有系統(tǒng)都會出現(xiàn)ACK風暴。比如Linux系統(tǒng)的TCP/IP協(xié)議棧就與RFC中的描述略有不同。注意,ACK風暴僅存在于注射式會話劫持。

TCP會話劫持過程

假設現(xiàn)在主機A和主機B進行一次TCP會話,C為攻擊者,劫持過程如下:

A向B發(fā)送一個數(shù)據(jù)包

SEQ (hex): X ACK (hex): Y

FL

AGS: -AP--- Window: ZZZZ,包大小為:60

B回應A一個數(shù)據(jù)包

SEQ (hex): Y ACK (hex): X+60

FLAGS: -AP--- Window: ZZZZ,包大小為:50

A向B回應一個數(shù)據(jù)包

SEQ (hex): X+60 ACK (hex): Y+50

FLAGS: -AP--- Window: ZZZZ,包大小為:40

B向A回應一個數(shù)據(jù)包

SEQ (hex): Y+50 ACK (hex): X+100

FLAGS: -AP--- Window: ZZZZ,包大小為:30

攻擊者C冒充主機A給主機B發(fā)送一個數(shù)據(jù)包

SEQ (hex): X+100 ACK (hex): Y+80

FLAGS: -AP--- Window: ZZZZ,包大小為:20

B向A回應一個數(shù)據(jù)包

SEQ (hex): Y+80 ACK (hex): X+120

FLAGS: -AP--- Window: ZZZZ,包大小為:10

現(xiàn)在,主機B執(zhí)行了攻擊者C冒充主機A發(fā)送過來的命令,并且返回給主機A一個數(shù)據(jù)包;但是,主機A并不能識別主機B發(fā)送過來的數(shù)據(jù)包,所以主機A會以期望的序列號返回給主機B一個數(shù)據(jù)包,隨即形成ACK風暴。如果成功的解決了ACK風暴(例如ARP欺騙),就可以成功進行會TCP話劫持了。
 

【編輯推薦】

  1. 黑客不愛軟件漏洞 更喜歡利用錯誤配置
  2. “90后”黑客攻擊南京房管局網(wǎng)站
  3. Black Hat和Defcon黑客大會的五大看點
  4. 路由器漏洞:黑客展示如何攻陷百萬臺
  5. 揭秘黑客手中DDoS攻擊利器——黑色能量2代
責任編輯:張啟峰 來源: 安全在線
相關推薦

2021-04-09 09:02:00

惡意軟件Android劫持會話

2010-09-09 22:41:18

2022-05-26 16:44:12

MFA會話劫持

2010-09-09 20:26:34

2010-07-26 13:03:23

Telnet會話

2011-03-11 10:10:52

2012-11-19 09:46:59

2020-07-28 16:38:23

中間人TCP網(wǎng)絡部協(xié)議

2014-07-22 13:52:45

2009-09-02 20:18:17

域名劫持域名安全

2010-07-26 15:29:42

Telnet會話

2017-07-06 10:35:54

Web前端劫持

2014-10-13 09:22:39

TCPIPwireshark

2015-04-03 09:35:57

2011-07-20 14:29:33

HBase

2016-03-16 09:47:55

2021-01-29 09:19:21

DNS劫持HTTP劫持加密

2017-01-23 10:10:09

2017-06-27 13:50:37

數(shù)據(jù)分析Session

2015-10-15 11:57:46

點贊
收藏

51CTO技術棧公眾號