文章来源: 白帽子搞安全
FRP工具介绍0x01
FRP介绍
frp 是一个可用于内网穿透的高性能的反向代理应用,支持TCP、UDP协议,为HTTP和HTTPS应用协议提供了额外的能力,且尝试性支持了点对点穿透。frp 采用go语言开发。更多的人使用 frp 是为了进行反向代理,满足通过公网服务器访问处于内网的服务,如访问内网web服务,远程ssh内网服务器,远程控制内网NAS等,实现类似花生壳、ngrok等功能。而对于内网渗透来讲,这种功能恰好能够满足我们进行内网渗透的流量转发。FRP最大的一个特点是使用SOCKS代理,而SOCKS是加密通信的,类似于做了一个加密的隧道,可以把外网的流量,通过加密隧道穿透到内网。效果有些类似于VPN。
为什么使用FRP
FRP通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
代理组间的负载均衡。
端口复用,多个服务通过同一个服务端端口暴露。
多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
服务端和客户端 UI 页面。
下面提供FRP工具的下载和官方使用文档:
FRP官方文档:https://gofrp.org/docs
FRP下载地址:https://github.com/fatedier/frp/releases
FRP配置文件(Windows&Linux):
实战环境0x01
攻击机:Windows10
IP地址:192.168.92.11
[common]
bind_port = 7000 #表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
dashboard_port = 7500 #是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
token = 815093110 #是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
dashboard_user = bmzgaq
dashboard_pwd = bmzgaq.com #此两项表示打开仪表板页面登录的用户名和密码,自行设置即可。
vhost_http_port = 1080
vhost_https_port = 10443 #此两项用于反向代理HTTP主机时使用,本文不涉及HTTP协议,因而照抄或者删除这两条均可
配置好frps.ini文件后就可以在命令行运行frps了,在windows环境下命令行
输入以下命令:
frps.exe -c frps.ini
如果是linux环境的话则执行如下命令:
./frps -c frps.ini
server_addr = 42.1X2.204.XX #VPS服务器的IP
server_port = 7000 #服务端服务器设置frps.ini中的端口
token = 815093110 #服务端服务器设置frps.ini中的密码
[RDP] #服务器名(可以填写web、ssh、ftp等)
type = tcp #连接协议类型
local_ip = 127.0.0.1 #访问的ip可以是内网任何一个ip!
local_port = 3389 #本地端口(根据协议修改)
remote_port = 7333 #远程服务器的ip端口
配置好以上内容呢,我们就可以运行frpc客户端程序了。
实战渗透0x02
将如上工作配置好以后我们就可以直接在本地对靶机内网进行渗透了!例如我们直接远程登录到靶机,打开mstsc,输入frps的公网地址:映射的内网端口。
接下来我们就可以进行内网渗透啦,扩大自己的资产,请开始你的表演吧!