穿墙神器frp

news/2024/11/19 15:20:22/文章来源:https://www.cnblogs.com/haiyoyo/p/18347590

背景

内网渗透需要

官网

https://github.com/fatedier/frp
当前最新版

https://github.com/fatedier/frp/releases/tag/v0.59.0

部署

写两个简单的加入systemctl的脚本


create_frps_service.sh

#!/bin/bash
install_path=$(cd $(dirname $0); pwd)
frps_exec=$install_path/frps
frps_config=$install_path/frps.toml
cat > /etc/systemd/system/frps.service <<EOF
[Unit]
Description=frps daemon
After=network.target[Service]
User=root
Group=root
Type=simple
ExecStart=$frps_exec -c $frps_config
Restart=on-failure
RestartSec=5s[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload

create_frpc_service.sh

#!/bin/bash
install_path=$(cd $(dirname $0); pwd)
frpc_exec=$install_path/frpc
frpc_config=$install_path/frpc.toml
cat > /etc/systemd/system/frpc.service <<EOF
[Unit]
Description=frps daemon
After=network.target[Service]
User=root
Group=root
Type=simple
ExecStart=$frpc_exec -c $frpc_config
Restart=on-failure
RestartSec=5s[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload

配置

frps.toml

bindPort = 6000
auth.method = "token"
auth.token = "ixxxssfsfr254235hthtvdcv242dhrfjfgj35we832743532twfdysHG4Bq8ff39u35fvxxx"
webServer.addr = "0.0.0.0"
webServer.port = 7000
webServer.user = "admin"
webServer.password = "admin"

frpc.toml

serverAddr = "frps服务器ip"
serverPort = 6000
auth.method = "token"
auth.token = "ixxxssfsfr254235hthtvdcv242dhrfjfgj35we832743532twfdysHG4Bq8ff39u35fvxxx"[[proxies]]
name = "test-web"
type = "tcp"
localIP = "192.168.35.226"
localPort = 6180
remotePort = 6001[[proxies]]
name = "plugin_socks5"
type = "tcp"
remotePort = 6002
[proxies.plugin]
type = "socks5"
username = "admin"
password = "admin"[[proxies]]
name = "secret_ssh"
type = "stcp"
# 只有与此处设置的 secretKey 一致的用户才能访问此服务
secretKey = "abcdefg"
localIP = "192.168.35.108"
localPort = 22

操作命令

启停:
systemctl start frps
systemctl stop frps
systemctl start frpc
systemctl stop frpc
看日志调试:
journalctl -u frps -f
journalctl -u frpc -f

功能

一.将内网的某一台服务器上的某个端口穿透至云服务器上的6001,协议tcp。

frps:101.37.252.158
frpc:192.168.35.86
目标服务器ip及端口:192.168.35.226:6180
穿透到云服务器ip及端口:101.37.252.158:6001

frpc端配置:

内网访问效果:

配置生效后:

成功将内网的某个web服务穿透至公网。

二.socks代理,协议tcp,插件socks5


frps:101.37.252.158
frpc:192.168.35.86
穿透到云服务器ip及socks5端口:101.37.252.158:6002
socks5账号:admin
socks5密码:admin

frps服务器
vim /etc/proxychains.conf
底部添加:
socks5  127.0.0.1 6002  admin admin


验证,通过proxychains4访问内网web服务器页面

成功通过socks5穿透访问内网资源。

三.配置服务端Dashboard

frps端
webServer.addr = "0.0.0.0"
webServer.port = 7000
webServer.user = "admin"
webServer.password = "admin"

四.安全的内网穿透

https://gofrp.org/zh-cn/docs/examples/stcp/
这是在功能一上做了改良,加了secretKey来认证,并新增了visitors这个概念。
frps:101.37.252.158
frpc:192.168.35.86
目标服务器ip及端口:192.168.35.226:22
发起访问的主机:192.168.11.55
比如说:
我在家里,我只要在家里的电脑安装一个frpc客户端,我可以通过云端的frps,将公司内网的某台服务器的某个端口,穿透到我家电脑的某个端口上。我访问家里本机上的端口等于访问公司服务器的某个目标端口。
这里需要改动的配置是公司的frpc:192.168.35.86,我家的frpc:192.168.11.55,而我家的这个frpc就是所谓的visitors。两边的frpc都需要加入secretKey,提供安全性。type为"stcp"。
公司frpc:192.168.35.86配置:

我家电脑frpc:192.168.11.55配置:

[[visitors]]
name = "secret_ssh_visitor"
type = "stcp"
# 要访问的 stcp 代理的名字
serverName = "secret_ssh"
secretKey = "abcdefg"
# 绑定本地端口以访问 SSH 服务
bindAddr = "127.0.0.1"
bindPort = 5555

验证成功:

五、更加安全的点到点的穿透

https://gofrp.org/zh-cn/docs/examples/xtcp/
在第四个功能上又做了改良,按官方的说法,代理类型xtcp,类似于功能四的stcp,用于在需要传输大量数据且不希望流量经过服务器frps进行中转的情况下实现内网穿透。

这个实验回头再补充。。。无非就是type改变一下就差不多了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/779356.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wpf 中的三个 UnhandledException

结构化异常处理 在异常点生成异常的结构体,异常分发 WPF中的三个Excption处理函数AppDomain::UnhandledException 事件属性 UI线程和Thread 实例的异常会触发该事件。Application::DispatcherUnhandledExcetion 事件属性 UI线程异常会触发该事件。如果事件的IsHandle=false,异…

19.python之自定义函数

python之自定义函数 一、函数的介绍 1、函数定义:函数是一个组织好,可重复使用,实现单一或联合的代码段。 2、函数作用:a、降低代码的冗余、b、增加代码的复用性 c、提高程序的拓展性 d、封装 二、python的结构三、函数的使用 1、格式: def 函数名 (变量): 执行语句 函…

洛谷P1480 A/B Problem

4.高精度除以低精度 题目叙述: A/B Problem 题目描述 输入两个整数 \(a,b\),输出它们的商。 输入格式 两行,第一行是被除数,第二行是除数。 输出格式 一行,商的整数部分。 样例 #1 样例输入 #1 10 2样例输出 #1 5提示 \(0\le a\le 10^{5000}\),\(1\le b\le 10^9\)。 代码…

condition字符串匹配问题

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 fs使用dialplan配置文件执行业务流程,condition条件变量的配置是必然会使用的,这里记录一次配置过程中的错误示范。 环境 CentOS 7.9 freeswitch 1.10.7 问题描述 dialplan配置如下,本意是根据通道变量${poolType}的值…

【Harmony Next】七夕前学会创建开屏动画拿下女同事的芳心

【Harmony Next】七夕前学会创建开屏动画拿下女同事的芳心 一个优秀的项目需要一个*格够高的动画来开启,下面教你用三步快速实现鸿蒙应用的开屏动画1.创建窗口 使用windowStage.createSubWindow("splash_window")创建窗口对窗口进行管理,实现加载开屏动画在UIAbili…

获取客户端真实IP

出于安全考虑,近期在处理一个记录用户真实IP的需求。本来以为很简单,后来发现没有本来以为的简单。这里主要备忘下,如果服务器处于端口回流(hairpin NAT),keepalived,nginx之后,如何取得客户端的外网IP。  来自客户端PC的流量路径如上,在这样的拓扑中,在应用服务中取…

获取客户端真实IP备忘

出于安全考虑,近期在处理一个记录用户真实IP的需求。本来以为很简单,后来发现没有本来以为的简单。这里主要备忘下,如果服务器处于端口回流(hairpin NAT),keepalived,nginx之后,如何取得客户端的外网IP。  来自客户端PC的流量路径如上,在这样的拓扑中,在应用服务中取…

[OI] 欢夏!邪龙?马拉车!

标题来自原神 算法概述 Maracher 算法 用途:寻找回文串,最板子的情况下用于字符串的回文子串计数给定一个字符串 \(S\),求出它全部的回文子串容易想到一种暴力的 \(n^{2}\) 做法,即枚举全部中心点,开双指针向两边扩展,每扩展一次就提供 \(1\) 的贡献. 事实上,对于这样的…

一行命令搞定内网穿透

一行命令搞定内网穿透 一款开源免费的内网穿透工具:localtunnel ,基于 nodejs 实现,无需修改 DNS 和防火墙设置,方便快捷的将内网服务暴露到外网,为开发人员、测试人员以及需要分享本地项目的人提供实时的公网访问方式,以便于测试和共享!功能特性一行命令启动,无需复杂…

中电信翼康济世数据中台基于Apache SeaTunnel构建数据集成平台经验分享

Apache SeaTunnel作为一个高效、灵活的数据集成平台,在数据中台战略中扮演着重要角色。通过本文的介绍,读者可以了解如何基于SeaTunnel快速搭建数据集成平台,并在实际应用中灵活运用。未来,随着技术的不断发展,SeaTunnel将继续在数据集成领域发挥重要作用,助力企业实现数…

数据集可以自己找开源

数据集可以自己找开源,比如GitHub上面的等等。 比如这个:https://github.com/bstabler/TransportationNetworks/tree/master其他相关项目 TRB网络建模委员会 InverseVIsTraffic是一个开源存储库,它实现了一些针对单类和多类交通网络提出的逆变分不等式 (VI) 公式。该软件包还…

js实战小项目随笔

获取事件源 var img = document.getElementById("imgs"); setAttribute为事件源赋值 img.setAttribute("src", "./image/" + index + ".jpg"); 图片切换