2020WHUCTF的题,找了找个比赛平台上也没有附件,所以本篇就是整理了下网上WP的思路,算是补充了一下自己对于流量分析的认识。
    题目给的附件是个shellofAWD.pcapng,一看就是流量分析,根据题目的提示,这应该是让分析AWD中的一个包含shell的流量。
    这里看着网上师傅们整理的说是考察冰蝎的流量加密分析,加密流量分析也写过几篇,大致就是拖进Wireshark中流量协议不显示,然后找到密钥,在Wireshark中导入,然后再进行基本的流量分析。这里由于我对Web的方向较为薄弱,不太了解冰蝎一些东西,所以就以小白的角度整理了一下。
    Webshell的管理工具:
    1.冰蝎(Behinder)
    “冰蝎”是一个基于Java开发的动态二进制加密网站管理客户端(因为是基于Java所以可以多平台运行),因为第一代webshell的客户端管理工具”菜刀”的流量特征很是明显,容易被安全设备检测到,使用传统的WAF、IDS等设备难以检测。
    冰蝎是当下最流行的WebShell客户端,它可以在HTTP明文协议中建立了加密隧道,以躲避安全设备的检测。对于工作于七层的IDS,可以检测HTTP完整的双向内容,这样检测冰蝎并非难事。而对于传统的工作于四层的IDS,只能检测TCP层的单个“帧”,要想检测冰蝎,似乎难于登天。老牌 Webshell 管理神器——中国菜刀的攻击流量特征明显,容易被各类安全设备检测,实际场景中越来越少使用,加密 Webshell 正变得日趋流行。由于通信流量被加密,传统的 WAF、IDS 设备难以检测,给威胁狩猎带来较大挑战。冰蝎其最大特点就是对交互流量进行对称加密,且加密秘钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。冰蝎目前最新版本为v2.0.1,兼容性已经日益完善,包括虚拟终端、Socks代理、文件管理、反弹shell、数据库管理等强大的功能,方便部署使用。
    https://github.com/rebeyond/Behinder
    2.哥斯拉(Godzilla)
    哥斯拉是一款继冰蝎之后又一款于Java开发的加密通信流量的新型Webshell客户端,内置了3种有效载荷以及6种加密器,6种支持脚本后缀,20个内置插件。
    https://github.com/BeichenDream/Godzilla
    冰蝎分析:
    冰蝎的通信过程可以分为两个阶段:

    1. 第一阶段-密钥协商
      攻击者通过 GET 或者 POST 方法,形如 http://127.0.0.1/shell.aspx?pass=645 的请求服务器密钥;
      服务器使用随机数 MD5 的高16位作为密钥,存储到会话的 $_SESSION 变量中,并返回密钥给攻击者。
    2. 第二阶段-加密传输
      客户端把待执行命令作为输入,利用 AES 算法或 XOR 运算进行加密,并发送至服务端;
      服务端接受密文后进行 AES 或 XOR 运算解密,执行相应的命令;
      执行结果通过AES加密后返回给攻击者。

    打开流量包进行http流量的过滤发现了可疑的流量(带有pass=xxx,这个是冰蝎流量的一个特征),这里放张截图:
    image.png
    追踪TCP流:
    image.png
    这里可以发现两个长度为16位的数据,因为冰蝎流量是基于AES算法加密的。