1. 程式人生 > >Qt:Qt實現飛秋攔截助手—介紹

Qt:Qt實現飛秋攔截助手—介紹

Qt實現飛秋攔截助手—介紹

前言

以前看見有人在Linux下面實現過飛秋訊息攔截、修改和轉發功能,我呢 尋思在Windows平臺使用Qt編寫一個飛秋攔截工具,能夠對飛秋訊息進行攔截 轉發,飛秋欺騙功能。當然別小瞧這個軟體,軟體雖小 五臟俱全。會用的Windows API ,WinPcap 庫,ARP協議、IP 協議、UDP協議,位元組對齊 等知識,用Qt編寫當然大量會用到Qt的很多知識唄。我也是邊查資料邊寫的。最後寫的差不多 再開源出來哈。
本節將 介紹飛秋攔截助手 開發思路。

飛秋攔截助手開發思路

這還得從 網路協議協議說起了。這裡簡單介紹下,方便大家理解。我們知道TCP/IP 協議族有4層:網路介面層,網路層,傳輸層,應用層


網路介面層也就是網絡卡層,理論上 實體地址 是全世界唯一的,上層協議組包後都會 在網路介面層將 目的mac地址新增上這樣就能找到 對方主機。這就是我們為什麼先寫 Mac地址掃描器了,因為這樣我們才能 攔截 指定目標的 訊息!
在這裡插入圖片描述

  1. 第一步,Mac地址掃描器,獲取區域網所有的IP已經對應的實體地址
  2. 第二步,實現ARP欺騙。

何為ARP欺騙,這裡簡單說,這裡有A B C 3臺主機,A和B通訊,A 傳送的訊息 應該是傳送給 B,A 本地有ARP快取知道 B的 實體地址,也知道 B的IP地址(IP_B),這時 C 是攻擊者 不停的給A 傳送ARP應答包 告訴A,我是IP_B 我的 實體地址是MAC_C,這時A就會更新ARP 快取 MAC_C - IP_B對應起來,下次 傳送給B訊息是 將訊息打包後 最後在網路 介面層 將訊息傳送給 MAC_B,但實際上這時的實體地址 已經被替換為MAC_C了,所以訊息最終會發送到 攻擊者C中! 因為網絡卡層 已經最底層的資料了,所以我們先寫mac地址掃描器。

  1. 第三步,實現飛秋訊息的攔截,轉發,串改

經過第二步 ARP欺騙後,A 傳送 給 B 的訊息已經被 C攔截到了,此時C可以窺探 A與B的通訊內容,為了不被發現,我們必須得轉發一份,這樣我們的目的就達到了。我們先分析下A 傳送給 B的 資料包。
在這裡插入圖片描述
我們竊取到訊息之後,將報文的目的地址改為MAC_B的,將訊息轉發給B,這些我們就竊取到A和B的通訊內容了。到這一步 就實現了 飛秋訊息的 攔截 轉發 串改

  1. 第四步,實現飛秋欺騙

這一步是幹啥呢?在區域網中 有A B C 3個人,C是攻擊者,他想罵 B ,但是又不敢明說,所以他就 偽裝成為A 去罵 B,B就真以為是A罵的他,這就達到了 飛秋欺騙的目的。這是如何實現的呢?其實就是安裝 A傳送 給B的訊息 包,憑空組一個包 傳送給B 這樣就達到欺騙的目的了。