通訊協議是指雙方實體完成通訊或服務所必須遵循的規則和約定,從而確保網路中資料順利地傳送到確定的地方,通訊協議作為一個網路通訊模型,提供了一整套網路傳輸協議,由於協議家族中的兩大核心協議:TCP(傳輸控制協議)和IP(網際協議)為該家族中最早透過的標準,所以通常將通訊協議家族稱為TCP/IP協議族。
由於在網路中通訊協議採用分層結構,當多個層次的協議同時工作時,規則類似與計算機中的棧空間,所以也被稱為TCP/IP協議棧。
1. 如何進行通訊互動?1.1 計算機網路體系結構分層:OSI七層模型、TCP/IP概念層模型通訊協議分層結構
1.2 網路傳輸流程概覽訊息收發流程
2. 什麼是ARP協議ARP(Address Resolution Protocol)協議是地址解析協議,作用與乙太網環境,在乙太網中,資料傳輸定址是透過MAC地址而不是IP地址,從而依賴ARP協議將已知IP地址轉換為MAC地址供定址使用。
ARP協議工作在資料鏈路層,與硬體介面通訊,同時為上層協議提供服務。 例:某IP資料包透過乙太網進行傳輸過程中,乙太網裝置是不能識別32位IP地址的,而是以48位乙太網地址(MAC地址)傳輸資料包的。此時則需要透過ARP協議對IP地址解析為對應的MAC地址。
2.1 ARP快取表每臺主機都有一張ARP快取表,它記錄著乙太網中近期互動的主機IP地址和MAC地址的對應關係。
windows/linux下可以透過命令列輸入“arp -a”檢視本機ARP快取表
2.2 ARP動態對映動態對映時,每次只要機器知道另一臺需要通訊主機的區域網IP地址,就可以使用協議找出物理地址。實現動態對映協議為ARP和RARP兩種。
ARP把IP地址對映為物理地址RARP把物理地址對映為IP地址 由此便可以完成自己ARP快取表的動態對映動作。2.3 ARP請求與響應過程① PC1想傳送資料給PC2時,PC1首先會在本地的ARP快取表中檢視PC2的MAC地址。因為區域網內通訊時,需要明確自己的目標,獲取目標的IP地址及MAC地址。
② 如果PC1在快取表中沒有找到PC2對應的MAC地址,便會將ARP請求幀廣播到乙太網中所有的主機。該幀中包括PC1的IP地址和MAC地址和目標主機PC2的IP地址。
④ PC2發現請求IP與自己匹配,則將PC1的IP地址和MAC地址新增至自己本地的ARP快取表中。
⑤ PC2將包含其MAC地址的ARP回覆包以單播的形式傳送給PC1。
⑥ PC1接收到PC2的ARP回覆包,將主機PC2的IP地址和MAC地址新增到自己的本地ARP快取表,便可以正常的與P2進行訊息互動了。
本地ARP快取是有生存週期的,預設ARP生存週期為120s
2.4 ARP報文分析ARP報文格式
硬體型別:表示硬體地址的型別(1表示乙太網地址,還可能表示令牌環地址)協議型別:表示要對映的協議地址型別(0x0800表示IP地址)硬體地址長度:指出該報文中硬體地址的長度(ARP報文中,該值為6)協議地址長度:該報文中協議地址的長度(ARP報文中,該值為4)op:操作欄位,共4種(1.ARP請求,2.ARP應答,3.RARP請求,4.RARP應答)傳送者硬體地址:傳送方裝置的硬體地址傳送者IP地址:傳送方裝置IP地址目的硬體地址:接收方裝置硬體地址目的IP地址:接收方裝置IP地址2.5 ARP報文抓取開啟混雜模式下監聽所在乙太網中的ARP報文,根據上面的報文格式分析,選中的ARP報文是MAC地址為04:e6:76:68:59:ea的主機發出的ARP廣播報,目的是為了獲取IP地址為192.168.1.248的主機的MAC地址。
3. 基於ARP協議攻擊3.1 ARP協議缺陷ARP協議是建立在信任區域網內所有節點的基礎上,它很高效,但是並不安全。它是無狀態的協議,不會檢查自己是否發過請求包,也無法判斷是否是合法的應答,只要收到目標MAC是自己的ARPreply包或arp廣播包,都會接收並快取。這就為ARP欺騙提供了可能,惡意節點可以釋出虛假的ARP報文從而影響網內節點的通訊,甚至可以做“中間人”,發起中間人攻擊。
3.2 常見的ARP攻擊① ARP斷網攻擊:偽造ARP報文並頻繁傳送至區域網中,強制篡改被攻擊者的ARP快取表,導致被攻擊者所有流量傳送至攻擊者或未知地址,無法發出網路請求至公網。
3.3 ARP攻擊原理分析① 假冒ARPreply包(單播或廣播),向單體主機或多臺主機發送虛假的IP/MAC地址。
② 假冒ARPrequest包(單播或廣播),實際上是單播或廣播虛假的IP,MAC對映。
3.4 攻擊流程使用kali系統或centos系統,kali系統天然自帶很多攻擊工具,所以實現比較簡單,centos需要額外安裝一些工具* >Kali 是一個基於 Debian 的 Linux 發行版。目標旨在儘可能多的包含滲透和審計工具,所以大多數做安全測試的開源工具都被囊括在其中。 Kali是一個安全工具,有著像 NMap 和 Wireskark 這樣的經典資訊採集工具、也有像 Hydra、Crunch、Hashcat、以及 John the Ripper 這樣的密碼破解工具。
重要的是,Kali並不是一個平時可以隨意使用的系統,使用不當會造成很多實質性的危害。所以若使用Kali,請合理合法的發揮他的優勢,否則在給別人帶來危害時,同時給自己也會帶來無法彌補的麻煩。
① 發起區域網內攻擊時,需要明確自己的目標,獲取目標的IP地址及閘道器的IP地址。
檢視同一區域網內線上的主機情況: >fping -asg 192.168.xxx.0/24 >
如何甄別誰的ip才是你要攻擊的ip,也可以根據ARP快取表中的MAC地址進行廠牌分析,還可以進行傳說中的社會工程學~
② 找到需要攻擊的線上主機後,便可以開始非常簡單的一行命令攻擊。
arpspoof -i eth0 -t 192.168.135.131 192.168.135.2 >
eth0:網絡卡第一個IP:被攻擊者IP第二個IP:在他ARP快取表中偽造的身份(比如這裡寫閘道器ip,他會認為你才是閘道器)發起命令後,將會進行持續的ARP轟炸,不斷地告訴被攻擊者,你要找的閘道器是我,你把包都發給我。在沒有開啟流量轉發的時候,被攻擊者目前應該已經處於斷網狀態了,大功告成。
3.5 防禦方法在客戶端使用arp命令繫結閘道器的真實MAC地址命令如下:arp-d*(先清除錯誤的ARP表)arp-s192.168.xxx.xxx xx-xx-xx-xx-xx-xx(靜態指定閘道器的MAC地址)在交換機上做埠與MAC地址的靜態繫結。在路由器上做IP地址與MAC地址的靜態繫結。使用”ARPSERVER”按一定時間間隔廣播網段內所有主機的正確IP-MAC對映表。最主要是要提高使用者的安全意識,養成良好的安全習慣,包括:及時安裝系統補丁程式,為系統設定強壯的密碼,安裝防火牆,安裝有效的防毒軟體並及時升級病毒庫不主動進行網路攻擊,不隨便執行不受信任的軟體。溫馨提示:不要輕易在任何現實環境中進行此類攻擊測試,可以自己透過組網搭建虛擬環境進行此類攻擊測試。
PS: