安全矩阵

 找回密码
 立即注册
搜索
查看: 2498|回复: 0

FRP内网利器使用基础

[复制链接]

189

主题

191

帖子

903

积分

高级会员

Rank: 4

积分
903
发表于 2022-5-23 19:51:29 | 显示全部楼层 |阅读模式
本帖最后由 margin 于 2022-5-23 19:58 编辑

原文连接:FRP内网利器使用基础 (qq.com)



概述:FRP(Fast Reverse Proxy)快速反向代理
官方介绍:“frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。frp 采用go语言开发。更多的人使用 frp 是为了进行反向代理,满足通过公网服务器访问处于内网的服务,如访问内网web服务,远程ssh内网服务器,远程控制内网NAS等,实现类似花生壳、ngrok等功能。而对于内网渗透来讲,这种功能恰好能够满足我们进行内网渗透的流量转发。FRP最大的一个特点是使用SOCKS代理,而SOCKS是加密通信的,类似于做了一个加密的隧道,可以把外网的流量,通过加密隧道穿透到内网。效果有些类似于VPN。”太啰嗦一句话总结:将内网机映射到公网上,使其可以被任何人访问。
为何需要内网穿透:在很多情况下我们的物理主机、家庭服务器、NAS等都处于路由器下的局域网内网环境中,这些设备没有公网ip,我们无法通过互联网直接远程访问到。如下情况:你在公司想要远程访问你家里的电脑。你的破群晖虽然好几十个t容量,没有公网ip只能在家里访问,无奈却只能放在家里存“小电影”。在做内网渗透的时候某些情况下需使用沦陷主机作为跳板机让内网机出网,渗透环境多变情况复杂极多时候都需要将内网主机映射到公网。如上所说的几种情况大致如下图所示(局域网A、局域网B中的主机都可以访问外网,但是不可以相互访问):

编辑
FRP优势:管方给出的:通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  •         客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  •         采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  •         代理组间的负载均衡。
  •         端口复用,多个服务通过同一个服务端端口暴露。
  •         多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  •         高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  •         服务端和客户端 UI 页面。
效果好不好当然谁用谁知道,亲测使用过程中的感悟:

  •         客户端和服务端配置简单,运行简单,简单易用,文档丰富
  •         可通过自定义域名访问内网服务
  •         可通过设置点对点的方式实现安全地内网服务访问,避免任何人都能访问穿透的服务
工作原理:部署示意图:

编辑

工作过程:1.服务端运行监听一个主端口等待客户端连接。2.客户端连接到服务端并发送监听端口和服务类型。3.服务端收到客户端指令后,将客户端需要转发的端口映射在新的端口上。4.我们访问服务端ip+映射后的端口,服务端将流量请求转发到内网地址映射端口上。

编辑
安装:


软件下载:https://github.com/fatedier/frp/releases/tag/v0.34.3

编辑

根据实际应用场景进行下载,每个压缩包中包含客户端和服务端两个程序,部署在服务端使用时运行服务端frps程序即可,部署在客户端使用时运行frpc程序即可。

编辑
服务端详细配置

复制代码
运行
根据实际使用环境进行服务配置(可参考下一节示例列举)配置好服务端和客户端后,在配置文件根目录下使用命令行分别运行服务端和客户端。

  1. # 服务端
  2. ./frps -c frps.ini
复制代码


  1. # 客户端
  2. frpc -c frpc.ini
复制代码

示例列举:
实例一:映射内网web服务


在对某内网的web网站进行渗透,无法直接接入用户内网。只有一台可访问外网的内网主机,通过内网主机代理转发内网web服务,使内网不出网web服务器服务经过可访问公网的内网主机映射到公网。

frps服务端配置(公网vps):
  1. [common]
  2. bind_port = 7000 #与客户端建立连接使用的端口
复制代码

frpc服务端配置(内网主机ip129):
  1. [common]
  2. server_addr = x.x.x.x      # 服务端VPS的ip
  3. server_port = 7000 #服务端建立连接使用的端口,配置需同客户端bind_port一致

  4. [web]  #服务名
  5. type = tcp #连接协议
  6. local_ip = 192.168.183.128 #需要穿透出去的内网ip,这里是内网web服务器的ip
  7. local_port = 80 #本地端口,这里指内网web服务的原端口
  8. remote_port = 8080 #映射后使用的端口,指映射后公网访问时使用的端口
复制代码




配置完成后分别启动服务端和客户端进行服务连接(注意:使用VPS注意防火墙、宝塔、安全策略等放行端口)


尝试访问

实例二:映射内网远程桌面


在很多时候我们想要访问不同局域网下的主机,除了使用各种远控工具也可以使用frp实现,可将局域网内的主机3389映射在公网后使用远程桌面进行连接,此功能更多的用在家庭nas服务器中

frps服务端配置:

  1. [common]
  2. bind_port = 7000
复制代码

frpc客户端配置:


  1. [common]
  2. server_addr = 81.70.154.135
  3. server_port = 7000

  4. [ssh]
  5. type = tcp
  6. local_ip = 127.0.0.1
  7. local_port = 3389
  8. remote_port = 8080
复制代码



配置完成后分别启动服务端和客户端进行服务连接(注意:使用VPS注意防火墙、宝塔、安全策略等放行端口)


在客户端新建测试账户进行测试。

编辑

示例三:通过proxifier实现socks5反向代理


通过frp搭建socks5反向代理,让自己的电脑走内网流量。
frps服务端配置:

  1. [common]
  2. bind_port = 7000
  3. dashboard_port = 46075
  4. dashboard_user = admin
  5. dashboard_pwd = password
  6. token = 123qwe
  7. heartbeat_timeout = 90
  8. max_pool_count = 5
复制代码

frpc客户端配置:

复制代码

编辑

配置完成后分别启动服务端和客户端进行服务连接(注意:使用VPS注意防火墙、宝塔、安全策略等放行端口)

编辑
登录proxifier:

编辑
参考连接:https://blog.csdn.net/qq_34801745/article/details/111146475
https://gofrp.org/docs/examples/ssh/

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 19:25 , Processed in 0.015146 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表