首页
社区
课程
招聘
[原创]突破《网络可疑心跳发现未知木马》理论继续隐藏
发表于: 2011-9-21 09:46 13063

[原创]突破《网络可疑心跳发现未知木马》理论继续隐藏

2011-9-21 09:46
13063

前言:
我在曾经发表过一片《网络可疑心跳发现未知木马》的文章,文章发表之后很多人在问我这个东西的详细算法问题,其实,这个算法我也只有一个模糊的模型,毕竟上线方式改变的木马太多了,最后有朋友说,你发表之后我们的GH0ST,灰鸽子变种怎么活?为了小黑更快乐,于是我删了。。
一,变种网络心跳突破常规心跳包
二,模拟http,突破IDS协议分析
三,图片读取ip,突破动态域名上线
四,查看DNS活动,突破域名次数统计
五,一个IOCP模型的模型大家看看有没有什么不稳定的
六,总结
一,变种网络心跳突破常规心跳包
    什么时常规网络心跳包呢?这里我就不抓图了。大家可以再网络上自己下一个木马用然后用那个什么抓包工具看看木马在正常工作的时候,是不是每隔几分或者几秒有一个固定字节通讯包?,我把这个包称为木马心跳包,很多IDS设备可以通过这个包的特征抓到这样的木马的再网络上存活的证据,但有一点只通过这个包证明内网是否被种马有很大的误报率。这就是我为什么提出《网络可疑心跳发现未知木马》这个理论,话说多了,我们还是看看如何突破那个《网络可疑心跳发现未知木马》这个理论吧。
      int  类型 大小为32位
    (8位单片机int 类型为16位,PC机为32位,我还停留在32上,现在是不是64位呢?知道的    请告诉我一下)
     首先我们对这32位数据大小进行功能的划分,例如:
     1000—2000之间的数据是上线标志
     3000---4000之间的数据时心跳标志
     呵呵,,你现在应该快理解我的企图了吧,没有错!就是这样!
     下面我给出实现随机心跳包代码
// 实现随机心跳包.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "windows.h"
int GetCountInt(int i)
{

    int ce;
    SYSTEMTIME gtm;
looop:
    GetSystemTime(&gtm);
    srand((unsigned int)gtm.wMilliseconds);  //初始话随机种子
    ce=(int)(rand() % 10000);//得到9999以内的整数
    switch (i)
    {

    case 1:
        if ((1000<ce)&&(ce<2000))
            return ce;
            goto looop;           //单片机写多了,习惯性goto....
            break;
    case 2:
        if ((2000<ce)&&(ce<3000))
            return ce;
        goto looop;        
        break;
    case 3:
        if ((3000<ce)&&(ce<4000))
            return ce;
        goto looop;            
        break;
    default:
        return false;
        break;
    }

}
int _tmain(int argc, _TCHAR* argv[])
{
    int c;
    c=GetCountInt(1);
    printf("%d\r\n",c);
    c=GetCountInt(2);
    printf("%d\r\n",c);
    c=GetCountInt(3);
    printf("%d\r\n",c);
    c=GetCountInt(4);
    printf("%d\r\n",c);
    return 0;
}
以上是我写的随机包测试代码,这代码可以实现我们所说的指定范围之内的int大小来实现指令信息的传递工作,但这并不能说明这已经完成了我们随机心跳所有工作(待续)


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 6
支持
分享
最新回复 (14)
雪    币: 255
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
为什么会出现招聘职位?不解
2011-9-21 09:52
0
雪    币: 251
活跃值: (77)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
先把位置占据好,等待LZ更新
2011-9-21 10:01
0
雪    币: 255
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我打包了。。
上传的附件:
2011-9-21 10:05
0
雪    币: 14887
活跃值: (158)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呵呵,我有你那一篇文章,。
分析木马没想到分析的这么详细。。我分析过的马儿竟然没整到它的上线方式是什么。拜膜一下。。。。
2011-9-21 10:09
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fbm
6
顶一下楼主,好帖!当初做得时候没想到
2011-9-21 10:13
0
雪    币: 279
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看过不少马的代码了,所谓心跳包只是检测控制端是否存活的一种方式,一般都是判断如果已经连接上,就不会在有心跳。还有的木马会先检测客户机能否上网,比如访问一个普通域名,然后再进行第一次连接。
客户端心跳过程大概如下

1,判断是否已连接
2,没有则尝试建立连接
3,如果能连接则发送数据包(可以是垃圾,也可以是正常的),不能连接则随机时间等待下次心跳
4,控制端接收数据,如果能识别的肯定就是控制指令,不能识别的一律返回一个数据包(模拟比如网页404错误)
5,客户端接收数据并识别,能识别则连接建立成功,等待控制端发送指令;不能识别就断开连接,随机时间等待下次心跳

整个心跳的过程可以做到完全没特征,心跳时间可以随机几秒,几分钟或者几小时;心跳发送的检测数据包,可以完全模拟一次Http访问,也可以随机发送写垃圾数据,控制端只要发现接受的请求或者数据包无法识别,则返回一些特殊指令让客户端识别。

木马也就是一个普通的网络程序,通讯大概模式完全可以做到和其他正常网络程序一样,比如,分布式ERP,内部聊天工具。
所以个人认为可疑心跳检测有很大局限性,还不如分析通讯数据包的特征,当然最好的还是行为判断。

以上纯属技术交流,对楼主理论并无恶意。
2011-9-21 11:46
0
雪    币: 255
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是哇。。。。谢谢补充
2011-9-21 11:49
0
雪    币: 14
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
求  网络可疑心跳发现未知木马  这篇文章~
2011-9-21 23:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
顶楼主  好帖子  学习了
2011-9-22 00:39
0
雪    币: 255
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
三,图片读取ip,突破动态域名上线
       花生壳域名我想大家都听说过,也有人用过,木马通常用花生壳域名上线,也有用类似f99K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6u0r3K9i4m8Q4x3X3g2d9b7g2u0Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0N6Q4b7e0N6Q4z5p5c8Q4c8e0N6Q4b7U0q4Q4b7V1u0Q4c8e0g2Q4z5f1g2Q4z5p5u0Q4c8e0c8Q4b7U0S2Q4z5p5q4Q4c8e0N6Q4b7V1q4Q4b7V1k6Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0c8Q4b7V1c8Q4z5o6k6Q4c8e0k6Q4z5e0S2Q4b7f1k6Q4c8e0S2Q4z5p5u0Q4b7e0g2Q4c8e0W2Q4z5o6m8Q4z5f1q4Q4c8e0S2Q4b7V1k6Q4z5o6N6Q4c8e0k6Q4z5p5q4Q4z5e0y4Q4c8e0g2Q4z5p5y4Q4z5o6g2Q4c8e0g2Q4z5o6S2Q4z5o6k6Q4c8e0k6Q4z5f1g2Q4z5e0m8Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0S2Q4b7f1k6Q4z5f1c8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0k6Q4z5o6S2Q4z5e0q4Q4c8e0c8Q4b7V1u0Q4b7f1y4Q4c8e0c8Q4b7V1y4Q4z5f1q4Q4c8e0g2Q4z5p5k6Q4z5e0q4Q4c8e0N6Q4z5p5g2Q4b7U0m8Q4c8e0c8Q4b7V1u0Q4z5p5g2Q4c8e0N6Q4b7V1c8Q4z5e0q4Q4c8e0N6Q4b7f1u0Q4z5e0W2Q4c8e0c8Q4b7U0S2Q4z5p5q4s2c8g2c8Q4c8e0N6Q4z5f1q4Q4z5o6c8v1f1p5N6Q4c8f1k6Q4b7V1y4Q4z5p5y4d9b7g2u0Q4c8e0k6Q4z5e0k6Q4z5o6N6Q4c8e0c8Q4b7V1u0Q4b7U0k6Q4c8e0g2Q4b7e0c8Q4b7U0c8Q4c8e0g2Q4b7U0W2Q4b7U0k6Q4c8e0c8Q4b7U0S2Q4z5p5c8Q4c8e0k6Q4z5e0S2Q4b7f1k6Q4c8e0N6Q4z5f1y4Q4z5f1k6Q4c8e0k6Q4b7f1c8Q4b7e0y4Q4c8e0N6Q4z5f1q4Q4z5o6c8v1f1p5N6Q4c8e0g2Q4z5e0u0Q4z5p5y4d9b7g2u0Q4c8e0k6Q4z5e0k6Q4z5o6N6Q4c8e0c8Q4b7V1u0Q4b7U0k6Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0W2Q4z5o6u0Q4b7e0y4Q4c8e0c8Q4b7U0W2Q4z5o6S2Q4c8e0W2Q4z5o6m8Q4z5f1q4Q4c8e0S2Q4b7V1k6Q4z5o6N6u0c8q4y4Q4c8e0g2Q4z5p5c8Q4z5p5k6Q4c8e0S2Q4b7f1g2Q4b7f1g2Q4c8e0g2Q4z5o6S2Q4z5o6k6Q4c8e0k6Q4z5f1g2Q4z5e0m8Q4c8e0S2Q4b7V1k6Q4z5e0S2Q4c8e0g2Q4z5p5g2Q4z5f1k6Q4c8e0c8Q4b7U0W2Q4z5p5u0Q4c8e0g2Q4z5e0m8Q4z5p5g2Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0k6Q4z5o6S2Q4z5e0q4Q4c8e0c8Q4b7V1u0Q4b7f1y4Q4c8e0g2Q4b7U0m8Q4b7U0q4Q4c8e0g2Q4z5p5k6Q4b7f1k6Q4c8e0c8Q4b7V1u0Q4b7e0g2Q4c8e0g2Q4z5p5k6Q4z5e0q4Q4c8e0N6Q4z5p5g2Q4b7U0m8Q4c8e0g2Q4b7V1y4Q4z5o6u0Q4c8e0g2Q4b7U0S2Q4b7U0S2Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0N6Q4b7V1c8Q4z5e0q4Q4c8e0N6Q4b7V1u0Q4z5f1y4Q4c8e0k6Q4b7U0g2Q4z5o6q4Q4c8e0W2Q4z5o6N6Q4z5p5k6Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0S2Q4z5o6m8Q4z5p5y4Q4c8e0k6Q4b7f1c8Q4b7e0c8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0k6Q4z5o6S2Q4z5e0q4Q4c8e0c8Q4b7V1u0Q4b7f1y4Q4c8e0g2Q4b7U0m8Q4b7U0q4Q4c8e0g2Q4z5p5k6Q4b7f1k6Q4c8e0c8Q4b7V1u0Q4b7e0g2Q4c8e0N6Q4b7e0q4Q4b7f1g2Q4c8e0g2Q4b7f1g2Q4z5f1q4Q4c8e0N6Q4b7V1c8Q4z5e0q4Q4c8e0N6Q4b7V1u0Q4z5f1y4Q4c8e0c8Q4b7U0S2Q4b7f1c8Q4c8e0g2Q4b7V1y4Q4z5o6u0Q4c8e0g2Q4b7U0S2Q4b7U0S2Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0W2Q4z5o6m8Q4z5f1q4Q4c8e0S2Q4b7f1g2Q4b7f1k6Q4c8f1k6Q4b7V1y4Q4z5p5y4e0e0#2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4W2)9^5z5q4)9&6x3g2!0q4y4q4!0n7b7W2!0m8b7#2!0q4z5g2)9&6b7#2)9^5x3q4!0q4z5q4!0m8y4W2)9^5x3g2!0q4y4#2!0m8b7g2)9^5x3g2!0q4y4#2!0m8x3q4!0n7y4q4!0q4y4g2!0n7z5g2!0n7y4W2!0q4y4q4!0n7z5q4)9&6y4q4!0q4y4#2!0n7b7W2!0m8y4#2!0q4y4#2!0n7b7W2!0m8c8q4!0q4z5g2)9&6b7g2)9&6x3q4!0q4z5q4)9&6y4#2)9^5c8W2!0q4y4W2)9&6b7#2!0m8z5q4!0q4z5g2!0m8z5g2!0m8b7#2!0q4y4#2)9&6b7g2)9^5y4q4!0q4z5q4!0n7b7g2!0m8b7W2!0q4y4g2!0n7c8q4!0n7x3g2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4W2)9^5z5q4)9&6x3g2!0q4z5q4!0m8c8g2!0n7x3q4!0q4y4g2!0n7c8g2)9&6y4#2!0q4y4q4!0n7b7W2)9^5c8g2!0q4x3#2)9^5x3q4)9^5b7g2!0q4z5g2!0n7b7W2)9&6x3g2!0q4z5g2)9&6z5q4!0n7x3W2!0q4x3#2)9^5x3q4)9^5b7W2!0q4z5q4!0n7c8W2)9&6z5q4!0q4y4W2)9&6b7#2)9^5z5g2!0q4y4q4!0n7z5q4)9^5x3q4!0q4y4q4!0n7b7g2)9&6b7W2!0q4y4#2!0n7c8q4)9&6x3g2!0q4y4#2!0n7b7W2)9&6b7#2!0q4z5q4!0m8c8g2!0n7b7g2!0q4y4g2)9&6c8q4)9&6b7W2!0q4y4q4!0n7z5q4)9^5b7g2!0q4y4#2)9&6b7#2)9^5b7W2!0q4z5q4!0m8y4#2)9^5x3g2!0q4y4g2)9&6b7#2!0m8z5q4!0q4y4g2)9&6b7W2!0n7c8g2!0q4y4#2)9^5z5g2)9^5y4#2!0q4y4q4!0n7z5q4!0m8c8q4!0q4z5g2)9&6b7g2)9&6x3q4!0q4z5q4)9&6y4#2)9^5c8W2!0q4y4q4!0n7c8W2!0m8x3g2!0q4y4W2)9^5x3g2!0m8c8W2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4W2)9&6y4W2)9^5y4#2!0q4y4#2!0m8b7W2!0m8x3q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4z5g2)9^5x3W2!0m8x3#2!0q4y4q4!0n7z5g2)9^5z5q4!0q4y4W2)9^5z5q4)9&6x3g2!0q4y4q4!0n7b7W2!0m8b7#2!0q4y4g2!0n7x3q4!0n7x3g2!0q4y4#2)9&6y4q4!0m8z5q4!0q4z5g2)9&6b7g2)9&6x3q4!0q4z5q4)9&6y4#2)9^5c8W2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4q4!0n7c8W2!0m8x3g2!0q4y4W2)9^5x3g2!0m8c8W2!0q4y4W2)9&6c8q4!0m8y4g2!0q4y4q4!0n7z5q4)9^5b7g2!0q4y4#2!0n7b7g2!0n7c8W2!0q4y4g2)9&6x3q4!0m8y4#2!0q4x3#2)9^5x3q4)9^5x3R3`.`.
给出代码(好久之前的半成品),选择一个BMP图片,写入IP之后,上传到一个论坛的头像,此头像就是反弹上线地址了。。。

写到这里我突然想起了我的爷爷,爷爷是一位疯狂的赌徒曾经把房子和衣服都输了,当爷爷健在的时候,他曾给我讲过一些赌场上常用的抽老千的手段,什么摸鼻子,动嘴角,既然做什么都可以传递信息,
那我们来一首诗照样也可以弄成一个上线地址,

密钥对应如下
锄禾日当午,汗滴禾下土,谁 知 盘 中 餐,粒粒皆辛苦
1 2 3 4 5,6 7 8 9 0,A B C  D E   F G H I  J
嘿。。。当然您也可以来一首《铁窗泪》
“菜里没有一滴油” 对应 数字 “1”,以此类推。。
给出一个密码生成器。
上传的附件:
2011-10-10 14:36
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
好精辟的帖子。

必是对木马等技术分析得很透,继续等待。。。。
2011-10-10 15:56
0
雪    币: 826
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
很想看之前的那个,可惜被删了,东西还能发个学习学习吗?
2011-10-10 16:24
0
雪    币: 7647
活跃值: (3440)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
前排占座,坐等更新。收藏了。
2011-10-10 16:38
0
雪    币: 304
活跃值: (507)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
是哦,心跳可以是垃圾数据
2011-10-11 11:58
0
游客
登录 | 注册 方可回帖
返回