跳板攻击之: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 实验环境

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

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

跳板攻击之:dns2tcp的更多相关文章

  1. msf客户端渗透(七):跳板、post模块、自动运行脚本

    跳板 假设有这样一个场景,有一个局域网内网网关是1.1.1.1,局域网里的主机1是kali,它经过一个防火墙连接到公网,主机2和主机3在另一个内网网关为2.1.1.1的局域网,由于防火墙做了设置,只有 ...

  2. MSF基础攻击实践报告

    MSF基础攻击实践 MSF的六个模块:exploit,encoder,payload,aux,post,nops exploit——渗透攻击模块 测试者利用它来攻击一个系统,程序,或服务,以获得开发者 ...

  3. chapter1 渗透测试与metasploit

    网络对抗技术课程学习 chapter1 渗透测试与metasploit 一.读书笔记 二.渗透测试 通过模拟恶意攻击者的技术与方法进行攻击,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响 ...

  4. 渗透攻防工具篇-后渗透阶段的Meterpreter

    作者:坏蛋链接:https://zhuanlan.zhihu.com/p/23677530来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 前言 熟悉Metasploit ...

  5. Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter

    Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter 原文链接:http://www.xuanhun521.com/Blog/7fc11b7a-b6cb-4 ...

  6. (一)走进Metasploit渗透测试框架

    渗透测试的流程 渗透测试是一种有目的性的,针对目标机构计算机系统安全的检测评估方法,渗透测试的主要目的是改善目标机构的安全性.渗透测试各个阶段的基本工作: 1.前期交互阶段 在这个阶段,渗透测试工程师 ...

  7. Meterpreter命令详解

      0x01初识Meterpreter 1.1.什么是Meterpreter Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以 ...

  8. Metasploit用法大全

    Metasploit用户接口msfconsoleArmitage:  KaliGUI启动:armitage命令启动 Metasploit功能程序msfvenom集成了载荷生成器.载荷编码器.空指令生成 ...

  9. 《Metasploit渗透测试魔鬼训练营》第一章读书笔记

    第1章 魔鬼训练营--初识Metasploit 20135301 1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防 ...

  10. 第一次亲密接触MSF

    第一次亲密接触MSF Metasploit Framework介绍 Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新.被安全社区冠以“可以黑掉整个宇宙”之名的强 ...

随机推荐

  1. day23 JDBC(Java Database Connection)连接 与 通配符与插入返回主键

    JDBC配置connector的jar包 1.项目下新建lib文件夹 2.将mysql-connector-java-版本号.jar复制到lib目录下 3.右键项目名,选择Properties选项 4 ...

  2. 第一章:使用函数绘制matplotlib的图表组成元素

    1.绘制直线图 1 # ============================展现变量的趋势变化========================== 2 import matplotlib.pypl ...

  3. 【SQL进阶】【表默认值、自增、修改表列名、列顺序】Day02:表与索引操作

    一.表的创建.修改与删除 1.创建一张新表 [设置日期默认值.设置id自增] [注意有备注添加备注COMMENT] CREATE TABLE user_info_vip( id int(11) pri ...

  4. 【JUC】循环屏障CyclicBarrier详解

    欢迎关注专栏[JAVA并发] 前言 jdk中提供了许多的并发工具类,大家可能比较熟悉的有CountDownLatch,主要用来阻塞一个线程运行,直到其他线程运行完毕.而jdk还有一个功能类似并发工具类 ...

  5. 预编译SQL为什么能够防止SQL注入

    前言 之前我一个搞网络安全的朋友问了我一个的问题,为啥用 PreparedStatement 预编译的 SQL 就不会有被 SQL 注入的风险? 第一时间我联想到的是八股文中关于 Mybatis 的脚 ...

  6. 《HTTP权威指南》– 3.HTTP方法和状态码

    常见HTTP方法: 常用HTTP方法 描述 是否包含主体 GET 从服务器获取一份文档 否 HEAD 只从服务器获取文档的首部 否 POST 向服务器发送需要处理的数据 是 PUT 将请求的主体部分存 ...

  7. Django框架模板语法传值-过滤器-标签-自定义过滤器,标签,inclusion_tag

    目录 一:模版语法传值 1.模板语法两个书写方式 2.模板语法 3.测试模板语法是否可以把python支持的基本数据类型传入到前端 4.index.html 5.django模板语法取值方式 二:过滤 ...

  8. Chaos 测试下的若干 NebulaGraph Raft 问题分析

    Raft 是一种广泛使用的分布式共识算法.NebulaGraph 底层采用 Raft 算法实现 metad 和 storaged 的分布式功能.Raft 算法使 NebulaGraph 中的 meta ...

  9. 直播报名|资深云原生架构师分享服务网格在腾讯 IT 业务的落地实践

    云原生在近几年的发展越来越火热,作为云上最佳实践而生的设计理念,也有了越来越多的实践案例,而一个个云原生案例的背后,是无声的巨大变革. 腾讯云主办首个云原生百科知识直播节目--<云原生正发声&g ...

  10. sikulix___自动化办公___重复性_机械性_的电脑操作___python脚本___Java运行环境下德jar包完成自动化测试相关___截图编程控制键盘鼠标

    sikulix___自动化办公___重复性_机械性_的电脑操作___python脚本___Java运行环境下德jar包完成自动化测试相关___截图编程控制键盘鼠标 应用场景: 公司内的大佬更改了xml ...