FRP内网穿透及多级代理的使用

目录

0、前言

 1、场景介绍

2、环境准备

        2.1 下载frp

        2.2 配置一台VPS

        2.3 socks5客户端

        2.5 网络环境准备

3、Frp设置

        3.1 一层代理

        3.1 二层代理 

4、Frp总结


0、前言

        FRP是比较老牌的也是比较流行的反向代理、内网穿透软件。FRP用途和使用场景可以看官方文档,或下面的场景介绍,懂的自然懂。

        官网介绍:frp is a fast reverse proxy that allows you to expose a local server located behind a NAT or firewall to the Internet. It currently supports TCP and UDP, as well as HTTP and HTTPS protocols, enabling requests to be forwarded to internal services via domain name.

        frp是一种快速反向代理,允许您将位于NAT或防火墙后面的本地服务器暴露给Internet。它目前支持TCP和UDP,以及HTTP和HTTPS协议,使请求能够通过域名转发到内部服务。
        

 1、场景介绍

        今天借着proxifier和一个复杂一点的场景测试一下frp的基础功能和多级代理功能。其实我在某视频网站发过一次视频,由于水平有限没多少播放量,而且时间长了自己都忘了某些细节,所以今天用文字记录一下。

        下图是测试场景,比如渗透测试过程中黑客利用了S1对外映射的某Web服务的漏洞,通过该漏洞上传了webshell,控制了S1。这时候就想通过其他方式连接该服务器,比如3389端口,或者把S1当成跳板来进行横向渗透S2。这种情况下就可以使用frp最基础的功内网穿透。

        这个功能可以想象成把内网中的端口通过隧道主动送到互联网拥有公网IP地址的服务器上,这时候连接这个VPS的某端口实际就是连接S1的某端口。

        socks代理的功能可以认为S1把自己的某个端口运行代理然后主动送到VPS上,把相关软件的代理设置为VPS的相应端口就可以进行内网的扫描和横向跳转。        

        再来点复杂的需求,根据上图,比如客户内部有一台S2, S2有双网卡,另一个网卡连接更为私密的网络。假如防火墙上对S2流量进行了双向阻断,也就是说S2没有对外映射也不能出网。我们想攻击S2并把S2当成跳板再去攻击S3,所以不能反向代理S2的端口,就需要用到多级代理,就是先通过一级代理S1连接到S2,再通过二级代理S2连接到S3。下面逐步实现这个需求。         

2、环境准备

        2.1 下载frp

         目前版本0.58.1,现在版本不再支持win7,而且配置文件由原来的ini变成了toml。

        linux 64位:

https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz

        win 64位:

https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_windows_amd64.zip

        2.2 配置一台VPS

        如果仅仅做实验可以不需要VPS,使用虚拟机的各种网卡模式搭配出来也能达到效果。

        如果想实际使用的话需要购买一台VPS。

        如果家里的宽带能获得公网IP的话也可以用路由器端口映射加DDNS的方式实现VPS的功能。我测试成功过。      

        VPS需要注意的是一般会有安全组,需要在规则里添加允许的端口。

        2.3 socks5客户端

        socks5客户端可以让不支持通过代理服务器工作的程序能通过HTTPS或SOCKS代理或代理链。我这里使用proxifier。

        在模拟黑客主机上运行该软件,理解代理服务器和规则的设置。

        2.5 网络环境准备

        我是用的是vmware workstation pro,现在也免费了不用担心版权问题了。

        运行S1、S2、S3,三台win10虚拟机,通过不同的网卡模式获得以上的网络结构。

        物理主机充当黑客主机。

        为了能贴近真实网络环境,我用pfsense模拟防火墙。pfsense安装完毕后接口设置没问题的情况下就自动生成源地址转化,内网主机自动就能上网。单独设置S2的阻断策略。

        设置正确的wan口、lan口和对应ip地址。        

         使用web登录以后停止DNS服务,启用DNS转发,设置dns服务器地址。        

        在lan口设置拒绝S2服务器安全策略。 源是192.168.100.12,目的是所有。

3、Frp设置

        3.1 一层代理

        首先在VPS上配置frps.toml文件,为了简单点不配置web服务、日志、密码验证等功能。        

        在S1上运行frpc.exe,指定配置文件。

        这是后在黑客主机上使用远程桌面连接1.94.22.223:6000 

        可以看到成功连接。下一步开启S1的socks代理。

        停止隧道,编辑frpc.toml,增加socks代理内容。

        新版的frp配置和以前不一样,以前的socks代理:

[target1] 

type = tcp

remote_port = 1234 

plugin = socks5 

        新版的配置:

[[proxies]]
name = "socks5"
type = "tcp"
remotePort = 6001
[proxies.plugin]
type = "socks5"

        编辑好以后运行frpc.exe -c frpc.toml

        这时候需要用到proxifier,配置代理服务器。

        为了安全起见在实际使用中建议加上认证字段。配置好以后可以点击测试。下一步增加代理规则。         

        指定目标范围和使用的代理。运行mstsc。

        可以在proxifier看到代理中的流量:

         也可以看到登录S2的界面: 

       也可以通过浏览器代理访问S2上面的业务,提前在S2上面通过chfsgui运行一个简单的web页面。通过在proxifier添加代理规则可以测试。        

        可以在代理软件中看到相关流量,也能这正常打开页面。也可以直接使用浏览器代理功能或者SwitchyOmega插件,但是直接使用浏览器插件的话不支持socks登录验证。所以还是使用代理软件方便和安全。

        3.1 二层代理 

        当以上功能实现后,如拓扑图所示,希望在S2上再运行一层代理,去攻击S3的情况下就需要二层代理。

        保持以上设置不变,在S1上运行一次frps,也就是服务端,在S2上运行一次frpc,也就是客户端。这样就把代理串联起来了,也可以叫代理链。

        S1上运行服务端:        

        这里的7000是S1上的7000,和VPS不冲突。

        S2上运行客户端:        

         由于可以通过S1的代理完全访问S2,所以不需要把S2的端口送出来,只开启S2上面的socks就可以。

        socks代理链已经准备好了,现在设置代理软件。

        增加代理服务器:               

        这里不能测试,因为需要通过第一代理才能通。

         这时候点击proxy chains,打开代理链设置,增加一个代理链。然后把上面的代理拖下来。注意顺序。        

        设置相关代理规则,目的地址是10.0.0.0的流量走代理链。在设置的时候不小心把2个代理的端口都设置成为6001了,本来以为会冲突,因为可能会在S1上冲突,实际发现并没有冲突。

        使用远程桌面测试,可以在代理软件中看到流量,也从客户端看到登录验证信息。         

        这时候就实现通过代理连访问S3服务器的相关端口,当然也可以通过浏览器访问上面的业务系统。

4、Frp总结

         以上就是通过Frp实现多重代理(代理链)的过程,还是比较顺利的。现在网上好多frp配置都是基于老版本的,而且代理连的比较少。代理链能不能用在msf或者nmap上没有测试过,我印象当中msf可以设置代理,nmap官方文档中说三层的扫描流量可以走代理。 在linux中执行proxychains加nmap应该可以走代理。改天可以测试一下。

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

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

相关文章

【Linux工具】yum软件包管理器与Vim编辑器的高效运用

目录 Linux 软件包管理器 YUM 什么是软件包 安装工具 rzsz 及注意事项 查看软件包 安装和卸载软件 安装软件 卸载软件 Linux 开发工具 编辑器 - Vim 使用 ​编辑 Vim 与 Vi 的区别 Vim 的基本概念 三种模式 Vim 的基本操作 操作尝试: Vim 命令集解释…

【有趣分享】火柴人VS数学

今天看到一个很有趣的视频,是火柴人VS数学,大家感兴趣的可以看一下: 火柴人 VS 数学(Math)https://www.bilibili.com/festival/jzj2023?bvidBV1ph4y1g75E&spm_id_from333.337.search-card.all.click

[Linux] 系统的基本架构特点

Linux系统的基本结构 Linux is also a subversion of UNIX,it follows the basic structure of UNIX 内核(kernel): 操作系统的基本部分 管理与硬件相关的功能,分模块进行 常驻模块:进程控制IO操作文件\磁盘访问 用户不能直接访问内核 外壳(s…

java学习--集合(大写一.1)

看尚硅谷视频做的笔记 1.集合框架概述 1.1生活中的容器 首先知道集合是来解决什么问题的? 1.1.1内存层面需要针对于多个数据进行存储,此时,可以考虑的容器有:数组、集合类 对于内存层面的来说,断电后数据就不复存…

Python和OpenCV图像分块之图像边长缩小比率是2

import cv2 import numpy as npimg cv2.imread("F:\\mytupian\\xihuduanqiao.jpg") # 低反光 cv2.imshow(image, img) # # 图像分块 # dst np.zeros(img.shape, img.dtype) ratio 2 #图像边长缩小比率是2,也就是一张图片被分割成四份 height, wi…

模型预测控制MPC详解(附带案例实现)

模型预测控制MPC详解(附带案例实现) 文章目录 模型预测控制MPC详解(附带案例实现)1. 最优控制问题2. 什么是MPC3. 二次规划Quadratic Programming4. MPC为什么可以转换成QP问题(推导过程)5. MPC总结5.1 MPC…

希喂、K9、弗列加特主食冻干测评:这次,我们去了美国的实验室

主食冻干你有喂过吗? 作为有七年养猫经验的铲屎官,我强烈推荐,真的值得一试! 在宠物经济蓬勃发展的今天,养猫已经成为了一门学问。人们开始追求更加科学、健康的养猫方式。大量喂养案例表明,传统的商业猫粮…

【ARMv8/v9 GIC 系列 2.1 -- GIC SPI 中断的 pending 和 clear pending 配置】

文章目录 GIC Pending 和 Clear PendingGICD_ISPENDR<n>GICD_ICPENDR<n>参数<n>编号解释使用举例设置中断ID 100为挂起状态清除中断ID 100的挂起状态 代码实现小结 GIC Pending 和 Clear Pending 在ARMv8体系结构中&#xff0c;GICD_ISPENDR<n> 和 GI…

C# WPF入门学习番外篇——C#使用WPF连接MySQL数据库

在 C# 中使用 WPF 连接 MySQL 数据库涉及几个步骤&#xff0c;包括安装必要的库&#xff0c;配置连接字符串&#xff0c;编写代码以执行数据库操作等。下面是一个详细的入门教程&#xff0c;帮助你理解如何在 WPF 应用程序中使用 MySQL 数据库。 1. 安装 MySQL 数据库连接器 …

两个方法,批量替换PPT中的字体

经常制作ppt的朋友可能会遇到需要批量替换字体的情况&#xff0c;如果我们想要更换ppt中的字体&#xff0c;今天分享PPT批量替换字体的两个方法。 方法一&#xff1a; 找到功能栏中的编辑选项卡&#xff0c;点击替换 – 替换字体&#xff0c;在里面选择我们想要替换的字体就可…

Humanize,一个很有人情味的 Python 库

目录 01初识 Humanize 为什么选择 Humanize&#xff1f; 安装 Humanize 02时间与日期的处理 时间差的展示 日期的展示 03数字的处理 数字的单位转换 数字的精确度控制 数字的千位分隔符 04文件大小的处理 文件…

JAVA语言开发的一套(智慧工地监管系统源码)让工地变得更加“聪明”

JAVA语言开发的一套&#xff08;智慧工地监管系统源码&#xff09;让工地变得更加“聪明” 数字智慧工地是指利用物联网、大数据、云计算、人工智能等先进技术&#xff0c;对工地进行全面数字化改造和智能化升级&#xff0c;实现工地管理的精细化、高效化和智能化。它通过实时…

ETO MARKETS:美债高额利息——美国财政的不可承受之重

摘要 2024年&#xff0c;美国联邦政府债务的利息支出预计将达到8920亿美元&#xff0c;这一数字比国防开支还要多&#xff0c;凸显了政府债务和利率上升的双重压力。国会预算办公室&#xff08;CBO&#xff09;预测&#xff0c;利息支出占GDP的比例将继续上升&#xff0c;这意…

Apple Phone Memory

Apple Phone Memory 苹果手机内存查询&#xff0c;哪些应用程序&#xff08;app&#xff09;占用内存&#xff1a; 设置 通用 iPhone储存空间 清理下QQ音乐&#xff1a;

远程桌面无法连接,远程桌面连接登录没有成功

在信息技术领域&#xff0c;远程桌面连接作为一种便捷的管理和操作工具&#xff0c;对于企业和个人用户而言都具有极其重要的价值。然而&#xff0c;在实际使用过程中&#xff0c;远程桌面无法连接的问题时常出现&#xff0c;这不仅影响了工作效率&#xff0c;还可能对数据安全…

Matlab数学建模实战应用:案例2 - 传染病传播

目录 前言 一、问题分析 二、模型建立 三、Matlab代码实现 四、模型验证 灵敏度分析 五、模型应用 实例总结 总结 前言 传染病传播模型是公共卫生和流行病学的重要研究内容&#xff0c;通过数学建模可以帮助我们理解传染病的传播规律和趋势&#xff0c;以便制定有效的…

多组学双疾病串扰怎么做?PAN-AD九个机器学习+MR+单细胞,工作量不少

说在前面 “串扰”这个名词听起来高级了一个level&#xff0c;其实就是MR-通路的双疾病联合分析。虽然是筛选标志物的思路&#xff0c;但是工作量不小&#xff0c;作者还收集了13个不同AD自身免疫疾病数据集用于验证自己的机器学习模型&#xff0c;分析就是一些常规的WGCNA、P…

VMware虚拟机三种网络模式设置 - NAT(网络地址转换模式)

一、前言 在前一篇《Bridged&#xff08;桥接模式&#xff09;》中&#xff0c;我详细介绍了虚拟机网络模式设置中的桥接模式。今天详细讲解一下NAT&#xff08;网络地址转换模式&#xff09;。 在虚拟机&#xff08;VM&#xff09;中&#xff0c;NAT&#xff08;Network Addre…

CSS--解决图片变形的方法

原文网址&#xff1a;CSS--解决图片变形的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍html文件中图片变形的解决方法。 问题描述 我们经常需要指定所有图片的大小&#xff0c;让它们排列起来时看起来更整齐。但是&#xff0c;如果我们指定了width和height&#xff0c;那…

使用Harbor搭建局域网私有docker镜像库

说明&#xff1a;本文只介绍使用http的方式访问Harbor镜像库&#xff0c;https访问的方式请自行查询。 一、安装harbo 前提条件&#xff1a;已安装好docker。 1.1、安装docker-compose sudo apt install docker-compose1.2、下载Harbor 从Harbor的官方github&#xff0c;下载…