某安全设备frp流量告警分析

字节拾贝
• 阅读 763

前言

也是第一次使用某商设备,不同厂商的规则库不一样,总的来说流量监控很大一部分是基于规则库来实现的,所以在进行内网穿透的时候就要考虑如何bypass设备告警。

环境搭建

ubuntu 公网vps

win10内网主机

wget https://github.com/fatedier/f...

某安全设备frp流量告警分析

服务端配置

bind_port = 9666    //frp服务端端口
token = 123         //客户端连接时的token认证
dashboard_port=9999 //面板服务端口
dashboard_user=Ggoodstudy   //用户名
dashboard_pwd=xxxx         //密码
enable_prometheus=true
log_file=/var/log/frps.log  //日志存放位置
log_level=info
log_max_days=3     
vhost_http_port=9998         //http服务端口

某安全设备frp流量告警分析

启动

./frps -c frps.ini

如果后台运行

nohup ./frps -c frps.ini &

某安全设备frp流量告警分析

访问面板

http://xx.xxx.xx.xx:9666

输入账号密码登录

某安全设备frp流量告警分析

某安全设备frp流量告警分析

此时服务端的配置已成功,客户端配置

[common]
server_addr = xx.xxx.x.x
server_port = 9666
token = 123
[rdp]
type = tcp
local_ip = 127.0.0.1           
local_port = 3389
remote_port = 7004  

这里设置代理本机的3389和8077端口

某安全设备frp流量告警分析

mstsc连接到主机

某安全设备frp流量告警分析

抓取数据包

host xx.xx.xx.xx

某安全设备frp流量告警分析

主机ip192.168.43.246

某安全设备frp流量告警分析

这里我们可以看到请求的流量包,在请求服务端的9666端口

某安全设备frp流量告警分析

详情内容就是

某安全设备frp流量告警分析

可以看到详细数据包中src_addr为受害主机出口地址,目的端口dst_portvps的穿透端口7004端口,目的ip为vps的私网地址

某安全设备frp流量告警分析

此时的连接状态显示的,同时,查看远程时的连接远程桌面时会产生这样流量特征run_id

某安全设备frp流量告警分析

另外有特别的发现,虚拟机winserver 2012 R2在运行客户端之后,vps在连接的过程中也能获取到宿主机的用户名

某安全设备frp流量告警分析

这是一个比较特别的点儿,剩余的流量就是vps和跳板机的流量交互,没有很明显的特征。

回头看某商设备对于frp内网穿透的告警

某安全设备frp流量告警分析

某安全设备frp流量告警分析

我们可以对比之前的流量包,缺少的字段且仅有udp端口

某安全设备frp流量告警分析

这里可能某商的规则id是基于udp_port或者说是version字段而产生的告警行为。

【----帮助网安学习,以下所有学习资料加vx:yj009991,备注“思否”获取!】
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)

魔改

从几个方面规避流量监测

1.交互量加密

对frp的认证使用tls加密,修改服务端frps.ini

tlsonly = true

客户端配置frpc.ini

tlsenable = true

2.重写服务端

在上面的流量包中可以看到,在进行交互的时候

某安全设备frp流量告警分析

服务端会请求客户端配置文件内容proxy_name,那么在定义变量的服务端,可以重写方法

case *msg.NewVisitorConn:
        if err = svr.RegisterVisitorConn(conn, m); err != nil {
            xl.Warn("register visitor conn error: %v", err)
            msg.WriteMsg(conn, &msg.NewVisitorConnResp{
                ProxyName: m.ProxyName,
                Error:     util.GenerateResponseErrorString("register visitor conn error", err, svr.cfg.DetailedErrorsToClient),
            })
            conn.Close()
        } else {
            msg.WriteMsg(conn, &msg.NewVisitorConnResp{
                ProxyName: m.ProxyName,
                Error:     "",
            })
        }

在客户端和服务器连接的时候流量特征变成自定义变量即可。

总结

frp的特征比较明显,所以就单纯魔改frp的话除了流量上做加密外,简单的修改特征bypass设备也是可以实现的。

本文仅限于技术讨论与分享,严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负,与本人无关。

更多网安技能的在线实操练习,请点击这里>>
更多网安工具及学习资料,扫码免费领:
某安全设备frp流量告警分析

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Wesley13 Wesley13
4年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
4年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
4年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Stella981 Stella981
4年前
Bypass ngx_lua_waf SQL注入防御(多姿势)
0x00前言ngx\_lua\_waf是一款基于ngx\_lua的web应用防火墙,使用简单,高性能、轻量级。默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则:select.(from|limit)(?:(union(.?)select))(?:from\Winformation_schema\W)这边
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这