【滲透測試】-DNS劫持之局域網DNS劫持【轉】

轉自:Freebuf.COM
本文概要:本篇文章主要講解了局域網內的DNS劫持的方法,原理,防范以及撘環境復現

0×01 原理

DNS決定的是我們的域名將解析到哪一個IP地址的記錄,是基于UDP協議的一種應用層協議

這個攻擊的前提是攻擊者掌控了你的網關(可以是路由器,交換機,或者運營商),一般來說,在一個WLAN下面,使用ARP劫持就可以達到此效果。

你在訪問一個網站的過程中,經歷了如下幾個階段:

以訪問freebuf的主頁為例:

1.地址欄輸入:freebuf.com
2.訪問本機的hosts文件,查找:freebuf.com, 所對應的 IP,若找到,則訪問該IP
3.若未找到,則進行這一步,去(遠程的)DNS服務器上面找freebuf.com 的IP,訪問該IP

可以通過Wireshark抓包來看一下這個過程

  • 這是一個發向baidu.com的DNS請求


  • 這是DNS服務器返回的內容:


  • 中間人劫持就發生在第三步:由于惡意攻擊者控制了你的網關,當你發送了一個查找freebuf.com的IP的請求的時候,中間人攔截住,并返回給你一個惡意網址的IP,你的瀏覽器就會把這個IP當做你想要訪問的域名的IP!!這個IP是攻擊者搭建的一個模仿了目標網站前端界面的界面,當你在該界面輸入用戶名密碼或者付款操作的時候,就會中招。

  • 由于DNS劫持導向的界面的URL是完全正確的,因此
    這類攻擊一般極難分辨!


  • 攻擊者可以將網頁的前端做的極為完善!幾乎和原網頁一模一樣,各種鏈接,也都指向正確的地方,只有這個登陸框是有問題的,一旦輸入用戶名密碼就會被攻擊者所接受到。

0×02 防范

一般來說,這種攻擊的防范是很難的!因為URL和頁面都是正常的,不是對web技術有很深了解的人根本無從下手(如果攻擊者的頁面復原的足夠真實的話,但是我們還是有一些方法來進行防范的

  • 使用SSL(HTTPS)進行登錄,攻擊者可以得到公鑰,但是并不能夠得到服務器的私鑰
  • 當瀏覽器提示出現證書問題的時候,謹慎,再謹慎!確定你所在的網絡環境是安全的,該網站是可信的再去訪問。
  • 不在連接公共wifi的時候隨意進行登陸操作

如果出現了像上圖這樣的提示,那么有兩種可能:

  • 一種是服務器的HTTPS證書沒有正確的配置,
  • 另一種就是你可能遭到了中間人劫持,數字證書無法通過瀏覽器的驗證

一般來說,只有一些公司和學校的內網,一些個人站,和(12306) ,會遭遇證書配置的問題。其他的正常大型站點,尤其是我們經常使用的一些網站,不會出現此類問題,而需要登錄的,經常遭遇釣魚的,正是這些站點。因此,遭遇這種情況的時候,一定不要輕易的填寫用戶名和密碼。

這種攻擊的影響的范圍一般是很小的,只局限魚一個內網的范圍,總體來說還是不必擔心過多,當然,如果是運營商劫持,那就另當別論,不過運營商劫持一般也只是插入廣告,不會大膽的直接用這種方式進行釣魚攻擊。

0×03 攻擊者的目的

釣魚攻擊盜取密碼

誘導用戶進行填寫登錄表單的操作,將POST的地址改為自己的服務器地址,以獲取受害者的用戶名和密碼

特別注意:
有一種這樣的情況,用戶在填入表單之后,用戶猶豫了,并未點擊提交/登錄 之類的按鈕以發送提交表單,但是此時,輸入的內容已經通過ajax的方式發送了出去。

function submit() {
var data = {
name: $("#username").val(),
password: $("#password").val(),
};
$("#submit").attr('disabled', 'disabled');
$.post("/xxx.php",data,function(text){
$("#success").text(text);
if(text === "信息不完整,請重新輸入!"){
$("#submit").removeAttr('disabled')
}else{
}
})
}

一般來說,這樣的submit函數應該是在按鈕被點擊之后執行,但是攻擊者可以可以在用戶每一次輸入的動作之后使用on事件來執行這個函數,可以使得用戶不點擊就發送。

釣魚攻擊劫持支付

在支付的界面進行劫持使得用戶的支付寶,或者銀行卡支付,使得支付到攻擊者的賬戶中

植入廣告

這種方式的DNS劫持一般是運營商所為的,大面積的劫持

植入廣告的網站

兩種方式:

  • HTTP劫持
    將攔截到的HTML文本中間加一個 position為fixed的div,一般在右下角,顯示出廣告
  • DNS劫持
    將域名劫持到一個攻擊者的網站中,含有廣告,再用iframe的方式來引入用戶要訪問的網站。

0×04攻擊復現

我們可以對這種攻擊方式進行復現,
在一個路由器下面的多臺機器,使用一臺進行劫持,另一臺進行模擬受害者進行測試

準備工作
  • 進行劫持的機器:
    • 最好使用 kali linux
    • 在本地或者遠程撘一個HTTP服務器,作為釣魚網站,用于偽裝目標網站
    • 最好安裝一個大功率的無線網卡
    • 安裝劫持工具ettercap (kali自帶)
  • 測試機器安裝瀏覽器(廢話,是臺電腦都有,純命令行linux用lynx也可以)
  • 兩臺電腦接入同一個無線路由器或者集線器(最好不要使用交換機,因為必須要取得交換機本身的控制才可以進行,而路由器只需要進行欺騙就可以)
操作指南

首先,在ettercap的配置文件里面配置你要進行劫持的DNS

有關于ettercap dnS的配置文件的木庫在 /etc/ettercap/etter.dns

打開這個文件,我們可以看到,作者已經內置了一些例子

作者很調皮的把微軟公司的主頁:microsoft.com

解析到了:linux.org的ip,開源萬歲!linux是至大的!

回歸正題,我們可以參照這幾個例子來編寫我們自己需要的劫持規則格式就是:域名 dns記錄類型 IP

什么是dns記錄類型呢?

記錄類型 描述
A A (Address)記錄是用來指定主機名(或域名)對應的IPv4地址記錄
AAAA A (Address)記錄是用來指定主機名(或域名)對應的IPv6地址記錄
CNAME 也被稱為規范名字。這種記錄允許您將多個名字映射到同一臺計算機。 通常用于同時提供WWW和MAIL服務的計算機
MX 是郵件交換記錄,它指向一個郵件服務器,用于電子郵件系統發郵件時根據 收信人的地址后綴來定位郵件服務器
NS 解析服務器記錄。用來表明由哪臺服務器對該域名進行解析。

一般來說,在做DNS劫持的時候,我們使用A記錄,比如我們要把百度劫持到bing(考慮到有些朋友并沒有扶墻),首先用

ping
traceroute
whois

之類的東西獲取bing.com的ip:13.107.21.200

我們在這個文件中加上一條劫持的規則

做DNS劫持的時候,我們需要將其劫持到我們自己的HTTP服務器處,使用

ifconfig(unix) 
ipconfig(windows)

來查看本機的IP地址,一般來說局域網地址為:192.168.xxx.xxx,10.xxx.xxx.xx,172.xxx.xxx.xxx

下一步,就是使用apache或者nginx之類的web server 來撘起我們自己的服務器,用lamp之類的也可以,網上教程很多,不再贅述。

下一步,打開ettercap

先選擇

sniff->unified sniff

然后打開

hosts->host list

選中全部的主機,點擊add to target 1

然后點擊

Mitm->ARP Posining

選中第一個選框

sniff remote connections

然后在

plugin->manage plugin

里面雙擊dns spoof 來激活這個插件

這個時候,目標就已經處于被劫持的狀態了

使用測試機器的瀏覽器訪問你劫持了的網站,就可以看到你自己撘的服務器頁面了,我這里沒有改動,是apache的默認頁面

當然,這個攻擊是有不小的失敗幾率的,這是由于中間人攻擊的原理,網卡的問題,網關的限制,還有 DNS緩存,等多種因素導致的,因此,劫持失敗也是很有可能的。

0×05 更深入的了解

如果想要學習這方面更深入的內容,可以先復習一下各位的計算機網絡的知識,了解應用層協議HTTPS,HTTP,DNS的一些細節。對于數據鏈路和傳輸層的ARP協議也需要比較深刻的了解

kali linux在無線方面有很多很好用的工具比如aircrack-ng,ettercap,arpspoof,sslstrip等等可以使用,可以參考kali docs進行學習


歡迎關注微信公眾號(coder0x00)或掃描下方二維碼關注,我們將持續搜尋程序員必備基礎技能包提供給大家。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,238評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,430評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,134評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,893評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,653評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,136評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,212評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,372評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,888評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,738評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,939評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,482評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,179評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,588評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,829評論 1 283
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,610評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,916評論 2 372

推薦閱讀更多精彩內容

  • http://www.91ri.org/tag/fuzz-bug 通常情況下,有三種方法被廣泛用來防御CSRF攻擊...
    jdyzm閱讀 4,194評論 0 5
  • 每天記錄自己的覺察日記,喜歡寫在紙上,但總也找不到,想敲到電腦上,可又懶得開機。就想起了簡書,在這里記錄。內容主要...
    燕子小屋閱讀 312評論 0 0
  • 職場中每個人都面臨嚴酷的職場競爭力大考驗,企業在員工淘汰上不再留情,職場陣亡率不斷攀高。一個職場人沒有特長很難成功...
    職場龍嘯閱讀 367評論 2 4
  • 記得早先少年時丨大家誠誠懇懇丨說一句 是一句丨清早上火車站丨長街黑暗無行人丨賣豆漿的小店冒著熱氣丨從前的日色變得慢...
    南門阿福閱讀 629評論 4 9
  • 1 傻子的傻不是天生的。二十年前,富力村一整個夏天沒有下一滴雨。傻子家的幾畝地也都荒了,一個籽都沒有結出來。傻子有...
    jackeystyle閱讀 755評論 0 0