FRP代理工具详解

作者: 黑客网 分类: 黑客知识 发布时间: 2022-05-27 15:11

FRP官方文档:https://gofrp.org/docs


一、FRP工具的介绍


1.为什么需要内网穿透

我们的物理机、服务器可能处于路由器后或者处于内网之中。如果我们想直接访问到这些设备(远程桌面、远程文件、SSH等等),一般来说要通过一些转发或者P2P(端到端)组网软件的帮助。

其实,对于FRP穿透工具来说,它和端口转发有所不同,端口转发是只会进行单个端口的流量转发,但是这在渗透中往往是不行的,我们通过通过FRP进行内网的全流量的数据代理,像FRP可以代理全端口、全流量的数据,这样我们就可以使用SocksCap或者Proxifier等工具进行连接。


2.FRP介绍

frp 是一个可用于内网穿透的高性能的反向代理应用,支持TCP、UDP协议,为HTTP和HTTPS应用协议提供了额外的能力,且尝试性支持了点对点穿透。frp 采用go语言开发。更多的人使用 frp 是为了进行反向代理,满足通过公网服务器访问处于内网的服务,如访问内网web服务,远程ssh内网服务器,远程控制内网NAS等,实现类似花生壳、ngrok等功能。而对于内网渗透来讲,这种功能恰好能够满足我们进行内网渗透的流量转发。FRP最大的一个特点是使用SOCKS代理,而SOCKS是加密通信的,类似于做了一个加密的隧道,可以把外网的流量,通过加密隧道穿透到内网。效果有些类似于VPN。


3.为什么使用FRP

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

客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。

采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。

代理组间的负载均衡。

端口复用,多个服务通过同一个服务端端口暴露。

多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。

高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。

服务端和客户端 UI 页面。


二、FRP工具原理


1.FRP实现原理

frp 主要由客户端(frpc)和服务端(frps)组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。内网服务由于没有公网 IP,不能被非局域网内的其他用户访问。隐藏用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。


2.FRP图示

FRP代理工具详解


如上图所示,在目标内网(192.168.1.0网段)中,一共有多台内网服务器(使用三台进行简要说明),其中内网WEB服务器和内网数据库服务器的端口被映射到Nginx反向代理服务器上,这样直接访问Nginx反向代理服务器的IP加上对应的端口即可访问到内网WEB服务器和内网数据库服务器。


现在存在这样的一种情况,由于内网WEB服务器的端口被映射到了公网(也就是Nginx反向代理服务器的80端口上),因此可以通过访问Nginx服务器的80端口就直接可以访问到内网的WEB服务器上的业务,如果发现WEB主机上存在漏洞,通过漏洞拿到了WEB服务器的shell,注意这个shell并不是Nginx服务器的shell,而是内网WEB服务器的shell。


如果我们需要进行内网渗透,有两种思路,第一种是在内网WEB服务器上安装nmap、masscan这类工具进行扫描,第二种就是使用frp等工具进行代理,使用代理进行扫描。这里面就牵扯到两个问题,一个问题是如果拿下的这台主机是windows主机,但是在内网里面又发现了一台主机有web服务,这样怎么办?我们可以在这台主机上安装Burp和浏览器,进行抓包渗透,但是这个前提是你要可以连接RDP,也就是说内网WEB服务器的3389也是映射到公网上的,可以直接连接进行渗透;还有一个问题是如果拿下的主机是linux主机呢?怎么在linux主机上安装burp呢?这显然是不合理的,但是我们可以在拿下的这台linux主机上开启SOCKS代理,然后在本地使用SOCKS代理去连接,但是显然比较麻烦。因此,很多人在内网渗透中可能会选择使用FRP内网穿透工具来进行内网中的全流量代理,FRP是一个全流量代理,在本地可以使用SocksCap、Proxifier等工具进行连接。下面来进行说明。

FRP代理工具详解


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

标签云