DHCP协议
0x00:前言
DHCP(Dynamic Host Configuration Protocol),動態主機配置協議,是一個局域網的網絡協議,使用UDP協議工作,常用的2個端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域網環境,主要作用是集中的管理、分配IP地址,使client動態的獲得IP地址、Gateway地址、DNS服務器地址和域名等信息,并能夠提升地址的使用率。簡單來說,DHCP就是一個不需要賬號密碼登錄的、自動給內網機器分配IP地址等信息的協議。
0x01:地址分配方式
(1)手動分配:一般用在固定主機,管理員手動分配IP地址,一般不會再改變
(2)動態分配:注意每次登錄的地址都不一樣,隨機,每次使用完后,DHCP客戶端就得釋放這個IP地址,以給其他客戶端使用
(3)自動分配:自動分配是當DHCP客戶端第一次成功地從DHCP服務器端分配到一個IP地址之后,就永遠使用這個地址。IP地址于MAC地址綁定,只要交換機不重啟,綁定關系不變。IP地址和MAC綁定,可一定程度上防止DHCP欺騙。
注:如果局域網中有兩臺相同IP地址的主機,那么先上線的那個可以上網,原因:基于ARP緩存表,先上線的更新了網關的ARP映射表。經常斷網
0x02:流程
(1)DHCP Discover
DHCP Discover,客戶端廣播請求IP地址
計算機發現本機上沒有任何IP地址設定,將以廣播方式發送DHCP discover發現信息來尋找DHCP服務器,即向255.255.255.255發送特定的廣播信息。
源地址:0.0.0.0
目標地址:255.255.255.255 (目標是廣播地址)
源MAC:主機的物理地址
目的MAC:ff:ff:ff:ff:ff:ff:ff
(2)DHCP Offer
服務器的DHCP響應
源地址:192.168.1.1
目的:255.255.255.255 (廣播地址,因為主機還沒有地址)
源MAC:服務器的物理地址
目的MAC:ff:ff:ff:ff:ff:ff:ff
報文內容:分配的IP、網關、DNS服務器和域名、租約時間和續約時間(續約:當時間在50%客戶端會request服務器 進行續約,如服務器沒有回應,則在租期87.5%時間再次request)
注:再次之前,服務器可能會,用ICMP ECHO REQUEST 報文進行檢查該IP地址是否被占用
(3)DHCP Request
客戶端以廣播的方式回答一個DHCP request請求信息,該信息包含向它所選定的DHCP服務器請求IP地址的內容。
源地址:0.0.0.0
目的地址:255.255.255.255
(4)DHCP ACK
當DHCP服務器收到DHCP客戶端回答的DHCP request請求信息之后,便向DHCP客戶端發送一個包含它所提供的IP地址和其他設置的DHCP ack確認信息,告訴DHCP客戶端可以使用它提供的IP地址。然后,DHCP客戶機便將其TCP/IP協議與網卡綁定,另外,除了DHCP客戶機選中的DHCP服務器外,其他的DHCP服務器將收回曾經提供的IP地址。
源地址:192.168.1.1
目的地址:255.255.255.255
注:以上全部是廣播方式,后面續約是單播方式
0x03:Cisco 路由器配置DHCP
Router>en
Router#config t
Router(config)#ip dhcp pool aaa (創建地址池)
Router(dhcp-config)#network 192.168.1.0 255.255.255.0 (地址池范圍)
Router(dhcp-config)#default-router 192.168.1.1 (默認網關)
Router(dhcp-config)#dns-server 192.168.1.2 (dns-server服務)
Router(dhcp-config)#int fa 0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0 (路由端口IP)
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#ip dhcp excluded-address 192.168.1.200 192.168.1.253 (表示某一段IP地址不由DHCP分配)
Router(config)#ip dhcp excluded-address 192.168.1.254 (表示某一個IP地址不由DHCP分配)
PC:
0x04:DHCP欺騙
DHCP欺騙(DHCP Sproofing)
DHCP Sproofing同樣是一種中間人攻擊方式。DHCP是提供IP地址分配的服務。當局域網中的計算機設置為自動獲取IP,就會在啟動后發送廣播包請求IP地址。DHCP服務器(如路由器)會分配一個IP地址給計算機。在分配的時候,會提供DNS服務器地址。
攻擊者可以通過偽造大量的IP請求包,而消耗掉現有DHCP服務器的IP資源。當有計算機請求IP的時候,DHCP服務器就無法分配IP。這時,攻擊者可以偽造一個DHCP服務器給計算機分配IP,并指定一個虛假的DNS服務器地址。這時,當用戶訪問網站的時候,就被虛假DNS服務器引導到錯誤的網站。
DHCP Sproofing成功的前提是有計算機請求IP。如果計算機使用靜態IP,或者在攻擊前就獲取IP,就不會遭受這類攻擊。
Kali Linux很多工具都提供支持DHCP Sproofing,如Ettercap。
攻擊命令式:
[root@localhostdhcpstarv-0.2.1]# dhcpstarv -i eth0
后面的eth0是你的網卡接口,一般第一個網卡是eth0
開始不斷申請IP地址
DHCP欺騙的解決方案(DHCP SNOOPING)
DHCP SNOOPING截獲交換機端口的DHCP應答報文,建立-張包含有用戶MAC地址、IP地址、 租用期、VLAN ID、交換機端口等信息的一張表,組DHCP SNOOPING還將交換機的端口分為可信任端口和不可信任端口,當交換機從一個不可信任端口收到DHCP服務器的報文時,比如DHCPOFFER報文、DHCPACK報文、DHCPNAK報文,交換機會直接將該報文棄;對信任端口收到的DHCP服務器的報文,交換機不會丟棄而直接轉發。一般將與用戶相連的端口定義為不可信任端口,而將與DHCP服務器或者其他交換機相連的端口定義河信任端口,也就是說,當在一個不可信任端口連接有DHCP服務器的話,該服務器發出的報文將不能通過交換機的端口。因此只要將用戶端口設置為不可信任端口,就可以有效地防止非授權用戶私自設置DHCP服務而引起的DHCP欺騙。
IP地址沖突
在同一個局域網中,如果兩臺計算機同時使用了相同的IP地址,或者其中一臺計算機已經通過DHCP獲得IP地址了,同時其他計算機手動分配了與此相同的IP地址。其中一臺計算機無法正常上網。IP地址沖突也是ARP攻擊的一部分,這種攻擊可以在局域網中產生大量的ARP通信,造成局域網閉塞。黑客只要不斷地發出偽造的ARP響應數據,就能更改目標計算機ARP緩存中的IP/MAC地址信息,造成目標計算機不斷顯示IP地址沖突,無法正常上網。
總結
- 上一篇: 安卓编程坐标系的一个问题
- 下一篇: 《雄霸天地》赚钱之驿站通商功能攻略