• 红队隧道应用篇之DNS协议传输(九)


    简介

    DNS隧道是一种相对隐蔽的隧道, 通过将其他协议封装到DNS协议中来进行传输通信

    因为DNS协议是网络中的基础协议且必不可少, 所以大部分防火墙和入侵检测设备是不会对DNS流量进行拦截, 这就给DNS作为隐蔽通信提供了有力条件, 从而可以利用它实现诸如僵尸网络或木马的远程控制通道和对外传输数据等等

    DNS隧道依据其实现方式大致可分为直连和中继两类:

    • 直连: 用户端直接和指定的目标DNS服务器建立连接,然后将需要传输的数据编码封装在DNS协议中进行通信。这种方式的优点是具有较高速度,但蔽性弱、易被探测追踪的缺点也很明显。另外直连方式的限制比较多,如目前很多的企业网络为了尽可能的降低遭受网络攻击的风险,一般将相关策略配置为仅允许与指定的可信任DNS服务器之间的流量通过

    • 中继隧道: 通过DNS迭代查询而实现的中继DNS隧道,这种方式及其隐秘,且可在绝大部分场景下部署成功。但由于数据包到达目标DNS服务器前需要经过多个节点的跳转,数据传输速度和传输能力较直连会慢很多

    dns2tcp

    工具安装及配置

    在自己的云服务器上执行如下命令安装dns2tcp工具

    apt-get update
    apt-get install dns2tcp
    
    • 1
    • 2
    image-20221102202110650

    修改dns2tcp配置文件: vim /etc/dns2tcpd.conf, 设置域名及DNS隧道密码, 注意监听地址要修改成0.0.0.0

    image-20221103165234024

    检查云服务器的53端口是否被占用: netstat -anp | grep "53", 发现53端口上运行了systemd-resolve服务, 此服务无法使用kill命令进行关闭, 只能使用: systemctl stop systemd-resolved

    image-20221102204446000

    配置域名解析

    此处我选择的是godaddy的域名: henry666.xyz

    添加一条A记录,主机记录为dns, 记录值为124.71.209.202

    再添加一条NS记录, 主机记录为dns2tcp, 记录值为dns.henry666.xyz

    解释: A记录表示dns.henry666.xyz指向124.71.209.202; NS记录表示若想要知道dns2tcp.henry666.xyz的ip地址, 就要通过dns.henry666.xyz去查询

    image-20221103201846612

    上述配置完成后, 在我们的云服务器上对53端口抓包来验证NS记录是否设置成功, 命令如下所示:

    tcpdump -n -i eth0 udp dst port 53
    
    • 1
    image-20221103202824464

    在客户端cmd命令输入: nslookup dns2tcp.henry666.xyz, 随后查看云服务上的抓包情况, 发现有很多数据回显, 说明这些二数据最终都流向了dns.henry666.xyz这个域名服务器

    这里我简单说明下DNS查询数据的流程: 首先解析此域名会先去本地的hosts文件查询数据, 查询不到再去学校的DNS服务器查询(此处我用的是校园网), 再查询不到又去根域名henry666.xyz的godaddy域名服务器查询, 然后godaddy域名服务器告诉我们此数据要去找dns.henry666.xyz这个域名服务器, 最后数据包流向了我们的云服务器

    image-20221103203030470 image-20221103203106700

    服务端操作

    服务端(云服务器)输入如下命令运行dns2tcpd工具

    dns2tcpd -f /etc/dns2tcpd.conf -F -d 3		
    
    • 1
    image-20221102213628103

    客户端操作

    将dns2tcp工具解压至客户主机, 并在文件夹打开cmd命令输入: dns2tcpc -r ssh -k henry666 -z dns2tcp.henry666.xyz 124.71.209.202 -l 8888 -c -d 3

    -r : 后接服务名称ssh/socks/http中的任意一个
    -z : 后接你设置的NS记录以及云服务器ip
    -l : 后接本地监听端口
    -d : 开启Debug模式

    image-20221104214436862

    使用xshell连接本机的8888端口, 随后输入要登录的用户名及密码, 即可连接上云服务器

    image-20221103205222419 image-20221103205411853

    Xshell动态端口转发(dynamic)

    鼠标右键ssh会话, 添加隧道转发规则, 此处选择SOCKS, 侦听端口为1080

    image-20221103232559677

    随后点击查看->隧道窗格, 查看刚刚创建的转移规则是否生效

    image-20221103232830018

    Proxifier配置系统代理

    点击配置文件->代理服务器, 添加代理服务器127.0.0.1:1080

    image-20221103233414959 image-20221103233502907

    运行测试

    打开火狐浏览器, 搜索IP可发现本机IP为云服务器的IP

    我用其他浏览器访问网页总是显示“代理服务器连接失败”, 只有使用火狐浏览器才能正常访问页面

    image-20221103233949404

    在运行浏览器的期间, 可在proxifier界面看到浏览器的网页数据流向至socks代理服务器

    image-20221103234049289

    参考文章

    • https://blog.csdn.net/a15608445683/article/details/122803795

    • https://blog.csdn.net/jd_cx/article/details/122660833

    • https://www.baidu.com/link?url=8_ioEY96YssEa3B_EXOcBNLrb4YDg6sngpAj93DiGuWOX_zZEC8qIUADERWQAsFY&wd=&eqid=d0ca3b550000fa500000000663650fe8

  • 相关阅读:
    Xilinx FPGA 7系列 GTX/GTH Transceivers (5)-- Aurora 8b10b 信号传输实战--小试牛刀
    java stream对象转Map
    【论文阅读笔记】NITRE 2022 Challenge on Efficient Super-Resolution: Methods and Results
    GPS+北斗定位借助Arduino的数值显示
    TC397 EB MCAL开发从0开始系列 之 [15.0] Fee配置说明 -理论详解
    嵌入式开发从入门到精通之第二十一节:三轴加速度传感器(BMA250E)
    GB-T 43698-2024 网络安全技术 软件供应链安全要求
    定位进阶(HTML)
    【JAVA学习笔记】63 -坦克大战1.3-敌方发射子弹,击中坦克消失并爆炸,敌人坦克随机移动,规定范围限制移动
    云原生爱好者周刊:VMware Tanzu 社区办发布,无任何限制!
  • 原文地址:https://blog.csdn.net/xf555er/article/details/132723007