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编译并去除流量特征相关推荐

  1. Nmap流量特征修改(NTA、IDS、IPS、流量审计)

    目录 0x01 前言 参考链接 0x02 环境 0x03 nmap探测的常用几种方式 -sS (SYN扫描) -sT (TCP扫描) -sU(UDP扫描) -sN:-sF:-sX (TCP Null, ...

  2. 常见WebShell客户端的流量特征及检测思路

    常见WebShell客户端的流量特征及检测思路 01概述 开始之前先明确什么是webshell客户端?先问个问题,什么是客户端,什么是服务端? 很简单,提供服务的就是服务端,要求被服务的就是客户端.那 ...

  3. webshell客户端流量特征

    webshell客户端流量特征 目录 1. 冰蝎 2. 中国菜刀 3. Cknife 4. 蚁剑 5. 哥斯拉 webshell客户端 用于webshell后门和攻击者之间的通信程序,我们可以通过we ...

  4. win11下载配置CIC Flowmeter环境并提取流量特征

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.下载CIC Flowmeter 二.安装java.maven.gradle和IDEA 1.java 1.8 2.m ...

  5. 菜刀、冰蝎、蚁剑、哥斯拉的流量特征

    干货|菜刀.冰蝎.蚁剑.哥斯拉的流量特征 文章目录 干货|菜刀.冰蝎.蚁剑.哥斯拉的流量特征 菜刀流量特征 蚁剑(PHP用base64加密): 冰蝎(AES对称加密): 哥斯拉(base64加密): ...

  6. flowcontainer: 基于python3的pcap网络流量特征信息提取库

    库介绍 flowcontainer是由信息工程研究所智能信息对抗组开源的基于python3的网络流量基本信息提取库,以方便完成网络流量的分析任务.给定pcap文件,该库会提取pcap所有的流的相关信息 ...

  7. 菜刀,蚁剑,冰蝎,哥斯拉的流量特征

    蚁剑: ini_set ini_set_time ini_set_limit @ini_set("display_errors","0") 部分代码明文传输,较 ...

  8. 思科的joy提取加密流量特征教程以及基本使用

    文章目录 开源数据集 Joy介绍 功能 linux 编译 教程 关键概念 提取数据 开源数据集 stratosphereips Pcap files unb.ca PCAP files vpn and ...

  9. 基于Python3+Scapy的数据包流量特征批量分析工具

    基于Python3+Scapy的网络数据包批量分析工具 项目源码 适用范围以及使用说明 背景 环境准备及运行说明 常见协议分析识别 TCP协议识别 UDP协议识别 输出TXT文档信息 SSL NAME ...

最新文章

  1. 四位先行进位电路逻辑表达式_计算机硬件基础:二进制半加器、全加器与加法电路...
  2. Linux第五次作业
  3. java---switch
  4. 关键字提取_Excel根据2个关键字,批量提取字符
  5. jzoj100047-基因变异【位运算,bfs】
  6. asteirsk 开发指南
  7. Collections.sort()和Arrays.sort()排序算法选择
  8. java 抽象接口_JAVA中的“抽象接口”
  9. Hibernate上路_18-Hibernate查询方式
  10. 数据库系统——数据模型基本概念详解
  11. 【毕设记录日记】深度学习|铝型材表面缺陷视觉检测算法:YOLOv5环境搭建、基础知识、问题解决、优化方法
  12. 线性代数(1)—— 行列式
  13. 智能养殖管理系统科学调控蛋鸡养殖环境
  14. 交大昂立华为鸿蒙,20210517湖南人涨停复盘
  15. 阮一峰RESTful API规范
  16. 矩阵论 - 9 - 线性无关、基、维数
  17. LXD使用踩过的坑1——网络配置(后续遇到坑再更新......)
  18. 安全工程师转正面试题
  19. Caffe 激励层(Activation)分析
  20. 读懂8K慢直播对于文旅产业振兴的意义

热门文章

  1. UI设计中如何做出美观实用的UI界面?
  2. 如何用计算机计算分数乘法,50道分数乘法计算题,小学五年级数学分数乘法计算题100道...
  3. python第三方库有哪些-Python常用第三方库大盘点
  4. 关于exists 的使用
  5. 四川工商学院计算机科学协会视频,四川省高校后勤协会会员代表大会暨2020年会在四川工商学院召开...
  6. 软件工程实践-软件评测
  7. 魔百和M301A-MQ代工-非高安-S905L3芯片-当贝桌面-免拆和拆机线刷固件包
  8. DotNetty 高性能NIO通讯模型 服务端和客户端案例版
  9. Minecraft钻石矿生成定位器③(版本:1.16和1.17的Java版本)
  10. android ble和ios ble 对比,低功耗蓝牙的坑对比,低功耗蓝牙的总结