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

下載本文檔

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

文檔簡介

第四章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é)議模型,是整個互聯(lián)網(wǎng)的核心。4.1.1

TCP/IP分層模型

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

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

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

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

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

網(wǎng)際層對應(yīng)于OSI參考模型的網(wǎng)絡(luò)層,主要負責(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)

傳輸層實現(xiàn)端到端的數(shù)據(jù)傳輸。傳輸層在網(wǎng)際層的基礎(chǔ)上為高層提供“面向連接”和“面向無接連”的兩種服務(wù)。傳輸層在應(yīng)用中提供透明的數(shù)據(jù)傳輸。傳輸層在給定的鏈路上通過流量控制、分段/重組和差錯控制向上層提供可靠的面向連接的數(shù)據(jù)傳輸服務(wù)。傳輸層向下利用網(wǎng)際層提供的服務(wù),并通過傳輸層地址(端口)提供給高層用戶傳輸數(shù)據(jù)的通信端口實現(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)頁服務(wù)(HTTP)、名字服務(wù)(DNS)、文件服務(wù)(NFS)、目錄服務(wù)(LDAP)、文件傳輸服務(wù)(FTP)、遠程登錄服務(wù)(Telnet)、電子郵件服務(wù)(SMTP)、網(wǎng)絡(luò)管理服務(wù)(SNMP)、數(shù)據(jù)庫服務(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ò)。

限于篇幅,下面將對TCP/IP協(xié)議族的核心協(xié)議進行簡單介紹,在后續(xù)介紹相關(guān)協(xié)議的攻擊過程中還會詳細討論。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é)議的簡單說明,這兩個協(xié)議可以說是連接第二層和第三層的協(xié)議,其功能是完成邏輯地址(IP地址)和物理地址(網(wǎng)卡MAC地址)之間的轉(zhuǎn)換。

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

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

3.主機對主機傳輸層(OSILayer4)協(xié)議

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

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

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

4.2MAC泛洪攻擊

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

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

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

4.3ARP協(xié)議攻擊

針對ARP協(xié)議的各類攻擊在網(wǎng)絡(luò)攻防對抗中有著廣泛的應(yīng)用,利用ARP協(xié)議可以實現(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é)議的作用就在于當一個數(shù)據(jù)包(快遞)到了網(wǎng)關(guān)(學(xué)校)以后,必須把IP地址(西安電子科技大學(xué))轉(zhuǎn)換成對應(yīng)的MAC地址(123號信箱),以便于數(shù)據(jù)包準確地到達目的地主機。

4.3.1

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

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

圖4-3

ARP請求報文的廣播發(fā)送

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

(1)

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

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

(3)

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

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

圖4-4

ARP廣播發(fā)送的請求報文

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

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

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

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

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

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

ARP應(yīng)答報文

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

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

圖4-6

ARP緩存

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

4.3.2

ARP欺騙攻擊

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

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

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

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

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

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

圖4-7ARP欺騙類型

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

1.實驗網(wǎng)絡(luò)基本信息

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

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

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

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

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

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

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

(1)

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

(2)

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

(3)

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

(4)

hwdst:目標MAC地址。

(5)

pdst:目標IP地址。

3.定向主機欺騙

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

在上述ARP協(xié)議數(shù)據(jù)包中,將Kali(虛擬機)的MAC地址和網(wǎng)關(guān)的IP地址進行了綁定,op取值為2,作為一個響應(yīng)包被Win7(虛擬機)接收,這樣Win7會理解為網(wǎng)關(guān)的IP地址對應(yīng)的是Kali的MAC地址,并更新自己的ARP(緩存)表,造成中毒,從而使得Win7發(fā)往網(wǎng)關(guān)的數(shù)據(jù)包都會被實際發(fā)往Kali。再次強調(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ù),具體使用實例如下:

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

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

具體使用實例如下:

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

4.4DHCP協(xié)議攻擊

4.4.1

DHCP協(xié)議介紹

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

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

4.4.2

DHCP協(xié)議流程

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

(1)發(fā)現(xiàn)階段,即DHCP客戶端尋找DHCP服務(wù)端的階段。客戶端向網(wǎng)絡(luò)發(fā)送一個DHCPDiscover數(shù)據(jù)包(廣播包)來尋找DHCP服務(wù)端,參見圖4-10中的(1)。

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

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

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

整個交互過程如圖4-10所示。

圖4-10

DHCP協(xié)議工作流程

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

Discover、DHCP

Offer、DHCP

Request和DHCP

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

圖4-11

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

圖4-11中各個字段含義如下:

(1)

Operation

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

(2)

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

(3)

Hardwarelength:硬件長度,Ethernet情況下為6。

(4)

Hop

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

Chaddr:客戶端的硬件地址。

(13)

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

(14)

File:啟動文件名。

(15)

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

4.4.3

DHCP協(xié)議攻擊形式

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

(1)

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

(2)

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

1.

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

在攻擊者偽裝DHCP服務(wù)端時,面對的首要問題是合法DHCP服務(wù)端的競爭:攻擊者的回答要先到達客戶端,否則其回答就可能被忽略掉。

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

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

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

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

利用Scapy庫實現(xiàn)DHCP

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

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

嗅探核心代碼如下:

2.

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

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

4.5DNS協(xié)議攻擊

4.5.1

DNS域名系統(tǒng)

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

在瀏覽器的地址欄里輸入域名時,都需要通過域名來得到該域名對應(yīng)的IP地址,這個過程稱為域名解析(或主機名解析)。

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

圖4-12

DNS協(xié)議報文格式

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

(1)

(會話)標識符(2字節(jié))是DNS報文的ID標識,對于請求報文和其對應(yīng)的應(yīng)答報文,這個字段是相同的,通過它可以區(qū)分DNS應(yīng)答報文對應(yīng)的是哪個請求。

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

圖4-13標志字段

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

opcode(4bit):0表示標準查詢,1表示反向查詢,2表示服務(wù)端狀態(tài)請求。

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

TC(1bit):表示可截斷的。

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

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

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

(3)數(shù)量字段(共8字節(jié)):表示后面的四個區(qū)域的數(shù)目。“總的問題數(shù)”表示查詢問題區(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ū)域

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

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

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

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

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

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

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

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

③查詢類:對于Internet信息,總是IN

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

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

4.5.2

DNS放大攻擊

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

4.5.3

DNSRebinding攻擊

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

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

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

圖4-16

DNS重綁定攻擊場景

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

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

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

溫馨提示

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

評論

0/150

提交評論