Frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
在内网渗透中,Frp可以帮助我们穿透多层内网【Tips:我最多代理过4层,需要更多层按照我的思路类推即可。】。代理方法已在纷传上传。
流量分析
run_id是客户端启动时生成的一串字符串
其他为客户端链接中的版本信息
在通信过程中可以明文直接看到源ip地址、代理的认证口令、访问的目标站点等信息。
在开启
use_encryption = true
参数之后,基础特征以及源ip地址没有被加密
目的地址和代理的口令被加密了
压缩前:
压缩后
tls_enable
在开启了tls加密之后 内容变成加密的了
tls_enable = true
建立链接的时候第一个字节为0x17
Golang包特征消除
众所周知,golang包中使用
go mod init qxx.com
会在所有结构存在qxx.com这个特征。我们将其修改为如下即可
流量特征消除
杀软在对于马和代理流量工具的查杀方式来说,主要对于流量监控比较严格。大多数环境下,我们修改客户端到服务端的通信数据包 banner,就会达到一定的免杀效果。但是这样做,肯定也只是暂时的。毕竟免杀是和杀软做动态对抗。都是在互相学习。但是道高一尺魔高一丈。
第二点需要说的是:免杀不一定要非常完美,在修改一定的前提下,只要免杀就可以了。等到被杀了再去修改即可。比如CobaltStrike,如果完美二开过的再次被杀软打上标签。那么意义就不是很大了。总而言之,一定要给自己留够后路。
第一处 修改基础通信包中的特征
代码位置:
/frp/msg/msg.go
随意乱改即可,这里我是使用了我自己开发的随机密码生成器。生成的字符。
第二处 修改IP之间的通信包参数
代码位置:
/frp/msg/msg.go
同上方法:随意乱改即可,这里我是使用了我自己开发的随机密码生成器。生成的字符。
第三处 修改Frp版本号
/frp/pkg/util/version/version.go
第四处 修改TLS加密首字节 防止Yara规则匹配
然后一般在借鉴网上免杀方法的时候发现都会开启tls加密
tls_enable = true
如果是这样的话,还需要开启之前修改tls首字节避免被识别
代码位置:
/frp/pkg/util/net/tls.go
第五处 修改读取文件特征
/frp/cmd/frpc/root.go
未修改前读取的文件默认为:frpc.ini
修改后默认读取文件为:config.log
添加配置文件自删除
默认为开启状态。这样配置的好处是如果被查杀使用白加黑方式能够直接进行使用
卡巴斯基
360
ESET
原文始发于微信公众号(TeamSecret安全团队):免杀系列 Frp免杀+二开思路
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论