跳板攻击之:dns2tcp

跳板攻击之:dns2tcp

1 dns2tcp简介

dns2tcp 是一个利用 DNS 隧道转发 TCP 连接的工具,支持 KEY 和 TXT 类型的请求,用 C 语言开发。它分为两个部分,服务端和客户端,服务端运行在 linux服务器上,客户端可以运行在 linux 和 windows 上,编译完成后在服务端上的可执行文件名称为 dns2tcpd,在客户端上的名称为dns2tcpc,kali 默认安装了二者。

  • 采用直连,但速度不是特别乐观
  • 利用合法DNS服务器实现DNS隧道
  • C/S(dns2tcpc / dns2tcpd)结构
  • 默认通过TXT记录(base64编码)传输数据(A记录长度有限)
  • 隧道建立后保持连接,大概0.6s发出一个数据包,最大是3s可以设置
  • 还需要配合其他代理工具

2 dns2tcp 食用说明

2.1 dns2tcpd 服务端

2.1.1 服务端参数说明

# dns2tcpd
-F 强制在在台运行,默认在后台
-i IP address
监听 ip,默认 0.0.0.0
-f 配置文件
指定使用的配置文件路径
-d debug level
指定调试级别,输出相关级别日志,默认为 1,2,3

2.1.2 配置文件

listen = 127.0.0.1
port = 53
# If you change this value, also change the USER variable in /etc/default/dns2tcpd
user = nobody
chroot = /tmp
domain = your.domain
resources = ssh:127.0.0.1:11022, smtp:127.0.0.1:25
  • 最后的resources里面配置的是dns2tcp供客户端使用的资源。作用是:客户端在本地监听一个端口,并指定使用的资源,当有数据往端口传送后,dns2tcp客户端将数据用DNS协议传动到服务器,然后服务器将数据转发到对应的资源配置的端口中。

2.2 客户端参数说明

# dns2tcpc
-c : 启用压缩
-z <domain> : 指定所使用的域名
-d <1|2|3> : 调试级别 (1, 2 or 3)
-r <resource> : 访问的目标资源
-f <filename> : 配置文件路径
-l <port|-> : 本地监听端口
-T <TXT|KEY> : DNS 请求类型,默认为 TXT

3 实验环境

image-20220820155640732

4 利用过程

  1. 实现:内网Win10通过DNS隧道代理访问到外网

  2. 设置域名信息

    # 添加 A 记录 acdns.fcarey.com 指向 VPS IP
    
    # 添加 NS 记录 aclab.fcarey.com 指向 acdns.fcarey.com
    
  3. VPS 服务端上安装DNS2TCP

    apt install dns2tcp
    
  4. VPS 服务端上修改配置文件如下

    listen = 0.0.0.0
    port = 53
    # If you change this value, also change the USER variable in /etc/default/dns2tcpd
    user = acuser
    key = Admin123
    chroot = /tmp
    domain = aclab.fcarey.com
    resources = ssh:127.0.0.1:22 , http:127.0.0.1:80 , socks:127.0.0.1:12321
    
    • user:密码是服务端系统的用户
    • key:设置VPS密码
  5. 启动 DNS2TCPD 服务

    dns2tcpd -f /etc/dns2tcpd.conf -F -d 3
    
  6. Win10客户端执行

    # 使用http代理
    dns2tcpc -l 4444 -r ssh -k Admin123 -z aclab.fcarey.com <VPSIP> -c -d 3
    
    # 使用使用SOCKS代理
    dns2tcpc -l 12321 -r socks -k Admin123 -z aclab.fcarey.com <VPSIP>  -c -d 3
    
  7. 剩下的就是

    1. 通过DNS隧道远程连接VPS ssh服务,并通过开启SSH本地转发功能,通过SSH代理转发访问外网其他目标。

      ssh lighthouse@127.0.0.1 -p12321
      

      image-20220822162614870

    2. 或通过VPS上建立本地socks代理访问,使内网Win10主机访问外网

posted @ 2022-08-22 16:59  f_carey  阅读(314)  评论(0编辑  收藏  举报