日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Windows下DNS ID欺騙的原理與實現(xiàn)


域名系統(tǒng)(DNS)是一種用于TCP/IP應(yīng)用程序的分布式數(shù)據(jù)庫,它提供主機名字和IP地址之間的轉(zhuǎn)換信息 。通常,網(wǎng)絡(luò)用戶通過UDP協(xié)議和DNS服務(wù)器進行通信,而服務(wù)器在特定的53 端口監(jiān)聽,并返回用戶所需的相關(guān)信息 。一.DNS協(xié)議的相關(guān)數(shù)據(jù)結(jié)構(gòu)
DNS數(shù)據(jù)報:
typedef strUCt dns
{
 unsigned short id;
 //標(biāo)識,通過它客戶端可以將DNS的請求與應(yīng)答相匹配;
 unsigned short flags;
 //標(biāo)志:[QRopcodeAA TC RD RAzerorcode ]
 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)報文,opcode區(qū)別查詢類型,AA判定是否為授權(quán)回答,TC判定是否可截斷,RD判定是否期望遞歸查詢,RA判定是否為可用遞歸,zero必須為0,rcode為返回碼字段 。
DNS查詢數(shù)據(jù)報:
typedef struct query
{
 unsinged char *name;
 //查詢的域名,這是一個大小在0到63之間的字符串;
 unsigned short type;
 //查詢類型,大約有20個不同的類型
 unsigned short classes;
 //查詢類,通常是A類既查詢IP地址 。
}QUERY,*PQUERY;
DNS響應(yīng)數(shù)據(jù)報:
typedef struct response
{
 unsigned short name;
 //查詢的域名
 unsigned short type;
 //查詢類型
 unsigned short classes;
 //類型碼
 unsigned intttl;
 //生存時間
 unsigned short length;
 //資源數(shù)據(jù)長度
 unsigned intaddr;
 //資源數(shù)據(jù)
}RESPONSE,*PRESPONSE;
二.Windows下DNS ID欺騙的原理
我們可以看到,在DNS數(shù)據(jù)報頭部的id(標(biāo)識)是用來匹配響應(yīng)和請求數(shù)據(jù)報的 ?,F(xiàn)在,讓我們來看看域名解析的整個過程 ??蛻舳耸紫纫蕴囟ǖ臉?biāo)識向DNS服務(wù)器發(fā)送域名查詢數(shù)據(jù)報,在DNS服務(wù)器查詢之后以相同的ID號給客戶端發(fā)送域名響應(yīng)數(shù)據(jù)報 。這時客戶端會將收到的DNS響應(yīng)數(shù)據(jù)報的ID和自己發(fā)送的查詢數(shù)據(jù)報ID相比較,假如匹配則表明接收到的正是自己等待的數(shù)據(jù)報,假如不匹配則丟棄之 。
假如我們能夠偽裝DNS服務(wù)器提前向客戶端發(fā)送響應(yīng)數(shù)據(jù)報,那么客戶端的DNS緩存里域名所對應(yīng)的IP就是我們自定義的IP了,同時客戶端也就被帶到了我們希望的網(wǎng)站 。條件只有一個,那就是我們發(fā)送的ID匹配的DSN響應(yīng)數(shù)據(jù)報在DNS服務(wù)器發(fā)送的響應(yīng)數(shù)據(jù)報之前到達客戶端 。下圖清楚的展現(xiàn)了DNS ID欺騙的過程:
Client <--response-- . . . . . .. . . . . . . . . . DNS Server
<--[a.b.c == 112.112.112.112]-- Your Computer
到此,我想大家都知道了DNS ID欺騙的實質(zhì)了,那么如何才能實現(xiàn)呢?這要分兩種情況:
1. 本地主機與DNS服務(wù)器,本地主機與客戶端主機均不在同一個局域網(wǎng)內(nèi),方法有以下幾種:向客戶端主機隨機發(fā)送大量DNS響應(yīng)數(shù)據(jù)報,命中率很低;向DNS服務(wù)器發(fā)起拒絕服務(wù)攻擊,太粗魯;BIND漏洞,使用范圍比較窄 。
2. 本地主機至少與DNS服務(wù)器或客戶端主機中的某一臺處在同一個局域網(wǎng)內(nèi):我們可以通過ARP欺騙來實現(xiàn)可靠而穩(wěn)定的DNS ID欺騙,下面我們將具體討論這種情況 。
首先我們進行DNS ID欺騙的基礎(chǔ)是ARP欺騙,也就是在局域網(wǎng)內(nèi)同時欺騙網(wǎng)關(guān)和客戶端主機(也可能是欺騙網(wǎng)關(guān)和DNS服務(wù)器,或欺騙DNS服務(wù)器和客戶端主機) 。我們以客戶端的名義向網(wǎng)關(guān)發(fā)送ARP響應(yīng)數(shù)據(jù)報,不過其中將源MAC地址改為我們自己主機的MAC地址;同時以網(wǎng)關(guān)的名義向客戶端主機發(fā)送ARP響應(yīng)數(shù)據(jù)報,同樣將源MAC地址改為我們自己主機的MAC地址 。這樣以來,網(wǎng)關(guān)看來客戶端的MAC地址就是我們主機的MAC地址;客戶端也認(rèn)為網(wǎng)關(guān)的MAC地址為我們主機的MAC地址 。由于在局域網(wǎng)內(nèi)數(shù)據(jù)報的傳送是建立在MAC地址之上了,所以網(wǎng)關(guān)和客戶端之間的數(shù)據(jù)流通必須先通過本地主機 。

推薦閱讀