成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:如何在不殺掉進程前提,關閉一個 TCP 連接?

網絡 通信技術
如果 RST 報文的序列號不能落在對方的滑動窗口內,這個 RST 報文會被對方丟棄的,就達不到關閉的連接的效果。所以,要偽造一個能關閉 TCP 連接的 RST 報文,必須同時滿足「四元組相同」和「序列號正好落在對方的滑動窗口內」這兩個條件。

大家好,我是小林。

之前有位讀者在面試中,被問到這么一個問題。

「如何在不殺掉進程前提,關閉一個 TCP 連接?」

這個我之前的文章也提及過「處于 establish 狀態的連接,收到 SYN 報文會發生什么?」

我這里再把關鍵的點,講一下。

正文

大家在關閉 TCP 連接第一反應都是「殺掉進程」。

是的,這個是最粗暴的方式,殺掉客戶端進程和服務端進程影響的范圍會有所不同:

  • 在客戶端殺掉進程的話,就會發送 FIN 報文,來斷開這個客戶端進程與服務端建立的所有 TCP 連接,這種方式影響范圍只有這個客戶端進程所建立的連接,而其他客戶端或進程不會受影響。
  • 而在服務端殺掉進程影響就大了,此時所有的 TCP 連接都會被關閉,服務端無法繼續提供訪問服務。

所以,關閉進程的方式并不可取,最好的方式要精細到關閉某一條 TCP 連接。

有的小伙伴可能會說,偽造一個四元組相同的 RST 報文不就行了?

這個思路很好,但是不要忘了還有個序列號的問題,你偽造的 RST 報文的序列號一定能被對方接受嗎?

如果 RST 報文的序列號不能落在對方的滑動窗口內,這個 RST 報文會被對方丟棄的,就達不到關閉的連接的效果。

所以,要偽造一個能關閉 TCP 連接的 RST 報文,必須同時滿足「四元組相同」和「序列號正好落在對方的滑動窗口內」這兩個條件。

直接偽造符合預期的序列號是比較困難,因為如果一個正在傳輸數據的 TCP 連接,滑動窗口時刻都在變化,因此很難剛好偽造一個剛好落在對方滑動窗口內的序列號的 RST 報文。

辦法還是有的,我們可以偽造一個四元組相同的 SYN 報文,來拿到“合法”的序列號!

因為如果處于 establish 狀態的服務端,收到四元組相同的 SYN 報文后,會回復一個 Challenge ACK,這個 ACK 報文里的「確認號」,正好是服務端下一次想要接收的序列號,說白了,就是可以通過這一步拿到服務端下一次預期接收的序列號。

然后用這個確認號作為 RST 報文的序列號,發送給服務端,此時服務端會認為這個 RST 報文里的序列號是合法的,于是就會釋放連接!

在 Linux 上有個叫 killcx 的工具,就是基于上面這樣的方式實現的,它會主動發送 SYN 包獲取 SEQ/ACK 號,然后利用 SEQ/ACK 號偽造兩個 RST 報文分別發給客戶端和服務端,這樣雙方的 TCP 連接都會被釋放,這種方式活躍和非活躍的 TCP 連接都可以殺掉。

使用方式也很簡單,只需指明客戶端的 IP 和端口號。

./killcx

killcx 工具的工作原理,如下圖

它偽造客戶端發送 SYN 報文,服務端收到后就會回復一個攜帶了正確「序列號和確認號」的 ACK 報文(Challenge ACK),然后就可以利用這個 ACK 報文里面的信息,偽造兩個 RST 報文:

  • 用 Challenge ACK 里的確認號偽造 RST 報文發送給服務端,服務端收到 RST 報文后就會釋放連接。
  • 用 Challenge ACK 里的序列號偽造 RST 報文發送給客戶端,客戶端收到 RST 也會釋放連接。

正是通過這樣的方式,成功將一個 TCP 連接關閉了!

這里給大家貼一個使用 killcx 工具關閉連接的抓包圖,大家多看看序列號和確認號的變化。

所以,以后抓包中,如果莫名奇妙出現一個 SYN 包,有可能對方接下來想要對你發起的 RST 攻擊,直接將你的 TCP 連接斷開!

 

怎么樣,很巧妙吧!

 

責任編輯:武曉燕 來源: 小林coding
相關推薦

2021-05-18 08:32:33

TCPIP協議

2021-05-19 08:17:35

秒殺場景高并發

2022-04-08 08:26:03

JavaHTTP請求

2021-09-28 13:42:55

Chrome Devwebsocket網絡協議

2023-01-18 17:50:35

系統架構Kafka

2021-06-09 07:55:19

NodeEventEmitte驅動

2025-06-04 03:15:00

高并發短鏈系統

2020-06-22 11:50:38

TCPIP協議

2023-07-31 08:26:09

2020-05-13 14:35:47

HashMap面試官Java

2019-11-26 08:24:13

TCP擁塞控制網絡協議

2015-08-13 10:29:12

面試面試官

2022-01-10 11:04:41

單鏈表面試編程

2022-08-18 20:02:04

JSLRU緩存

2020-06-22 07:47:46

提交面試官訂單

2021-09-15 07:56:32

TypeScriptVue項目

2021-09-14 07:06:13

React項目TypeScript

2024-10-07 08:52:59

分布式系統分布式 IDID

2017-03-16 15:27:10

面試官測試技術

2023-02-16 08:10:40

死鎖線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产中文字幕 | 久久国产精品一区 | 亚洲免费视频在线观看 | 国产成人91视频 | 在线观看www | 91在线视频免费观看 | 日韩精品一区中文字幕 | 欧美精品1区 | 亚洲精品福利视频 | 风间由美一区二区三区在线观看 | 久久久久亚洲 | 日韩中文一区二区 | chengrenzaixian| 91精品久久久久久久久久入口 | 黄视频免费观看 | 91精品国产色综合久久 | 91精品国产一二三 | 亚洲精品成人av | 亚洲一区av | 国产精品久久久免费 | 欧美精品网站 | 精品一区在线看 | 国产第一页在线观看 | 欧美日韩一区二区在线观看 | 色噜噜亚洲男人的天堂 | 伊人中文网 | 日韩一区二区三区精品 | 日本精品视频在线观看 | 狠狠色综合网站久久久久久久 | 国产色婷婷精品综合在线手机播放 | 天堂久| 在线视频h | 成人毛片视频免费 | 日韩在线一区二区 | 色播av | 婷婷丁香综合网 | 一区二区av | 久久久久久久一区 | 色偷偷噜噜噜亚洲男人 | 在线精品国产 | 久久免费电影 |