FRP编译并去除流量特征
FRP编译并安装
- 环境准备
- 配置Go编译环境
- 编译FRP
环境准备
配置Go编译环境
1.下载go依赖包
$ wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz
2.安装并配置环境变量
$ rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz$ vi /etc/profile
##在末尾添加
export GOROOT=/usr/local/go
export GOPATH=/home/work/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin:GOBIN$ source /etc/profile
3.检查go版本号
$ go version
go version go1.19.5 linux/amd64
编译FRP
1.下载源码包
从https://github.com/fatedier/frp下载最新版本,并上传到服务器。当前最新版本为0.46.1,所以本次编译以此版本为准。
2.解压源码包
$ unzip frp-0.46.1.zip
$ cd frp-0.46.1
3.修改流量特征
消息JSON特征
$ vi pkg/msg/msg.go
……
type Login struct {Version string `json:"version,omitempty"`Hostname string `json:"hostname,omitempty"`Os string `json:"os,omitempty"`Arch string `json:"arch,omitempty"`User string `json:"user,omitempty"`PrivilegeKey string `json:"privilege_key,omitempty"`Timestamp int64 `json:"timestamp,omitempty"`RunID string `json:"run_id,omitempty"`Metas map[string]string `json:"metas,omitempty"`// Some global configures.PoolCount int `json:"pool_count,omitempty"`
}
……
#将json后面双引号的中内容修改为其他字符串,比如如下所示:
type Login struct {Version string `json:"vy"`Hostname string `json:"hy"`Os string `json:"oty"`Arch string `json:"aty"`User string `json:"uty"`PrivilegeKey string `json:"pty"`Timestamp int64 `json:"tmpty"`RunID string `json:"rpty"`Metas map[string]string `json:"mty"`// Some global configures.PoolCount int `json:"poy"`
}#修改完成后保存文件
TLS连接特征
$ vi pkg/util/net/tls.go
//var FRPTLSHeadByte = 0x17
//修改为
var FRPTLSHeadByte = 0x88
func CheckAndEnableTLSServerConnWithTimeout(c net.Conn, tlsConfig *tls.Config, tlsOnly bool, timeout time.Duration,
) (out net.Conn, isTLS bool, custom bool, err error) {//sc, r := gnet.NewSharedConnSize(c, 2)//buf := make([]byte, 1)//修改为sc, r := gnet.NewSharedConnSize(c, 4)buf := make([]byte, 3)var n int_ = c.SetReadDeadline(time.Now().Add(timeout))n, err = r.Read(buf)_ = c.SetReadDeadline(time.Time{})if err != nil {return}switch {//case n == 1 && int(buf[0]) == FRPTLSHeadByte://修改为case n == 3 && int(buf[0]) == FRPTLSHeadByte:out = tls.Server(c, tlsConfig)isTLS = truecustom = truecase n == 1 && int(buf[0]) == 0x16:out = tls.Server(sc, tlsConfig)isTLS = truedefault:if tlsOnly {err = fmt.Errorf("non-TLS connection received on a TlsOnly server")return}out = sc}return
}
#修改完成后保存# vi pkg/util/net/dial.go
func DialHookCustomTLSHeadByte(enableTLS bool, disableCustomTLSHeadByte bool) libdial.AfterHookFunc {return func(ctx context.Context, c net.Conn, addr string) (context.Context, net.Conn, error) {if enableTLS && !disableCustomTLSHeadByte {//_, err := c.Write([]byte{byte(FRPTLSHeadByte)})//修改为_, err := c.Write([]byte{byte(FRPTLSHeadByte), byte(0x61), byte(0x63)})if err != nil {return nil, nil, err}}return ctx, c, nil}
}
4.编译
$ make -f Makefile.cross-compiles
至此,手动修改源码特征后编译完成,可以根据部署系统需要在release目录下找到对应操作系统的版本。
参考:
https://www.cnblogs.com/N0r4h/p/15848541.html
https://www.talaxy.site/lets-use-frp/
FRP编译并去除流量特征相关推荐
- Nmap流量特征修改(NTA、IDS、IPS、流量审计)
目录 0x01 前言 参考链接 0x02 环境 0x03 nmap探测的常用几种方式 -sS (SYN扫描) -sT (TCP扫描) -sU(UDP扫描) -sN:-sF:-sX (TCP Null, ...
- 常见WebShell客户端的流量特征及检测思路
常见WebShell客户端的流量特征及检测思路 01概述 开始之前先明确什么是webshell客户端?先问个问题,什么是客户端,什么是服务端? 很简单,提供服务的就是服务端,要求被服务的就是客户端.那 ...
- webshell客户端流量特征
webshell客户端流量特征 目录 1. 冰蝎 2. 中国菜刀 3. Cknife 4. 蚁剑 5. 哥斯拉 webshell客户端 用于webshell后门和攻击者之间的通信程序,我们可以通过we ...
- win11下载配置CIC Flowmeter环境并提取流量特征
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.下载CIC Flowmeter 二.安装java.maven.gradle和IDEA 1.java 1.8 2.m ...
- 菜刀、冰蝎、蚁剑、哥斯拉的流量特征
干货|菜刀.冰蝎.蚁剑.哥斯拉的流量特征 文章目录 干货|菜刀.冰蝎.蚁剑.哥斯拉的流量特征 菜刀流量特征 蚁剑(PHP用base64加密): 冰蝎(AES对称加密): 哥斯拉(base64加密): ...
- flowcontainer: 基于python3的pcap网络流量特征信息提取库
库介绍 flowcontainer是由信息工程研究所智能信息对抗组开源的基于python3的网络流量基本信息提取库,以方便完成网络流量的分析任务.给定pcap文件,该库会提取pcap所有的流的相关信息 ...
- 菜刀,蚁剑,冰蝎,哥斯拉的流量特征
蚁剑: ini_set ini_set_time ini_set_limit @ini_set("display_errors","0") 部分代码明文传输,较 ...
- 思科的joy提取加密流量特征教程以及基本使用
文章目录 开源数据集 Joy介绍 功能 linux 编译 教程 关键概念 提取数据 开源数据集 stratosphereips Pcap files unb.ca PCAP files vpn and ...
- 基于Python3+Scapy的数据包流量特征批量分析工具
基于Python3+Scapy的网络数据包批量分析工具 项目源码 适用范围以及使用说明 背景 环境准备及运行说明 常见协议分析识别 TCP协议识别 UDP协议识别 输出TXT文档信息 SSL NAME ...
最新文章
- 四位先行进位电路逻辑表达式_计算机硬件基础:二进制半加器、全加器与加法电路...
- Linux第五次作业
- java---switch
- 关键字提取_Excel根据2个关键字,批量提取字符
- jzoj100047-基因变异【位运算,bfs】
- asteirsk 开发指南
- Collections.sort()和Arrays.sort()排序算法选择
- java 抽象接口_JAVA中的“抽象接口”
- Hibernate上路_18-Hibernate查询方式
- 数据库系统——数据模型基本概念详解
- 【毕设记录日记】深度学习|铝型材表面缺陷视觉检测算法:YOLOv5环境搭建、基础知识、问题解决、优化方法
- 线性代数(1)—— 行列式
- 智能养殖管理系统科学调控蛋鸡养殖环境
- 交大昂立华为鸿蒙,20210517湖南人涨停复盘
- 阮一峰RESTful API规范
- 矩阵论 - 9 - 线性无关、基、维数
- LXD使用踩过的坑1——网络配置(后续遇到坑再更新......)
- 安全工程师转正面试题
- Caffe 激励层(Activation)分析
- 读懂8K慢直播对于文旅产业振兴的意义
热门文章
- UI设计中如何做出美观实用的UI界面?
- 如何用计算机计算分数乘法,50道分数乘法计算题,小学五年级数学分数乘法计算题100道...
- python第三方库有哪些-Python常用第三方库大盘点
- 关于exists 的使用
- 四川工商学院计算机科学协会视频,四川省高校后勤协会会员代表大会暨2020年会在四川工商学院召开...
- 软件工程实践-软件评测
- 魔百和M301A-MQ代工-非高安-S905L3芯片-当贝桌面-免拆和拆机线刷固件包
- DotNetty 高性能NIO通讯模型 服务端和客户端案例版
- Minecraft钻石矿生成定位器③(版本:1.16和1.17的Java版本)
- android ble和ios ble 对比,低功耗蓝牙的坑对比,低功耗蓝牙的总结