1. 程式人生 > >Wireshark抓包分析Yersinia 根據DHCP協議傳送的偽造資料包攻擊(sending RAW packet)

Wireshark抓包分析Yersinia 根據DHCP協議傳送的偽造資料包攻擊(sending RAW packet)

抓包結果如下:


抓包與分析

幀號時間源地址目的地址高層協議包內資訊概況No.  Time   Source        Destination      Protocol    Info
5  1.04252000  0.0.0.0   255.255.255.255  DHCP    -TransactionID 0x643c9869                      
源埠>目的埠[請求建立DHCP連結]
以下為物理層的資料幀概況

Frame 5 (286bytes on wire,286 bytes captured) 5號幀,線路286位元組,實際捕獲286位元組Arrival Time: Dec 13, 201719:03:26.818512000

中國標準時間捕獲日期和時間Time delta from previous captured frame:0.249290000 seconds此包與前一包的時間間隔Time since reference or first frame:1.042520000 seconds此包與第1幀的間隔時間
Frame Number: 5                                    
幀序號Packet Length: 286bytes                            幀長度Capture Length: 286bytes                           
捕獲長度[Frame is marked:False]                           此幀是否做了標記:否[Protocols in frame: eth:ip:udp]                   幀內封裝的協議層次結構[Coloring Rule Name: udp]           用不同顏色染色標記的協議名稱:HTTP
[Coloring Rule String: udp]     
染色顯示規則的字串:

以下為資料鏈路層乙太網幀頭部資訊

EthernetII, Src: 02:48:33:66:02:51 (02:48:33:66:02:51), Dst: Broadcast(ff:ff:ff:ff:ff:ff)

乙太網協議版本II,源地址:廠名_序號(網絡卡地址),目的:廠名_序號(網絡卡地址) Destination: Broadcast(ff:ff:ff:ff:ff:ff)目的:廠名_序號(網絡卡地址)
Source: 02:48:33:66:02:51 (02:48:33:66:02:51) 
源:廠名_序號(網絡卡地址)
  Type: IP (0x0800) 
幀內封裝的上層協議型別為IP(十六進位制碼0800

以下為網際網路層IP包頭部資訊

InternetProtocol Version 4, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255(255.255.255.255)                    網際網路協議,源IP地址,目的IP地址Version: 4 網際網路協議IPv4

Headerlength: 20bytes                             IP包頭部長度Differentiated Services Field: 0x10 (DSCP0x04: Unknown DSCP; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))差分服務欄位Total Length:272                                         IP包的總長度

Identification:0x0000(0)                           標誌欄位

Flags:       標記欄位(在路由傳輸時,是否允許將此IP包分段,教材125頁)

Fragmentoffset: 0   分段偏移量(將一個IP包分段後傳輸時,本段的標識)Time to live: 16                                          生存期TTL
Protocol: udp(0x06)                         
此包內封裝的上層協議為udp
Header checksum: 0xa9ce [validation disabled]                 
頭部資料的校驗和Source GeoIP: UnknownIP地址Destination GeoIP: Unknown目的IP地址

以下為傳輸層UDP資料段頭部資訊

UserDatagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)

傳輸控制協議UDP的內容Source port: bootpc (68)源埠名稱(埠號)
Destination port: bootps (67)
目的埠名bootps(埠號67
Length: 252bytes                                       
長度Checksum: 0x53e3 [validation disabled]  TCP資料段的校驗和Options:                                         可選項

 

首先host向區域網廣播一個discover包,此時ip.src為0.0.0.0。

從上圖可以看出,DHCP屬於應用層協議,它在傳輸層使用UDP協議,目的埠是67。

 

(1)DHCP伺服器仍然使用廣播地址作為目的地址,因為此時請求分配IP的Client並沒有自己ip,而可能有多個Client在使用0.0.0.0這個IP作為源IP向DHCP伺服器發出IP分配請求。通常來說DHCP也不能使用0.0.0.0這個IP作為目的IP地址,但我們是RAW(偽造資料包),於是依然採用廣播的方式,告訴正在請求的Client們,這是一臺可以使用的DHCP伺服器。

(2)我們偽造了一個可用的IP,在資料包的Your (client) IP Address欄位可以看到。

(3)除此之外,伺服器還發送了DHCP資料包和END等資訊。

攻擊方案驗證(攻擊與防範)

 DHCP假冒攻擊(sending RAW packet)

耗盡DHCP服務端的地址資源之後,攻擊者就可以架設自己的DHCP伺服器,從而實現DHCP假冒攻擊

首先在假冒的DHCP伺服器上架設DHCP服務,指定地址池範圍為192.168.1.100~200,並將預設閘道器指向Kali LinuxIP地址192.168.1.5。需要注意的是,在將DHCP服務架設好之後,先暫時不要將服務啟用,由於此時Kali Linux上的DHCP 耗盡攻擊仍在繼續,一旦啟用服務,這臺假冒DHCP伺服器的地址資源也將會很快被耗盡。

下面在Kali Linux上停止攻擊,並快速啟用假冒DHCP伺服器上的DHCP服務,可以看到被攻擊主機成功從假冒伺服器處申請到了IP地址。

這裡同樣需要注意一個問題,在將Yersinia停止攻擊之後,一定要快速啟用假冒DHCP伺服器上的DHCP服務。這是因為Yersinia的攻擊原理是傳送大量的DHCP Discover報文,交換機會向其返回DHCP Offer報文,而在這個Offer報文中所提供的IP地址並未真正分配出去,在等待一段時間之後(大約5分鐘),交換機會自動將IP地址收回,因而只要停止攻擊之後過一段時間,交換機就會自動恢復正常。

攻擊成功之後,被攻擊主機的上網流量就將全部被導向到Kali Linux。在Kali中需要執行下面的命令開啟路由轉發功能,以便將被攻擊主機的資料轉發到網際網路。

echo 1> /proc/sys/net/ipv4/ip_forward

最後,就可以在Kali Linux中利用Wireshark等抓包工具來截獲被攻擊主機的上網資料了。不過對於這種DHCP攻擊方式,只能單向截獲從被攻擊主機發往網際網路的資料,而無法截獲從網際網路發回給被攻擊主機的資料,這是由於DHCP攻擊無法去攻擊預設閘道器等網路出口裝置,要想真正實現雙向截獲資料的中間人攻擊,還是要通過ARP欺騙等攻擊方式。

防範DHCP假冒攻擊

在交換機上通過傳統的DHCPSnooping技術就可以來防範DHCP假冒攻擊。當啟用了DHCPSnooping功能之後,交換機的所有埠都將無法接收DHCP Offer報文,這樣假冒的DHCP伺服器就無法向外分配IP地址了。

下面在神州數碼CS6200交換機上啟用並配置DHCPSnooping功能。

#啟用DHCPSnooping功能:

CS6200(config)#ipdhcp snooping enable

#DHCPSnooping應用於指定的VLAN,這裡應用於預設的VLAN 1

CS6200(config)#ipdhcp snooping vlan 1

啟用了DHCP Snooping功能之後,還需要設定如果從某個埠收到假冒DHCP服務報文後,將對這個埠如何處理。處理動作有兩個:

  shutdown:埠檢測到假冒DHCP Server時,將shutdown此埠。

  blackhole:埠檢測到假冒DHCP Server時,將以偽裝資料包的vid和源mac設定blackhole來阻止此Mac的流量,也就是將假冒伺服器的資料暫時丟棄一段時間,可選擇的時間範圍為10~3600秒。

比如將20號埠設定為接收到假冒伺服器報文後,將資料暫時丟棄300秒。

CS6200 (config-if-ethernet1/0/20)#ipdhcpsnooping actionblackhole recovery 300

由於shutdown的處理動作過於嚴格,因而建議採用blackhole模式進行防範。