FRP内网渗透

工作原理

# 服务端运行,监听一个主端口,等待客户端的连接;
# 客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
# 服务端fork新的进程监听客户端指定的端口;
# 外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
# 客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。

服务端

1.下载frp
https://github.com/fatedier/frp/releases

2.解压安装
$ tar -zxvf frp_0.33.0_linux_amd64.tar.gz

3.修改配置
$ cd frp_0.33.0_linux_amd64/
$ vi frps.ini
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
token = 52010  # 这个token之后在客户端会用到

# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin

# http 和 https 转发的端口设定
vhost_http_port = 81
vhost_https_port = 82

# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

4、启动
$ ./frps -c frps.ini &

5、访问7500 后台管理

Linux客户端

1、下载frp,解压安装
略

2、配置客户端
$ cd frp_0.33.0_linux_amd64/
$ vi frpc.ini  (注意哦,不是frps.ini)
# 客户端配置
[common]
server_addr = 服务器ip
server_port = 7000 # 与frps.ini的bind_port一致
token = 52010  # 与frps.ini的token一致

# 配置ssh服务
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22  # 需要转发的端口
remote_port = 6000  # 这个自定义,之后再ssh连接的时候要用,用户访问的端口

# 配置http服务,可用于小程序开发、远程调试等,如果没有可以不写下面的
[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
subdomain = test.hijk.pw  # web域名
remote_port = 自定义的远程服务器端口,例如8080

3、防火墙

4、启动
./frpc -c frpc.ini

windows客户端

1、下载
https://github.com/fatedier/frp/releases  # windows版本

2、修改配置
文本打开 frpc.ini
[common]

server_addr = x.x.x.x   # 外网服务端IP
server_port = 7000   # 服务端端口
token = won517574356   # 服务端token


[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = 47.108.117.90


[mysql]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 6000

3、启动
使用命令提示符或Powershell进入该目录下
cd C:\frp
并执行
frpc.exe
运行frpc程序,窗口中输出如下内容表示运行正常。

4、开机自启
frpc.bat
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

:begin
REM
cd C:\frp
frpc -c frpc.ini
exit


把这个 .bat 文件直接扔进Windows的开机启动文件夹就好了