欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

天眼实验室权威发布:XShell后门DNS Tunnel编码分析

来源:本站整理 作者:佚名 时间:2017-08-17 TAG: 我要投稿


XShellGhost通过DNS Tunnel把打点的数据传上去,分析了下编码算法,对数据进行了解密。
编码分析
DNS Tunnel的编码算法是先经过下图的算法1编码;如图:
 

待编码的数据单字节和一个每4次运算一次的DWORD常量的1,2,3,4字节进行单字节运算来编码,如下:
 

算法1编码后的数据如下:
 

然后把结果转换成可见的字符转换方法是通过每个字节的高位加‘j’低位加‘a’,把1个字节拆分成2个字节的可见字符,这样就浪费了一个字节:
 

解密算法是加密算法的逆运算,解密算法流程如下图:
 

解密的单条数据的HEX如下:
 

根据网上的一些公开的流量数据,
 

解密出的一些上传的数据:
 

解密代码如下:
int DecodeSecond(int a1, unsigned char* a2, int a3, int a4, unsigned char* szOut)
{
    char v4; // cl@1
    int v5; // esi@1
    unsigned char* v6; // edi@2
    byte v7[1024]= {0}; // eax@11
    char v8; // dl@11
    int v10; // [sp+4h] [bp-10h]@1
    int v11; // [sp+8h] [bp-Ch]@1
    int v12; // [sp+Ch] [bp-8h]@1
    int v13; // [sp+10h] [bp-4h]@1
    v4 = 0;
    v5 = 0;
    v10 = a1;
    v11 = a1;
    v12 = a1;
    v13 = a1;
    int i = 0;
    if ( a3 > 0 )
    {
        v6 = a2 - a4;
        do
        {
            if ( v5 & 3 )
            {
                switch ( v5 & 3 )
                {
                case 1:
                    v11 = 0xBFD7681A - 0x7DB1F70F * v11;
                    v4 = (*((byte *)&v11  + 2) ^ (*((byte *)&v11 + 1)
                        + (*((byte *)&v11) ^ v4)))
                        - *((byte *)&v11 + 3);
                    v8 = v4 ^ *(byte *)(v6 + v5++ + a4);
                    v7[i] = v8;
                    i++;
                    break;

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载