摘要:在使用TCP/IP協議的以太網中,使用ARP協議針對目標設備的IP地址,查詢其MAC地址,將IP地址映射到MAC地址,以保證通信的順利進行。ARP表是IP地址和MAC地址的映射關系表,針對ARP表項,一個可能的攻擊就是誤導計算機建立錯誤的ARP表。
關鍵詞:ARP表MAC地址ARP欺騙IP地址
中圖分類號:TP393.1文獻標識碼:A文章編號:1674-098X(2011)03(a)-0051-01
ARP表是IP地址和MAC地址的映射關系表,任何實現了IP協議棧的設備,都通過該表維護IP地址和MAC地址的對應關系。如果一臺計算機接收到了一個ARP請求報文,會用ARP請求報文中的源IP地址和源MAC地址更新自己的ARP緩存。
假設有三臺計算機A,B,C,其中A已經正確建立了B和C計算機的ARP表項。假設B是攻擊者,此時,B發出一個ARP請求報文:源IP地址是C的IP地址,源MAC地址是B的MAC地址;請求的目標IP地址是A的IP地址。計算機A在收到這個ARP請求報文后,發現已有的MAC地址與收到的請求的源MAC地址不符,于是更新自己的ARP表。則A的ARP緩存中就存在這樣的錯誤:C的IP地址跟B的MAC地址對應。則A發給C的數據都被計算機B接收到。
下面搭建如下所述的網絡環境,并利用中軟吉大開發的TCP/IP協議分析系統實現并分析ARP欺騙的工作過程。
1 設備配置環境
主機A :172.16.2.21/24;主機B :172.16.2.24/24;主機C:172.16.2.23/24。使用共享模塊連接各設備。
2 ARP欺騙前
(1)主機A、C啟動協議分析器開始捕獲數據并設置過濾條件為ARP協議和ICMP協議。
(2)主機A ping 主機C。觀察主機A、C上捕獲到的ICMP報文,記錄MAC地址。主機A的IP地址是172.16.2.21;MAC地址 002268-566A79;主機C的IP地址 172.16.2.23;MAC地址 002268-566A38。
3 實施欺騙
(1)主機B啟動仿真編輯器向主機A編輯ARP請求報文,其中:MAC層:“源MAC地址”設置為主機B的MAC地址;“目的MAC地址”設置為主機A的MAC地址。ARP層:“源MAC地址”設置為主機B的MAC地址;“源IP地址”設為主機C的IP地址;“目的MAC地址”設置為000000-000000;;“目的IP地址”設為主機A的IP地址
(2)主機B向主機C編輯ARP請求報文(暫時不發送)。其中:MAC層:“源MAC地址”設置為主機B的MAC地址;“目的MAC地址”設置為主機C的MAC地址。ARP層:“源MAC地址”設置為主機B的MAC地址;“源IP地址”設置為主機A的IP地址;“目的MAC地址”設置為000000-000000;“目的IP地址”設置為主機C的IP地址。
(3)同時發送第1步和第2步所編輯的數據包。注意:為防止主機A和主機C的ARP高速緩存表被其它未知報文更新,可以定時發送數據包(例如:每隔500ms發送一次)。
(4)觀察并記錄主機A和主機C的ARP高速緩存表,如圖1,2所示。
說明:
*主機A原本記錄主機C的IP地址 172.16.2.23;MAC地址 002268-566A38。現在,更新為 172.16.2.23<---->002268-566AB0 (其實是主機B的MAC地址);
*主機C原本記錄主機A的IP地址是172.16.2.21;MAC地址 002268-566A79;現在,更新為 172.16.2.21<---->002268-566AB0(其實是主機B的MAC地址);此時,A ping C,則不會通。
(5)在主機B上啟動靜態路由服務(方法:在命令行方式下,輸入“staticroute_config”),目的是實現數據轉發。此時,A ping C,則能通。分析A、C捕獲的數據包可知數據流向:A→B→C;回應請求:C→B→A;
4 結語
計算機A、C,已經正確建立了ARP表項。攻擊者B冒充C向 A發出ARP請求報文;冒充A向C發出ARP請求報文;計算機A、C在收到這個ARP請求報文后使用ARP請求的源MAC地址(即B的MAC地址)更新各自的ARP表。這樣A、C的ARP緩存中就存在錯誤的ARP表項:A主機中,C的IP地址跟B的MAC地址對應;C主機中,A的IP地址跟B的MAC地址對應。結果是:A發給C的數據都被計算機B接收到,B 主機如果啟用靜態路由,則可以將A的數據轉發給C主機,但這是經過B主機轉發的,這樣B主機就可以截獲A、C間的數據傳輸,而A、C并不知情,實現了欺騙。
參考文獻
[1]蘭少華.TCP/IP網絡與協議.清華大學出版社.2009,6.
[2]網絡協議仿真教學系統.吉林中軟吉大信息技術有限公司.
[3]楊延雙.TCP\\IP協議分析及應用.機械工業出版社.2008,2.