簡體   English   中英

即時修改TCP數據包

[英]Modifying TCP packets on the fly

我目前正在編寫一個Java應用程序,其中正在運行一個主服務器以及一個備份服務器(使用VM)。 為了使備份服務器可以作為主要服務器(如果主要服務器崩潰)同時完全對客戶端透明,我需要在主要服務器和備份服務器上運行相同的應用程序,並且兩者必須具有相同的狀態。

為此,我必須將備份與主數據庫同步,以便它從客戶端接收相同序列的數據包並發送相同(被抑制)的答復。 為此,我需要獲取備份的初始TCP序列號以與主數據庫的初始序列號匹配。

為了實現此目的,我想到了截取與備份服務器之間的數據包,並修改其TCP報頭中的序列號,使其與主服務器的序列號匹配。 因此,我需要一個應用程序-

  • 讓我即時攔截TCP數據包
  • 讓我修改它們,然后將它們轉發到其原始目的地
  • 確保原始未修改的數據包被丟棄
  • 可以嵌入Java應用程序中的東西是一個巨大的優勢,但這並不是主要要求

有什么辦法可以做到這一點?

對於任何面臨相同問題的人,我終於設法使用ettercap- http: //ettercap.github.io/ettercap/

更具體地說,我使用ARP中毒模式來攔截與服務器之間的數據包,並使用自定義ettercap插件對其進行了適當的修改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM