DNS欺騙
*DNS欺騙1.hosts文件篡改 Windows NT/2000/XP/2003/Vista/win7:默認(rèn)位置為SystemRootsystem32driversetc如果,我們在Hosts中,寫
*DNS欺騙
1.hosts文件篡改
Windows NT/2000/XP/2003/Vista/win7:默認(rèn)位置為SystemRootsystem32driversetc
如果,我們在Hosts中,寫入以下內(nèi)容:
127.0.0.1 # 要屏蔽的網(wǎng)站 A
0.0.0.0 # 要屏蔽的網(wǎng)站 B
這樣,計(jì)算機(jī)解析域名 A和 B時(shí),就解析到本機(jī)IP或錯誤的IP,達(dá)到了屏蔽網(wǎng)站A 和B的目的。
原理:如果可以冒充域名服務(wù)器,然后把查詢的IP地址設(shè)為攻擊者的IP地址,這樣的話,用戶上網(wǎng)就只能看到攻擊者的主頁,而不是用戶想要取得的網(wǎng)站的主頁了,這就是DNS欺騙的基本原理。DNS欺騙其實(shí)并不是真的“黑掉”了對方的網(wǎng)站,而是冒名頂替、招搖撞騙罷了。 現(xiàn)在的Internet上存在的DNS服務(wù)器有絕大多數(shù)都是用bind來架設(shè)的,使用的bind版本主要為bind 4.9.5 P1以前版本和bind 8.2.2-P5以前版本.這些bind有個共同的特點(diǎn),就是BIND會緩存(Cache)所有已經(jīng)查詢過的結(jié)果,這個問題就引起了下面的幾個問題的存在. DNS欺騙 在DNS的緩存還沒有過期之前,如果在DNS的緩存中已經(jīng)存在的記錄,一旦有客戶查詢,DNS服務(wù)器將會直接返回緩存中的記錄.
使用DNSSEC: DNSSEC是替代DNS的更好選擇,它使用的是數(shù)字前面DNS記錄來確保查詢響應(yīng)的有效性,
DNSSEC還沒有廣泛運(yùn)用,但是已被公認(rèn)為是DNS的未來方向,也正是如此,美國國防部已經(jīng)要求所有MIL和GOV域名都必須開始使用DNSSEC。
2.DNS欺騙的實(shí)現(xiàn)
域名系統(tǒng)(DNS)是一種用于TCP/IP應(yīng)用程序的分布式數(shù)據(jù)庫,它提供主機(jī)名字和IP地址之間的轉(zhuǎn)換信息。通常,網(wǎng)絡(luò)用戶通過UDP協(xié)議和DNS服務(wù)器進(jìn)行通信,而服務(wù)器在特定的53 端口監(jiān)聽,并返回用戶所需的相關(guān)信息。
一.DNS協(xié)議的相關(guān)數(shù)據(jù)結(jié)構(gòu)
DNS數(shù)據(jù)報(bào):
typedef struct dns
{
unsigned short id;
//標(biāo)識,通過它客戶端可以將DNS的請求與應(yīng)答相匹配;
unsigned short flags;
//標(biāo)志:[QR | opcode | AA| TC| RD| RA | zero | rcode ]
unsigned short quests;
//問題數(shù)目;
unsigned short answers;
//資源記錄數(shù)目;
unsigned short author;
//授權(quán)資源記錄數(shù)目;
unsigned short addition;
//額外資源記錄數(shù)目;
}DNS,*PDNS;
在16位的標(biāo)志中:QR位判斷是查詢/響應(yīng)報(bào)文,opcode區(qū)別查詢類型,AA判斷是否為授權(quán)回答,TC判斷是否可截?cái)?,RD判斷是否期望遞歸查詢,RA判斷是否為可用遞歸,zero必須為0,rcode為返回碼字段。
DNS查詢數(shù)據(jù)報(bào):
typedef struct query
{
unsinged char *name;
//查詢的域名,這是一個大小在0到63之間的字符串;
unsigned short type;
//查詢類型,大約有20個不同的類型
unsigned short classes;
//查詢類,通常是A類既查詢IP地址。