首页 > 其他分享 >某安全设备frp流量告警分析

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

时间:2023-06-04 11:31:36浏览次数:38  
标签:端口 流量 xx frp 安全设备 告警 port 服务端


前言

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

环境搭建

ubuntu 公网vps

win10内网主机

wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz

某安全设备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流量告警分析_服务端_02

启动

./frps -c frps.ini

如果后台运行

nohup ./frps -c frps.ini &

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

访问面板

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

输入账号密码登录

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

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

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

[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流量告警分析_服务端_06

mstsc连接到主机

某安全设备frp流量告警分析_服务端_07

抓取数据包

host xx.xx.xx.xx

某安全设备frp流量告警分析_服务端_08

主机ip192.168.43.246

某安全设备frp流量告警分析_客户端_09

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

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

详情内容就是

某安全设备frp流量告警分析_内网穿透_11

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

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

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

某安全设备frp流量告警分析_内网穿透_13

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

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

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

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

某安全设备frp流量告警分析_内网穿透_15

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

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

某安全设备frp流量告警分析_客户端_17

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


魔改

从几个方面规避流量监测

1.交互量加密

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

tlsonly = true

客户端配置frpc.ini

tlsenable = true

2.重写服务端

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

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

服务端会请求客户端配置文件内容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设备也是可以实现的。

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


标签:端口,流量,xx,frp,安全设备,告警,port,服务端
From: https://blog.51cto.com/u_14601424/6410256

相关文章

  • Alertmanager钉钉告警
    一.部署alertmanager1.1创建目录mkdir-p/deploy/app/alertmanager/configchmod-R777/deploy/app/alertmanager/config1.2部署alertmanager,也需要个配置文件,先部署临时容器,然后把配置文件复制下来dockerrun-d-p9093:9093--namealertmanagerprom/alertmanagerdo......
  • Skywalking+Elasticsearch安装及应用(邮箱告警)
    1、Skywalking概述Skywalking是一个可观测性分析平台和应用性能管理系统,它也是基于OpenTracing规范、开源的AMP系统。Skywalking提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。SkyWalking特点:1)多语言自动探针2)为多种......
  • 使用MASA Stack+.Net 从零开始搭建IoT平台 第四章 4.3 使用规则引擎实现告警通知
    目录前言方案实施流程安装Node-RED配置一个告警处理流程编写代码测试总结前言数据的挑战:物联网的发展带来了海量的数据。这些数据来源多样,格式不一,处理起来十分复杂。同时,物联网中的设备数量庞大,需要设备间进行高效的协同和管理,这也对数据处理提出了更高的要求。如何从这些复......
  • Zabbix集成钉钉告警
    需求:Zabbix告警通知发送到钉钉群组钉钉报警时基于zabbix,访问钉钉应用接口去推送的报警消息,所以我们需要一个在钉钉创建一个报警应用。版本:Zabbix:6.0.15Python:2.7.5一、钉钉配置1、创建群组、添加告警机器人钉钉的聊天界面,点击发起群聊:钉钉要3个人才能建群,所以需要添加两......
  • 【云原生•监控】夜莺可观测性之告警系统设计 - 2​
    【云原生•监控】夜莺可观测性之告警系统设计-2前言「笔者已经在公有云上搭建了一套临时环境,可以先登录体验下:」http://124.222.45.207:17000/login账号:root/root.2020告警功能内置规则【内置规则】菜单主要提供系统中内置的一些告警规则,按照组件类型进行分类分组:内置规则仅仅只......
  • prometheus学习笔记-alertmanger告警配置
    以上是prometheus架构图,一个完整的监控流程是数据采集(exporter),采集到数据之后,做数据可视化(grafana),然后是监控告警部分。promethues的角色是数据的采集,存储,定制告警规则,数据的展示是grafna,告警则是借助alertmanger来实现。详细参考官方网站https://prometheus.io/docs/alertin......
  • 如何在EasyCVR视频融合平台通过接口获取告警的录像以及快照?
    EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。为了便于用户二次开发、集成与调用,我们也提供了丰富的API接......
  • promethues常见告警规则
    #vim/usr/local/prometheus/rules/node-exporter.yml#服务器资源告警策略groups:-name:服务器资源监控rules:-alert:内存使用率过高expr:(node_memory_Buffers_bytes+node_memory_Cached_bytes+node_memory_MemFree_bytes)/node_memory_MemTotal_bytes*100>95fo......
  • prometheus告警处理 altermanager
    prometheus告警处理altermanager一.告警简介1.工作流程prometheus收集监测的信息prometheus.yml文件中定义rules文件,rules里包含告警信息prometheus把告警信息push给altermanager,alertmanager里定义收件人和发件人altermanager发送文件到邮箱或微信2.告警生命......
  • 低版本Grafana使用原生webhook实现企业微信告警
    公司现有生产环境普遍使用的还是Grafana7版本,而Grafana9版本才支持企业微信告警。钉钉倒是支持,但是公司不用钉钉,不想就为了这个下一个软件。且Grafana的版本升级太激进,每个大版本之间的差异巨大,我也不想升级,于是另辟蹊径,整了个脚本接收Grafana的POST请求,把请求内容发送到我的企业......