《Python安全實(shí)踐-PythonHacking》課件-第4章_第1頁(yè)
《Python安全實(shí)踐-PythonHacking》課件-第4章_第2頁(yè)
《Python安全實(shí)踐-PythonHacking》課件-第4章_第3頁(yè)
《Python安全實(shí)踐-PythonHacking》課件-第4章_第4頁(yè)
《Python安全實(shí)踐-PythonHacking》課件-第4章_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第四章Python協(xié)議攻擊4.1TCP/IP協(xié)議體系結(jié)構(gòu)4.2MAC泛洪攻擊4.3ARP協(xié)議攻擊4.4DHCP協(xié)議攻擊4.5DNS協(xié)議攻擊習(xí)題

4.1

TCP/IP協(xié)議體系結(jié)構(gòu)

TCP/IP協(xié)議體系結(jié)構(gòu)是Internet所采用的協(xié)議模型,是整個(gè)互聯(lián)網(wǎng)的核心。4.1.1

TCP/IP分層模型

TCP/IP模型使用四層,邏輯上對(duì)應(yīng)OSI參考模型的七層,如圖4-1所示。圖4-1OSI參考模型和TCP/IP分層模型

1.網(wǎng)絡(luò)接入層(NetworkAccessLayer)

TCP/IP體系結(jié)構(gòu)的最底層是網(wǎng)絡(luò)接入層,相對(duì)于OSI參考模型的物理層和數(shù)據(jù)鏈路層,主要提供主機(jī)的接入功能,使得主機(jī)可以接入網(wǎng)絡(luò),通常由網(wǎng)卡實(shí)現(xiàn)該層的功能。

在很多的TCP/IP網(wǎng)絡(luò)中,網(wǎng)絡(luò)層并不運(yùn)行任何的TCP/IP協(xié)議。例如,運(yùn)行在以太網(wǎng)之上的TCP/IP,通常由以太網(wǎng)處理下兩層的功能。

2.網(wǎng)際層(InternetLayer)

網(wǎng)際層對(duì)應(yīng)于OSI參考模型的網(wǎng)絡(luò)層,主要負(fù)責(zé)邏輯設(shè)備的尋址、數(shù)據(jù)分組的封、數(shù)據(jù)分組的發(fā)送和接收、路由等功能。該層最主要的協(xié)議就是IP協(xié)議,也是TCP/IP協(xié)議的核心,其他支撐協(xié)議還包括ICMP、路由協(xié)議(如RIP、OSFP、BGP等)、新版的IP協(xié)議,也就是下一代的IPv6。

3.傳輸層(Host-to-HostTransportLayer)

傳輸層實(shí)現(xiàn)端到端的數(shù)據(jù)傳輸。傳輸層在網(wǎng)際層的基礎(chǔ)上為高層提供“面向連接”和“面向無(wú)接連”的兩種服務(wù)。傳輸層在應(yīng)用中提供透明的數(shù)據(jù)傳輸。傳輸層在給定的鏈路上通過(guò)流量控制、分段/重組和差錯(cuò)控制向上層提供可靠的面向連接的數(shù)據(jù)傳輸服務(wù)。傳輸層向下利用網(wǎng)際層提供的服務(wù),并通過(guò)傳輸層地址(端口)提供給高層用戶傳輸數(shù)據(jù)的通信端口實(shí)現(xiàn)連接復(fù)用。

4.應(yīng)用層(ApplicationLayer)

應(yīng)用層是TCP/IP模型的最高層,是用戶、應(yīng)用程序和網(wǎng)絡(luò)之間的接口,其功能是直接向用戶提供各種網(wǎng)絡(luò)服務(wù)。應(yīng)用層為用戶提供的服務(wù)和協(xié)議包括網(wǎng)頁(yè)服務(wù)(HTTP)、名字服務(wù)(DNS)、文件服務(wù)(NFS)、目錄服務(wù)(LDAP)、文件傳輸服務(wù)(FTP)、遠(yuǎn)程登錄服務(wù)(Telnet)、電子郵件服務(wù)(SMTP)、網(wǎng)絡(luò)管理服務(wù)(SNMP)、數(shù)據(jù)庫(kù)服務(wù)(MySQL)等。上述各種網(wǎng)絡(luò)服務(wù)由該層的不同應(yīng)用協(xié)議和程序完成。

4.1.2

TCP/IP協(xié)議

TCP/IP協(xié)議族包含了成百上千的協(xié)議,每種協(xié)議駐留在特定的分層模型中完成某種特定的功能。這些協(xié)議一起協(xié)同完成TCP/IP網(wǎng)絡(luò)。

限于篇幅,下面將對(duì)TCP/IP協(xié)議族的核心協(xié)議進(jìn)行簡(jiǎn)單介紹,在后續(xù)介紹相關(guān)協(xié)議的攻擊過(guò)程中還會(huì)詳細(xì)討論。TCP/IP協(xié)議族的核心協(xié)議如圖4-2所示。

圖4-2

TCP/IP協(xié)議族

1.網(wǎng)絡(luò)接入/網(wǎng)際層(OSILayer2/3)協(xié)議

表4-1給出了ARP和RARP協(xié)議的簡(jiǎn)單說(shuō)明,這兩個(gè)協(xié)議可以說(shuō)是連接第二層和第三層的協(xié)議,其功能是完成邏輯地址(IP地址)和物理地址(網(wǎng)卡MAC地址)之間的轉(zhuǎn)換。

2.網(wǎng)際層(OSILayer3)協(xié)議

網(wǎng)際層包含核心的IP協(xié)議以及其他相關(guān)的支撐協(xié)議,如表4-2所示。

3.主機(jī)對(duì)主機(jī)傳輸層(OSILayer4)協(xié)議

傳輸層包含另外兩個(gè)非常重要的協(xié)議:TCP和UDP,如表4-3所示。

4.應(yīng)用層(OSILayer5/6/7)協(xié)議

應(yīng)用層是給各個(gè)軟件提供接口來(lái)實(shí)現(xiàn)多樣化的網(wǎng)絡(luò)服務(wù),每種網(wǎng)絡(luò)服務(wù)都有相應(yīng)的協(xié)議來(lái)實(shí)現(xiàn)。常見的應(yīng)用層協(xié)議如表4-4所示。

4.2MAC泛洪攻擊

交換機(jī)是一種基于MAC地址識(shí)別,能完成封裝、轉(zhuǎn)發(fā)數(shù)據(jù)包功能的網(wǎng)絡(luò)設(shè)備。交換機(jī)可以“學(xué)習(xí)”MAC地址,并把其存放在內(nèi)部地址表(內(nèi)容可尋址存儲(chǔ)器(ContentAddressableMemory),簡(jiǎn)稱CAM)中,通過(guò)在數(shù)據(jù)幀的發(fā)送者和目標(biāo)接收者之間建立臨時(shí)的交換路徑,使數(shù)據(jù)幀直接由源地址到達(dá)目的地址。

MAC地址泛洪攻擊(CAM表泛洪攻擊)是攻擊者通過(guò)連接交換機(jī)的某個(gè)端口,并發(fā)送大量的具有不同的偽造源MAC地址的以太網(wǎng)幀,利用交換機(jī)的“學(xué)習(xí)”功能,使得交換機(jī)的CAM表溢出,無(wú)法存儲(chǔ)更多的表項(xiàng),造成交換機(jī)工作于hub模式,從而在各個(gè)端口轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量。

利用Scapy庫(kù)很容易實(shí)現(xiàn)CAM溢出攻擊,為確保攻擊效果,IP分組采用隨機(jī)的源和目的IP地址進(jìn)行填充。攻擊腳本實(shí)現(xiàn)如下:

4.3ARP協(xié)議攻擊

針對(duì)ARP協(xié)議的各類攻擊在網(wǎng)絡(luò)攻防對(duì)抗中有著廣泛的應(yīng)用,利用ARP協(xié)議可以實(shí)現(xiàn)中間人劫持(注入和監(jiān)視)、拒絕服務(wù)和信息偵察。

ARP協(xié)議用于IP地址和網(wǎng)卡MAC地址之間的轉(zhuǎn)換,其中的主要原因是,IP地址用于Internet的網(wǎng)絡(luò)通信,而MAC地址主要用于局域網(wǎng)內(nèi)部的通信。也就是在互聯(lián)網(wǎng)上要傳輸數(shù)據(jù)必須用IP地址,而在內(nèi)部網(wǎng)絡(luò)中通信則用的是MAC地址。

ARP協(xié)議的作用就在于當(dāng)一個(gè)數(shù)據(jù)包(快遞)到了網(wǎng)關(guān)(學(xué)校)以后,必須把IP地址(西安電子科技大學(xué))轉(zhuǎn)換成對(duì)應(yīng)的MAC地址(123號(hào)信箱),以便于數(shù)據(jù)包準(zhǔn)確地到達(dá)目的地主機(jī)。

4.3.1

ARP協(xié)議的工作原理

ARP協(xié)議為了完成IP地址和MAC地址之間的映射,采用的是廣播的工作方式。例如,你()想知道IP地址29對(duì)應(yīng)的網(wǎng)卡地址是多少,你就會(huì)廣播(喊一聲)一個(gè)請(qǐng)求分組,分組內(nèi)容是:“29在嗎,把你的MAC地址告訴我?!逼銩RP請(qǐng)求報(bào)文廣播發(fā)送的工作原理如圖4-3所示。

圖4-3

ARP請(qǐng)求報(bào)文的廣播發(fā)送

由于是廣播發(fā)送,因此局域網(wǎng)內(nèi)的所有主機(jī)都可以接收到(看到)這個(gè)ARP請(qǐng)求。表現(xiàn)在底層的網(wǎng)絡(luò)協(xié)議上,如圖4-4所示。從圖中可知:

(1)

ARP協(xié)議的封裝(層次)相對(duì)簡(jiǎn)單,只有以太網(wǎng)(Ethernet)和ARP兩層。

(2)以太網(wǎng)由14個(gè)字節(jié)組成,分別是6個(gè)字節(jié)的目的地網(wǎng)卡地址(在此由于是廣播工作方式,因此其取值為6個(gè)字節(jié)的ff)、6個(gè)字節(jié)的源網(wǎng)卡地址和2個(gè)字節(jié)的協(xié)議類型(ARP協(xié)議,取值0x0806)。

(3)

ARP協(xié)議是請(qǐng)求分組,其操作碼(Opcode)等于1。

(4)操作碼后面緊跟的是請(qǐng)求者的MAC和IP地址,以及目標(biāo)的MAC和IP地址;由于目標(biāo)的MAC地址未知,因此其取值為全零。

圖4-4

ARP廣播發(fā)送的請(qǐng)求報(bào)文

理論上,問(wèn)誰(shuí)就誰(shuí)回答!就如同上課時(shí)老師點(diǎn)名一樣,點(diǎn)誰(shuí)的名字誰(shuí)就答到。但事實(shí)上誰(shuí)都可以假冒他人(其他計(jì)算機(jī))進(jìn)行應(yīng)答。

這就是ARP協(xié)議的安全問(wèn)題所在,也是ARP類攻擊的核心。其產(chǎn)生的主要原因是:

(1)局域網(wǎng)內(nèi)MAC地址起作用;

(2)網(wǎng)內(nèi)其他計(jì)算機(jī)可以任意偽造ARP應(yīng)答;

(3)計(jì)算機(jī)針對(duì)收到的ARP應(yīng)答無(wú)法識(shí)別真假(無(wú)狀態(tài)協(xié)議)。

針對(duì)圖4-4所示的ARP請(qǐng)求分組,對(duì)應(yīng)的應(yīng)答分組如圖4-5所示。圖4-5

ARP應(yīng)答報(bào)文

在圖4-5中,操作碼(opcode)是2,表示應(yīng)答分組,最后20個(gè)字節(jié)分別給出了該應(yīng)答分組的發(fā)送方(被請(qǐng)求的主機(jī))和接收方(ARP請(qǐng)求報(bào)文的發(fā)起者)。該應(yīng)答分組的含義就是告訴接收方(29),IP地址為54對(duì)應(yīng)的MAC地址是00:50:56:fe:72:d0。

主機(jī)在收到上述ARP應(yīng)答分組以后,將更新ARP緩存表,如圖4-6所示。

圖4-6

ARP緩存

至此,所有發(fā)送給54地址的網(wǎng)絡(luò)數(shù)據(jù)都將發(fā)往MAC地址:00:50:56:fe:72:d0!所面臨問(wèn)題是,如果某臺(tái)主機(jī)A偽造了主機(jī)B的ARP應(yīng)答分組,那么所有發(fā)給主機(jī)B的網(wǎng)絡(luò)分組實(shí)際上都被發(fā)送給主機(jī)A了,這就是典型的ARP欺騙攻擊,造成的后果可能是網(wǎng)絡(luò)中斷、連接被劫持、數(shù)據(jù)被竊取等。

4.3.2

ARP欺騙攻擊

ARP欺騙攻擊是指通過(guò)主動(dòng)發(fā)送偽造ARP報(bào)文,把發(fā)送者的MAC地址偽造成攻擊者主機(jī)的MAC地址,把發(fā)送者的IP地址偽造成被攻擊主機(jī)的IP地址。通過(guò)不斷發(fā)送這些偽造的ARP報(bào)文,讓局域網(wǎng)內(nèi)所有的主機(jī)和網(wǎng)關(guān)ARP表中對(duì)應(yīng)的MAC地址均為攻擊者的MAC地址,實(shí)現(xiàn)局域網(wǎng)內(nèi)所有的網(wǎng)絡(luò)流量都發(fā)給攻擊者主機(jī)的目的。

由于ARP欺騙攻擊導(dǎo)致了主機(jī)和網(wǎng)關(guān)的ARP表的錯(cuò)誤映射,這種情形被稱為ARP中毒(毒化)。

根據(jù)ARP欺騙者與被欺騙者(或稱受害者)之間角色關(guān)系的不同,通??梢园袮RP欺騙攻擊分為如下兩種,如圖4-7所示。

(1)主機(jī)型ARP欺騙:欺騙者主機(jī)冒充網(wǎng)關(guān)設(shè)備對(duì)其他主機(jī)進(jìn)行欺騙。

(2)網(wǎng)關(guān)型ARP欺騙:欺騙者主機(jī)冒充其他主機(jī)對(duì)網(wǎng)關(guān)設(shè)備進(jìn)行欺騙。

其實(shí)在很多時(shí)候,ARP欺騙攻擊采用的都是雙向欺騙,既欺騙主機(jī)又欺騙網(wǎng)關(guān)。

圖4-7ARP欺騙類型

ARP欺騙攻擊的關(guān)鍵是偽造ARP應(yīng)答數(shù)據(jù)包

1.實(shí)驗(yàn)網(wǎng)絡(luò)基本信息

本次ARP欺騙攻擊采用的網(wǎng)絡(luò)環(huán)境(包括網(wǎng)絡(luò)參數(shù))如圖4-8所示。圖中,Kali(虛擬機(jī))為攻擊主機(jī),Win7(虛擬機(jī))為受害者主機(jī),這兩臺(tái)虛擬機(jī)通過(guò)NAT網(wǎng)絡(luò)模式實(shí)現(xiàn)互聯(lián)網(wǎng)的訪問(wèn)。

圖4-8實(shí)驗(yàn)網(wǎng)絡(luò)環(huán)境

2.構(gòu)造ARP欺騙數(shù)據(jù)包

在此,以主機(jī)欺騙為目的,也就是告訴Win7(受害者主機(jī)),網(wǎng)關(guān)的物理地址是Kail(攻擊主機(jī))的MAC地址,由此實(shí)現(xiàn)Kali劫持Win7的網(wǎng)絡(luò)通信的目的。

首先了解一下Scapy庫(kù)的ARP類構(gòu)造函數(shù)的參數(shù)列表,如圖4-9所示。

圖4-9ARP協(xié)議字段

由圖4-9可見,在ARP欺騙攻擊中需要構(gòu)造的ARP字段主要有以下5個(gè)參數(shù):

(1)

op:操作碼,取值為1或者2,代表ARP請(qǐng)求或者應(yīng)答包,默認(rèn)取值為1。

(2)

hwsrc:發(fā)送方MAC地址。

(3)

psrc:發(fā)送方IP地址。

(4)

hwdst:目標(biāo)MAC地址。

(5)

pdst:目標(biāo)IP地址。

3.定向主機(jī)欺騙

Kali(29)(虛擬機(jī))的目標(biāo)很明確,就是給Win7(40)主機(jī)提供虛假的網(wǎng)關(guān)MAC地址,反映在ARP數(shù)據(jù)包的構(gòu)造上,就是:

在上述ARP協(xié)議數(shù)據(jù)包中,將Kali(虛擬機(jī))的MAC地址和網(wǎng)關(guān)的IP地址進(jìn)行了綁定,op取值為2,作為一個(gè)響應(yīng)包被Win7(虛擬機(jī))接收,這樣Win7會(huì)理解為網(wǎng)關(guān)的IP地址對(duì)應(yīng)的是Kali的MAC地址,并更新自己的ARP(緩存)表,造成中毒,從而使得Win7發(fā)往網(wǎng)關(guān)的數(shù)據(jù)包都會(huì)被實(shí)際發(fā)往Kali。再次強(qiáng)調(diào),局域網(wǎng)內(nèi)MAC地址是真正的目的地址,而不是IP地址。

4.發(fā)送欺騙ARP分組

數(shù)據(jù)包在構(gòu)造完成之后,剩下要做的就是發(fā)送。由于數(shù)據(jù)包使用了以太網(wǎng)頭,因此發(fā)送數(shù)據(jù)包需要使用sendp方法,該方法工作在第二層協(xié)議上,可以選擇合適的網(wǎng)絡(luò)接口、發(fā)送間隔等參數(shù),具體使用實(shí)例如下:

sendp(pkt,inter=2,loop=1,iface=網(wǎng)卡)

5.廣播發(fā)送欺騙分組對(duì)局域網(wǎng)所有機(jī)器的影響

具體使用實(shí)例如下:

將數(shù)據(jù)鏈路層的目標(biāo)MAC地址置為全ff,此時(shí)該信息的接收者將只關(guān)注hwsrc和psrc信息,更新本地ARP緩存。

4.4DHCP協(xié)議攻擊

4.4.1

DHCP協(xié)議介紹

DHCP(DynamicHostConfigurationProtocol)是動(dòng)態(tài)主機(jī)配置協(xié)議,它工作在OSI的應(yīng)用層,用于從指定的DHCP服務(wù)端獲取有關(guān)TCP/IP協(xié)議配置信息。

DHCP使用客戶端/服務(wù)端模式,請(qǐng)求配置信息的計(jì)算機(jī)為DHCP客戶端,而提供信息的是DHCP的服務(wù)端。DHCP為客戶端分配地址的方法有三種:手工配置、自動(dòng)配置和動(dòng)態(tài)配置。

4.4.2

DHCP協(xié)議流程

在DHCP客戶端和DHCP服務(wù)端的協(xié)議交互過(guò)程中(比如,一個(gè)IP地址請(qǐng)求),主要包含以下四個(gè)步驟:

(1)發(fā)現(xiàn)階段,即DHCP客戶端尋找DHCP服務(wù)端的階段??蛻舳讼蚓W(wǎng)絡(luò)發(fā)送一個(gè)DHCPDiscover數(shù)據(jù)包(廣播包)來(lái)尋找DHCP服務(wù)端,參見圖4-10中的(1)。

(2)提供階段,即DHCP服務(wù)端提供IP地址的階段當(dāng)授權(quán)的DHCP服務(wù)端監(jiān)聽到客戶端發(fā)送的DHCPDiscover廣播時(shí),會(huì)從未分配的地址范圍中選一個(gè)IP地址,連同其他TCP/IP配置信息,給客戶端返回一個(gè)DHCPOffer數(shù)據(jù)包,參見圖4-10中的(2)。

(3)選擇階段,即DHCP客戶端選擇某臺(tái)DHCP服務(wù)端提供的IP地址的階段。如果客戶端收到網(wǎng)絡(luò)上多臺(tái)DHCP服務(wù)端的響應(yīng),只會(huì)挑選其中一個(gè)DHCPOffer(通常是最先到達(dá)的那個(gè)),并且再向網(wǎng)絡(luò)發(fā)送一個(gè)DHCPRequest廣播數(shù)據(jù)包,告訴所有DHCP服務(wù)端它將指定接收哪一臺(tái)服務(wù)端提供的IP地址,參見圖4-10中的(3)。

(4)確認(rèn)階段,即DHCP服務(wù)端確認(rèn)所提供的IP地址的階段。當(dāng)DHCP服務(wù)端接收到客戶端的DHCPRequest之后,會(huì)向客戶端返回一個(gè)DHCPACK響應(yīng)數(shù)據(jù)包,以確認(rèn)IP租約配置正式生效,參見圖4-10中的(4)。

整個(gè)交互過(guò)程如圖4-10所示。

圖4-10

DHCP協(xié)議工作流程

通過(guò)上述DHCP的協(xié)議工作流程分析可知,從DHCP服務(wù)端獲取配置信息的4個(gè)階段中,DHCP客戶端會(huì)出現(xiàn)有四種報(bào)文:DHCP

Discover、DHCP

Offer、DHCP

Request和DHCP

ACK),每種報(bào)文的格式如圖4-11所示。

圖4-11

DHCP數(shù)據(jù)包格式

圖4-11中各個(gè)字段含義如下:

(1)

Operation

code:若是客戶端發(fā)送給服務(wù)端的數(shù)據(jù)包,則設(shè)為1;反向則設(shè)為2。

(2)

Hardwaretype:硬件類別,Ethernet情況下為1。

(3)

Hardwarelength:硬件長(zhǎng)度,Ethernet情況下為6。

(4)

Hop

count:若數(shù)據(jù)包需經(jīng)過(guò)路由器傳輸,則每個(gè)路由器加1;若數(shù)據(jù)包在同一網(wǎng)內(nèi),則為0。

(5)

TransactionID:事務(wù)ID,是個(gè)隨機(jī)數(shù),用于客戶端和服務(wù)端之間匹配請(qǐng)求和響應(yīng)信息。

(6)

Numberofseconds:由用戶指定的時(shí)間,指開始地址獲取和更新后的時(shí)間。

(7)

Flags:從0~15bits,最左一個(gè)比特為1時(shí)表示服務(wù)端將以廣播方式傳送數(shù)據(jù)包給客戶端;其余位尚未使用。

(8)

Ciaddr:客戶端的IP地址,一般為空。

(9)

Yiaddr:服務(wù)端分配給客戶端的IP地址。

(10)

Siaddr:候選的下一個(gè)服務(wù)器IP地址,在此次DHCP分配失敗情況下使用。

(11)

Giaddr:轉(zhuǎn)發(fā)代理(網(wǎng)關(guān))IP地址。

(12)

Chaddr:客戶端的硬件地址。

(13)

Sname:可選服務(wù)端的名稱,以0x00結(jié)尾。

(14)

File:?jiǎn)?dòng)文件名。

(15)

Options:廠商標(biāo)識(shí),可選的參數(shù)字段。

4.4.3

DHCP協(xié)議攻擊形式

針對(duì)DHCP協(xié)議的攻擊主要有以下兩種形式:

(1)

MITM攻擊:攻擊者偽裝成DHCP服務(wù)端,給客戶端發(fā)送偽造應(yīng)答,從而使得客戶端獲得虛假的網(wǎng)絡(luò)配置信息,實(shí)現(xiàn)攻擊者劫持后續(xù)客戶端的通信流量。

(2)

DOS攻擊:攻擊者偽裝成不同的客戶端設(shè)備來(lái)占用服務(wù)端可用的IP地址空間,使得其他合法設(shè)備無(wú)法獲得IP地址,導(dǎo)致拒絕服務(wù)攻擊,正常客戶無(wú)法上網(wǎng)。

1.

DHCP服務(wù)欺騙(MITM攻擊)

在攻擊者偽裝DHCP服務(wù)端時(shí),面對(duì)的首要問(wèn)題是合法DHCP服務(wù)端的競(jìng)爭(zhēng):攻擊者的回答要先到達(dá)客戶端,否則其回答就可能被忽略掉。

根據(jù)前面介紹的DHCP交互過(guò)程,攻擊者要偽造的應(yīng)答可以是Offer或者ACK應(yīng)答包,各有各的優(yōu)缺點(diǎn)。

偽造Offer應(yīng)答包相對(duì)贏的概率較大。事實(shí)上,合法服務(wù)端需要時(shí)間確認(rèn)網(wǎng)絡(luò)中的其他設(shè)備沒(méi)有使用即將被分配的IP地址,而攻擊者不需要關(guān)心這點(diǎn),可以直接給客戶端發(fā)送偽造的Offer應(yīng)答包。當(dāng)然,更高明的攻擊者還可以事先讓合法的DHCP服務(wù)端“閉嘴”(拒絕服務(wù))。

偽造Offer應(yīng)答包的缺點(diǎn)在于:首先,攻擊者需要使用自己的IP地址池,可能同合法服務(wù)端地址池有沖突,導(dǎo)致網(wǎng)絡(luò)不穩(wěn)定。其次,如果客戶端在Discover信息分組中要求使用以前租用過(guò)的IP地址,那么來(lái)自合法服務(wù)端的應(yīng)答包將被認(rèn)為是“最好”的應(yīng)答,即使該應(yīng)答包(或稱分組)是后于攻擊者的應(yīng)答收到的。原因很簡(jiǎn)單,該應(yīng)答分組滿足了客戶繼續(xù)使用原IP地址的要求。

偽造ACK應(yīng)答包的成功因素就要隨機(jī)的多,特別是參與各方在網(wǎng)絡(luò)中的拓?fù)湮恢?。?dāng)攻擊者比DHCP服務(wù)端近于目標(biāo)主機(jī)時(shí),其成功的概率就大。而且,在客戶端所使用的IP地址達(dá)到一半的使用時(shí)間后,會(huì)給合法服務(wù)端發(fā)送單播Request分組。在這種情況下,客戶端會(huì)主動(dòng)聯(lián)系合法服務(wù)端,從而獲得合法的網(wǎng)絡(luò)配置信息。

利用Scapy庫(kù)實(shí)現(xiàn)DHCP

Offer數(shù)據(jù)分組發(fā)送的代碼如下:

上述代碼片段只要在嗅探時(shí)檢測(cè)到有客戶端發(fā)送Discover信息分組,就可以給客戶返回響應(yīng)應(yīng)答分組。

嗅探核心代碼如下:

2.

DOS拒絕服務(wù)攻擊(DOS攻擊)

利用DHCP的拒絕服務(wù)攻擊,實(shí)際上就是所謂的饑餓攻擊(StarvationAttack),它是發(fā)送大量的無(wú)效DHCPDiscover請(qǐng)求,其源MAC地址是隨機(jī)產(chǎn)生的,其作用就是消耗地址池的所有可用IP地址。

4.5DNS協(xié)議攻擊

4.5.1

DNS域名系統(tǒng)

DNS(DomainNameSystem,域名系統(tǒng)),萬(wàn)維網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使用戶更方便地訪問(wèn)互聯(lián)網(wǎng),而不用去記住能夠被機(jī)器直接讀取的IP數(shù)字串。就如同我們習(xí)慣于人名而不是身份證號(hào)碼一樣。

在瀏覽器的地址欄里輸入域名時(shí),都需要通過(guò)域名來(lái)得到該域名對(duì)應(yīng)的IP地址,這個(gè)過(guò)程稱為域名解析(或主機(jī)名解析)。

DNS協(xié)議是應(yīng)用層協(xié)議,運(yùn)行在UDP協(xié)議之上,使用端口號(hào)53。DNS協(xié)議的分組格式如圖4-12所示。

圖4-12

DNS協(xié)議報(bào)文格式

DNS協(xié)議分組的頭部主要包含以下字段:

(1)

(會(huì)話)標(biāo)識(shí)符(2字節(jié))是DNS報(bào)文的ID標(biāo)識(shí),對(duì)于請(qǐng)求報(bào)文和其對(duì)應(yīng)的應(yīng)答報(bào)文,這個(gè)字段是相同的,通過(guò)它可以區(qū)分DNS應(yīng)答報(bào)文對(duì)應(yīng)的是哪個(gè)請(qǐng)求。

(2)標(biāo)志(2字節(jié))字段如圖4-13所示。

圖4-13標(biāo)志字段

①?QR(1bit):查詢/響應(yīng)標(biāo)志,0為查詢,1為響應(yīng)。

opcode(4bit):0表示標(biāo)準(zhǔn)查詢,1表示反向查詢,2表示服務(wù)端狀態(tài)請(qǐng)求。

AA(1bit):表示授權(quán)回答。

TC(1bit):表示可截?cái)嗟摹?/p>

RD(1bit):表示期望遞歸。

RA(1bit):表示可用遞歸。

rcode(4bit):表示返回碼,0為沒(méi)有差錯(cuò),3為名字差錯(cuò),2為服務(wù)端錯(cuò)誤。

(3)數(shù)量字段(共8字節(jié)):表示后面的四個(gè)區(qū)域的數(shù)目?!翱偟膯?wèn)題數(shù)”表示查詢問(wèn)題區(qū)域的數(shù)量,“總的應(yīng)答資源記錄數(shù)”表示應(yīng)答區(qū)域的數(shù)量,“總的授權(quán)資源記錄數(shù)”表示授權(quán)區(qū)域的數(shù)量,“總的額外資源記錄數(shù)”表示附加區(qū)域的數(shù)量。

協(xié)議分組頭部后續(xù)跟的正文部分,主要包含以下字段:

(1)

Queries區(qū)域如圖4-14所示。

圖4-14Queries區(qū)域

①域名:長(zhǎng)度不固定,且不使用填充字節(jié),一般該字段表示的就是需要查詢的域名(如果是反向查詢,則為IP地址。反向查詢是指由IP地址反查域名)。

②查詢類型如表4-5所示。

③查詢類:通常為1,表明是Internet數(shù)據(jù)。

(2)資源記錄(RR)區(qū)域格式如圖4-15所示。

圖4-15資源記錄區(qū)域格式

資源記錄區(qū)域有三個(gè),分別是回答區(qū)域、授權(quán)區(qū)域和附加區(qū)域,這三個(gè)區(qū)域格式相同。

①域名(2字節(jié)或不定長(zhǎng)):它的格式和Queries區(qū)域的查詢名字字段是一樣的。有一點(diǎn)不同就是,當(dāng)報(bào)文中域名重復(fù)出現(xiàn)的時(shí)候,該字段使用2個(gè)字節(jié)的偏移指針來(lái)表示。比如,在資源記錄中,域名通常是查詢問(wèn)題部分的域名的重復(fù),因此用2字節(jié)的指針來(lái)表示,具體格式是最前面的兩個(gè)高位是11,用于識(shí)別指針。其余的14位從DNS報(bào)文的開始處計(jì)數(shù)(從0開始),指出該報(bào)文中的相應(yīng)字節(jié)數(shù)。一個(gè)典型的例子,C00C(1100000000001100,12正好是頭部的長(zhǎng)度,其正好指向Queries區(qū)域的查詢名字字段)。

②查詢類型:表明資源紀(jì)錄的類型,與Queries區(qū)域查詢類型相同

③查詢類:對(duì)于Internet信息,總是IN

④生存時(shí)間(TTL):以秒為單位,表示的是資源記錄的生命周期,一般用于地址解析程序獲得資源記錄后保存及使用緩存數(shù)據(jù)的時(shí)間,它同時(shí)也可以表明該資源記錄的穩(wěn)定程度,極為穩(wěn)定的信息會(huì)被分配一個(gè)很大的值(比如86400,這是一天的秒數(shù))。域名重綁定攻擊的核心就是這個(gè)字段。

⑤資源數(shù)據(jù):該字段是一個(gè)可變長(zhǎng)字段,表示按照查詢的要求返回的相關(guān)資源記錄的數(shù)據(jù),可以是地址(表明查詢報(bào)文想要的回應(yīng)是一個(gè)IP地址)或者CNAME(表明查詢報(bào)文想要的回應(yīng)是一個(gè)規(guī)范主機(jī)名)等。

4.5.2

DNS放大攻擊

DNS放大攻擊(DNSAmplificationAttack),是DOS攻擊的一種方式,通過(guò)發(fā)送大量的數(shù)據(jù)包來(lái)消耗目標(biāo)主機(jī)資源,使其無(wú)法正常提高網(wǎng)絡(luò)服務(wù)。DNS放大攻擊通過(guò)偽造DNS數(shù)據(jù)包,向DNS服務(wù)端發(fā)送域名查詢報(bào)文,而DNS服務(wù)端返回的應(yīng)答報(bào)文則會(huì)發(fā)送給被攻擊主機(jī)。這種攻擊方法利用應(yīng)答包比請(qǐng)求應(yīng)答包大的特點(diǎn)(放大流量),偽造請(qǐng)求應(yīng)答包的源IP地址,將應(yīng)答包引向被攻擊的目標(biāo)。

4.5.3

DNSRebinding攻擊

為了保證DNS服務(wù)的可靠性,DNS響應(yīng)記錄A中包含一個(gè)TTL(TimeToLive)值,表示當(dāng)前解析結(jié)果的有效時(shí)間,客戶端(瀏覽器)會(huì)在超過(guò)這個(gè)時(shí)間值后重新請(qǐng)求解析域名(取決于客戶端是否遵循這個(gè)TTL值),所得到的新響應(yīng)中又會(huì)存在一個(gè)過(guò)期時(shí)間,客戶端每次在過(guò)期時(shí)間之后訪問(wèn)域名時(shí),都會(huì)重新查詢域名服務(wù)端以保證獲取到最新的域名解析結(jié)果。

若DNS服務(wù)前后響應(yīng)返回的IP地址不一樣,瀏覽器并不會(huì)認(rèn)為跨域或者違反瀏覽器的同源訪問(wèn)策略。如果域名后續(xù)解析到的IP地址為、等不同于先前解析結(jié)果的內(nèi)部地址,那么瀏覽器依然認(rèn)為符合同源策略,并且照樣會(huì)去訪問(wèn)主機(jī),造成針對(duì)內(nèi)網(wǎng)的攻擊。攻擊者利用短時(shí)間內(nèi)同一域名返回不同解析結(jié)果實(shí)施的攻擊,這就是域名重綁定(DNSRebinding)攻擊。

域名重綁定攻擊的典型場(chǎng)景如圖4-16所示。

圖4-16

DNS重綁定攻擊場(chǎng)景

圖4-16中,整個(gè)DNSRebingding攻擊的實(shí)施需要具備以下幾個(gè)條件:

(1)受害者訪問(wèn)惡意網(wǎng)頁(yè)或者點(diǎn)擊某個(gè)惡意鏈接。

(2)攻擊可以控制惡意網(wǎng)頁(yè)所對(duì)應(yīng)的域名的解析結(jié)果,就是可以任意更改域名和IP

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論