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


    前言

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

    环境搭建

    ubuntu 公网vps

    win10内网主机

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

    在这里插入图片描述

    服务端配置

    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服务端口
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    启动

    ./frps -c frps.ini

    如果后台运行

    nohup ./frps -c frps.ini &

    在这里插入图片描述

    访问面板

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

    输入账号密码登录

    在这里插入图片描述

    在这里插入图片描述

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

    [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  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

    在这里插入图片描述

    mstsc连接到主机

    在这里插入图片描述

    抓取数据包

    host xx.xx.xx.xx

    在这里插入图片描述

    主机ip192.168.43.246

    在这里插入图片描述

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

    在这里插入图片描述

    详情内容就是

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

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

    在这里插入图片描述

    在这里插入图片描述

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

    在这里插入图片描述

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

    【----帮助网安学习,以下所有学习资料免费领!加weix:yj009991,备注“ csdn ”获取!】

    ① 网安学习成长路径思维导图

    ② 60+网安经典常用工具包

    ③ 100+SRC漏洞分析报告

    ④ 150+网安攻防实战技术电子书

    ⑤ 最权威CISSP 认证考试指南+题库

    ⑥ 超1800页CTF实战技巧手册

    ⑦ 最新网安大厂面试题合集(含答案)

    ⑧ APP客户端安全检测指南(安卓+IOS)

    魔改

    从几个方面规避流量监测

    1.交互量加密

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

    tlsonly = true

    客户端配置frpc.ini

    tlsenable = true

    2.重写服务端

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

    在这里插入图片描述

    服务端会请求客户端配置文件内容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:     "",
    			})
    		}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

    总结

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

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

  • 相关阅读:
    【前端面试题】01—42道常见的HTML5面试题
    【数据结构与算法】链表的分割
    reactor的原理与实现
    冰蝎Behinder无法打开,冰蝎Behinder双击无法打开
    SSL证书对于SEO优化的重要性
    GNU make笔记
    工业I/O模块的功能和应用介绍
    RFLA: Gaussian Receptive Field based Label Assignment for Tiny Object Detection
    淘宝/天猫API:upload_img-上传图片到淘宝
    C++---map和set的使用
  • 原文地址:https://blog.csdn.net/qq_38154820/article/details/126366344