冰蝎3.0简要分析

    冰蝎3.0 Beta 2今天发布,和v2.1相比,最重要的变化就是“去除动态密钥协商机制,采用预共享密钥,全程无明文交互,密钥格式为md5("admin")[0:16];”。php

    没有了秘钥交换过程,在冰蝎v2.1中的明显的流量特征“返回内容一定是16位的密钥”(返回包检测规则:^[a-fA-F0-9]{16}$)消失,给流量检测带来了更大的困难。web

    以php版本的shell为例,默认的秘钥为“e45e329feb5d925b”,经过md5("rebeyond")[0:16]获得,其中“rebeyond”是冰蝎3.0的默认密码。算法


    抓包分析冰蝎3.0流量,链接后门的第一个post包已是加密流量:
shell



    第一个包主要做用是进行秘钥key的验证,根据AES加密算法和预共享key,对抓到的加密请求进行解密安全

  

    再对AES解密后的base64编码内容进行解码,得到解密后的post数据:微信


    

    若是服务端返回$content变量"93b5ca86-1a0a-48a6-8929-00528b33cedf"通过加密后的值,则认为key验证经过,进行后续流程,以后的通讯全程加密。post


    因为key是攻击者预置,没法像2.0版本那样经过返回包获取,因此对加密流量没法解密,须要定位到冰蝎webshell后门才能得到。而冰蝎v3.0版本的webshell免杀也作了增强,webdir和d盾对冰蝎3.0自带的5个webshell后门的检出率都只有20%:
编码


    从流量侧进行检测的难度很大,网上有大佬仍是可以根据包的长度特征、content-type、ua等方式找出一些特征,但在真实的业务环境中的检测效果还有待检测。加密


    换个思路,流量层的检测能力也是有上限的,特别是对于加密的流量,单靠流量层的安全设备是不够的,按照纵深防护的理念,能够尝试从应用层、系统层的角度进行检测。以RASP应用层检测方案为例,目前OpenRASP技术仍然能够很好的检测到冰蝎3.0的攻击行为,防守方能够尝试。spa

    

    

    祝大伙好运。


本文分享自微信公众号 - 湛卢工做室(xuehao_studio)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索