內網滲透之DNS隧道搭建(1)


前言

年初有幸參加了一次hvv,我主要負責內網滲透的部分,包括代理搭建,橫向移動等等。那個時候,也是剛剛接觸內網沒兩個月,趕鴨子上架的學了一下就上了戰場。好在運氣不錯,通過weblogic的反序列化RCE拿到系統權限,后來發現了一個尷尬的問題,目標主機不出網,借助搜索引擎,大佬們都在用reGeorgh和Pystinger,這兩款工具都是使用webshell來進行socks代理,進而穿透內網,后面確實也達到目的,進內網水了波分。回學校復盤的時候,發現還有一種更厲害的姿勢。。。搭建DNS隧道。

DNS隧道介紹

DNS隧道,是隧道技術中的一種。當我們的HTTP、HTTPS這樣的上層協議、正反向端口轉發都失敗的時候,可以嘗試使用DNS隧道。DNS隧道很難防范,因為平時的業務也好,使用也罷,難免會用到DNS協議進行解析,所以防火牆大多對DNS的流量是放行狀態。這時候,如果我們在不出網機器構造一個惡意的域名(***.test.cn),本地的DNS服務器無法給出回答時,就會以迭代查詢的方式通過互聯網定位到所查詢域的權威DNS服務器。最后,這條DNS請求會落到我們提前搭建好的惡意DNS服務器上,於是乎,我們的不出網主機就和惡意DNS服務器交流上了。

1.png

DNS隧道搭建工具推薦

DNS隧道搭建的工具有很多,包括iodine,dns2tcp,dnscat等,綜合體驗了一下,還是推薦大家使用iodine,非常的簡單方便。

前置准備

因為我們需要在自己的VPS上使用DNS服務,所以得先配置一下域名,這里以騰訊雲為例:

2.png

第一條A類記錄,告訴域名系統,"dns.xxx.com"的IP地址是"175.xxx.xxx.xxx"

第二條NS記錄,告訴域名系統,"dns2tcp.xxx.com"的域名由"dns.xxx.com"進行解析。

最后這條"dns2tcp.xxx.com"的DNS就會被"175.xxx.xxx.xxx"的主機(也就是我們的VPS),給解析掉。

配置完之后,可以ping一下dns.xxx.com,觀察是否能ping通。

iodine進行隧道搭建

1.安裝iodine,這里以Linux為例,如果是Windows系統,就下載安裝對應版本的iodine即可。

apt-get install iodine

2.在VPS上運行iodine的服務端iodined,運行之后VPS上會多一個虛擬網卡地址:

3.png

 iodined -f -c -P d1m0n 192.168.0.1 dns2tcp.xxx.com -DD

#-f:在前台運行
#-c:禁止檢查所有傳入請求的客戶端IP地址。
#-P:客戶端和服務端之間用於驗證身份的密碼。
#-D:指定調試級別,-DD指第二級。“D”的數量隨級別增加。
#這里的192.168.0.1為自定義局域網虛擬IP地址,建議不要與現有網段沖突
#注意!填寫的地址為NS記錄

3.運行客戶端iodine,這里使用kali,kali默認是安裝好iodine的:

4.png

iodine -f -P d1m0n dns2tcp.xxx.com  -M 200

#-r:iodine有時會自動將DNS隧道切換為UDP隧道,該參數的作用是強制在任何情況下使用DNS隧道
#-M:指定上行主機的大小。
#-m:調節最大下行分片的大小。
#-f:在前台運行
#-T:指定DNS請求類型TYPE,可選項有NULL、PRIVATE、TXT、SRV、CNAME、MX、A。
#-O:指定數據編碼規范。
#-P:客戶端和服務端之間用於驗證身份的密碼。
#-L:指定是否開啟懶惰模式,默認開啟。
#-I:指定兩個請求之間的時間間隔。

兩條命令,DNS隧道就已經搭好了,可以ping一下我們的VPS(ip:192.168.0.1)看一下,是否能通:

5.png

到此,我們的任務只完成一半,對內網滲透來說,我們肯定是要橫向移動的。DNS隧道幫助我們出網,還需要再搭建一個socks代理便於我們橫向移動,socks代理工具很多,這里介紹一個比較簡單輕便的--ssh,ssh通常都用來登錄遠程主機,傳輸的內容全部經過加密處理,同樣它內置了命令可以作為代理服務器使用。這里假設,我們把惡意DNS服務器作為跳板機,kali作為攻擊機器,在kali這邊配置一下:

ssh -N -D 8080 user@192.168.0.1

#-N 指示SSH不要啟動shell,因為我們只是想創建代理

#-D 設置動態端口轉發,SOCKS代理端口為8080

#user 我們服務器上的用戶

#192.168.0.1 tun接口上的iodine服務器

6.png

輸入完VPS的ssh密碼之后,就開始進行轉發,這里配置一下proxychains4

vim /etc/proxychains4.conf 

7.png

最后驗證一下我們的代理有沒有搭好:

proxychains4 curl http://www.baidu.com

8.png

大功告成,后面就是內網漫游時間~

實驗名稱:DNS服務器配置


免責聲明!

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



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