DNS隱藏隧道的使用

前言

關(guān)于DNS隧道的一些簡單研究和利用刺啦。

DNS協(xié)議基礎(chǔ)

域名系統(tǒng)(服務(wù))協(xié)議(DNS)是一種分布式網(wǎng)絡(luò)政鼠,主要用于域名與 IP 地址的相互轉(zhuǎn)換锦爵。

DNS域名解析流程

本地DNS緩存-遞歸查詢-迭代查詢

本地DNS緩存
包含瀏覽器緩存垄分,本地host文件影锈,系統(tǒng)dns緩存

遞歸查詢
該模式下DNS 服務(wù)器接收到客戶機(jī)請求延曙,必須使用一個準(zhǔn)確的查詢結(jié)果回復(fù)客戶機(jī)豌鹤。

迭代查詢
本地域名服務(wù)器向根域名服務(wù)器查詢,根域名服務(wù)器告訴它下一步到哪里去查詢枝缔,然后它在根據(jù)結(jié)果逐層向下查詢傍药,直到得到最終結(jié)果。每次它都是以dns客戶機(jī)的身份去各個服務(wù)器查詢,即迭代查詢是本地服務(wù)器進(jìn)行的操作拐辽。

基本解析流程

以訪問http://test.cseroad.space進(jìn)行舉例

1拣挪、檢查瀏覽器緩存,本地host文件和本機(jī)的dns緩存俱诸,失敗后菠劝,向本地設(shè)置的dns服務(wù)器(如114.114.114.114)發(fā)送查詢請求,dns服務(wù)器到自身解析數(shù)據(jù)庫中查詢睁搭,查詢成功返回IP地址(此過程成為遞歸查詢)查詢失敗則觸發(fā)迭代查詢過程赶诊。
2、本地dns服務(wù)器向根域名服務(wù)器發(fā)送關(guān)于space的查詢請求园骆。
3舔痪、根域名服務(wù)器接收到查詢請求,并把查詢結(jié)果返回給dns服務(wù)器锌唾。
4锄码、本地dns服務(wù)器收到根域名服務(wù)器返回的頂級域名服務(wù)器的地址,并向它查詢關(guān)于cseroad的域名服務(wù)器地址晌涕。
5滋捶、頂級域名服務(wù)器接收到請求,進(jìn)行查詢余黎,并把查詢結(jié)果返回到dns服務(wù)器重窟。
6、本地dns服務(wù)器收到關(guān)于cseroad的權(quán)限域名服務(wù)器地址惧财,并發(fā)起查詢test的請求巡扇。
7、權(quán)限域名服務(wù)器收到請求垮衷,并把test對應(yīng)的A記錄的ip返回給dns服務(wù)器霎迫。
8、本地dns服務(wù)器把權(quán)限域名服務(wù)器返回的ip地址發(fā)送到個人電腦帘靡。
9知给、個人電腦成功解析到http://test.cseroad.space對應(yīng)的ip地址,在瀏覽器中進(jìn)行訪問描姚。
迭代查詢

DNS隧道

DNS隧道(DNS Tunneling)是將其他協(xié)議的內(nèi)容封裝在DNS協(xié)議中涩赢,然后以DNS請求和響應(yīng)包完成傳輸數(shù)據(jù)(通信)的技術(shù)。當(dāng)前網(wǎng)絡(luò)世界中的DNS是一項必不可少的服務(wù)轩勘,所以防火墻和入侵檢測設(shè)備處于可用性和用戶友好的考慮將很難做到完全過濾掉DNS流量筒扒,因此,攻擊者可以利用它實現(xiàn)遠(yuǎn)程控制绊寻,文件傳輸?shù)炔僮鳌?/p>

DNS隧道的兩大類型

直連隧道:用戶端直接和指定的目標(biāo)DNS服務(wù)器建立連接花墩,然后將需要傳輸?shù)臄?shù)據(jù)編碼封裝在DNS協(xié)議中進(jìn)行通信悬秉。這種方式的優(yōu)點是具有較高速度,但蔽性弱冰蘑、易被探測追蹤的缺點也很明顯和泌。另外直連方式的限制比較多,如目前很多的企業(yè)網(wǎng)絡(luò)為了盡可能的降低遭受網(wǎng)絡(luò)攻擊的風(fēng)險祠肥,一般將相關(guān)策略配置為僅允許與指定的可信任DNS服務(wù)器之間的流量通過武氓。

中繼隧道:通過DNS迭代查詢而實現(xiàn)的中繼DNS隧道,這種方式及其隱秘仇箱,且可在絕大部分場景下部署成功县恕。但由于數(shù)據(jù)包到達(dá)目標(biāo)DNS服務(wù)器前需要經(jīng)過多個節(jié)點的跳轉(zhuǎn),數(shù)據(jù)傳輸速度和傳輸能力較直連會慢很多剂桥。

在實戰(zhàn)用到DNS隧道的場景忠烛,對隱蔽性要求很高,速度相對來說沒那么重要权逗,因此主要使用中繼隧道美尸。

技術(shù)要點

DNS緩存機(jī)制的規(guī)避
再使用中繼隧道時,如果需要解析的域名在本地的DNS Server中已經(jīng)有緩存時旬迹,本地的DNS Server就不會轉(zhuǎn)發(fā)數(shù)據(jù)包肋层。所以在構(gòu)造的請求中尤勋,每次查詢的域名都是不一樣的拟杉。

DNS載荷的編碼
從高層來看码俩,載荷只是客戶端和服務(wù)器通信的正常流量熬芜。例如客戶端發(fā)送一個A記錄請求給服務(wù)器蟀拷,查詢的主機(jī)名為2roAUSwVqwOWCaaDC.test.nuoyan.com,其中2roAUSwVqwOWCaaDc則是客戶端傳遞給服務(wù)器的信息危尿,這串字符解碼后的信息便是DNS隧道示损。

可利用DNS查詢類型
DNS的記錄類型有很多寿弱,常見的有A犯眠,AAAA,CNAME,MX,NS等。DNS隧道可以利用其中的一些記錄類型來傳輸數(shù)據(jù)症革。例如A筐咧,MX,CNAME,TXT等噪矛。

A       記錄 指定主機(jī)名(或域名)對應(yīng)的IPV4地址記錄
AAAA    記錄 指定主機(jī)名(或域名)對應(yīng)的IPV6地址記錄
NS      記錄  指定該域名由哪個DNS服務(wù)器來進(jìn)行解析
MX      記錄  指向一個郵件服務(wù)器
PTR     記錄  將一個IP地址映射到對應(yīng)的域名量蕊,也可以看成是A記錄的反向
CNAME   記錄  允許將多個名字映射到同一臺計算機(jī)
TXT     記錄 一般指主機(jī)名或域名的說明

主動連接
內(nèi)網(wǎng)客戶端位于防火墻后方,服務(wù)端無法做到主動連接艇挨,因此大多的dns隧道工具残炮,客戶端會定時向服務(wù)端發(fā)送請求,保證二者之間的通信狀態(tài)缩滨。

常用工具

dnscat2势就,iodine泉瞻,DeNise,dns2tcp等單獨的DNS隧道工具苞冯。
cs袖牙,msf,empire等集合了DNS隧道功能的安全工具抱完。
本次分別演示使用dnscat2和cs的DNS隱藏隧道贼陶。

實驗環(huán)境

內(nèi)網(wǎng)win7虛擬機(jī)
阿里云vps
py來的域名

Dnscat2搭建DNS隧道

1、安裝環(huán)境依賴和服務(wù)端

apt-get install ruby ruby-dev git make g++ rubygems
gem update --system
gem install bundler
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server
bundle install

如下表示安裝成功巧娱。

2碉怔、客戶端下載安裝

Dnscat2支持跨平臺
linux客戶端

git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make

windows客戶端
下載鏈接
下載dnascat2的win32.zip

3、建立隧道

因為要使用中繼隧道禁添,設(shè)置一個NS記錄指向自己的子域名撮胧,再設(shè)置一個A記錄指向自己部署server端的服務(wù)器地址。


使用dig +trace dnsa.cseroad.space 查看域名詳細(xì)解析過程老翘,對應(yīng)著迭代查詢過程芹啥。

ruby ./dnscat2.rb dnsa.cseroad.space --no-cache

執(zhí)行dnscat2,輸入配置的子域名 --no-cache 代表禁止緩存

secret為隨機(jī)生成的密鑰铺峭,友好的給出了2種連接方式墓怀,分別為中繼和直連。
直接在客戶端執(zhí)行中繼連接方式卫键,session established表示隧道建立成功傀履。


服務(wù)端接收到客戶端的請求,創(chuàng)建了session 1會話莉炉。



進(jìn)入這個session

session -i 1

查看工具支持的功能钓账。


執(zhí)行系統(tǒng)命令,更多的功能不再演示絮宁。

cs使用DNS隧道建立連接

cs作為當(dāng)前最流行的安全工具肯定少不了DNS隧道功能梆暮。
cs的安裝過程不再贅述。

1绍昂、新建基于DNS隧道的監(jiān)聽器

payload選擇beacon_dns啦粹,host填寫A類解析的域名,端口隨意窘游。



輸入設(shè)置的ns服務(wù)器域名


2卖陵、基于監(jiān)聽器創(chuàng)建payload

推薦使用powershell,powershell不會產(chǎn)生文件落地张峰,且免殺性操作性強(qiáng)泪蔫。




成功上線。



通過Wireshark可以查看到cs的流量都是通過DNS發(fā)出的喘批,使用的為A類查詢進(jìn)行數(shù)據(jù)傳輸撩荣。

總結(jié)

DNS隧道在隱蔽性铣揉,穿透性上仍然具備不小的優(yōu)勢。
在大多數(shù)情況下它不會是最優(yōu)選擇餐曹,但在某些情況下它會成為唯一選擇逛拱。

參考資料:
利用DNS隧道構(gòu)建隱蔽C&C信道
DNS 深度理解 [ 一 ]
對 Cobalt Strike DNS隧道的理解與實戰(zhàn)
『DNS隧道工具』— iodine
DNS Tunneling及相關(guān)實現(xiàn)
利用DNS Tunnel傳輸數(shù)據(jù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市台猴,隨后出現(xiàn)的幾起案子朽合,更是在濱河造成了極大的恐慌,老刑警劉巖饱狂,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曹步,死亡現(xiàn)場離奇詭異,居然都是意外死亡休讳,警方通過查閱死者的電腦和手機(jī)讲婚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俊柔,“玉大人筹麸,你說我怎么就攤上這事〕簦” “怎么了物赶?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長留晚。 經(jīng)常有香客問我酵紫,道長,這世上最難降的妖魔是什么倔丈? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任憨闰,我火速辦了婚禮状蜗,結(jié)果婚禮上需五,老公的妹妹穿的比我還像新娘。我一直安慰自己轧坎,他們只是感情好宏邮,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缸血,像睡著了一般蜜氨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捎泻,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天飒炎,我揣著相機(jī)與錄音,去河邊找鬼笆豁。 笑死郎汪,一個胖子當(dāng)著我的面吹牛赤赊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播煞赢,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼抛计,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了照筑?” 一聲冷哼從身側(cè)響起吹截,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凝危,沒想到半個月后波俄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡媒抠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年弟断,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趴生。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡阀趴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苍匆,到底是詐尸還是另有隱情刘急,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布浸踩,位于F島的核電站叔汁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏检碗。R本人自食惡果不足惜据块,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望折剃。 院中可真熱鬧另假,春花似錦、人聲如沸怕犁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奏甫。三九已至戈轿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阵子,已是汗流浹背思杯。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留挠进,地道東北人色乾。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓腾么,卻偏偏與公主長得像,于是被迫代替她去往敵國和親杈湾。 傳聞我的和親對象是個殘疾皇子解虱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 文章首發(fā)于個人blog歡迎指正補(bǔ)充,可聯(lián)系lionsom_lin@qq.com原文地址:《網(wǎng)絡(luò)是怎樣連接的》閱讀整...
    lionsom_lin閱讀 14,159評論 6 31
  • 1. 概述 在網(wǎng)絡(luò)環(huán)境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對應(yīng)服務(wù)器獲取相應(yīng)的...
    ghbsunny閱讀 2,901評論 0 7
  • 前言 本文開始介紹應(yīng)用層漆撞,傳輸層為應(yīng)用進(jìn)程提供了端到端的通信服務(wù)殴泰,但不同的網(wǎng)絡(luò)應(yīng)用的應(yīng)用進(jìn)程之間,還需要有不同的通...
    HRADPX閱讀 1,984評論 2 5
  • 目錄: 一些基本概念主機(jī)名DNS名稱解析DNS 解析的后端存儲名稱解析總結(jié) 大規(guī)模域名解析的體系架構(gòu)DNS 解析需...
    C86guli閱讀 12,504評論 3 34
  • “桃花源”不過是夢想———淺談電影《健忘村》 建一個桃花源浮驳, 沒有痛苦悍汛,只有幸福,平平淡淡至会,男女老少离咐,怡然自得。電...
    曉曦12閱讀 245評論 0 0