“神起”僵尸网络的诱捕与反击(上)

2017-07-12 +13 417964人围观 ,发现 48 个不明物体 WEB安全

20175月中旬,蜜罐系统监测到了一起攻击事件,引起了我们的注意,小伙伴们迅速跟进分析,并通过技术手段拿下黑客控制端服务器,发现黑客使用了一款名为神起ddos集群的软件,控制了3000+的僵尸网络肉鸡,经分析发现该僵尸网络主要利用路由器、摄像头等设备,且规模数量在持续增加。

下面来看看我们是如何一步步发现并溯源该僵尸网络的。

1    蜜罐告警

首先,2017516 1547分收到蜜罐一条告警信息,发现有黑客入侵了我们部署的蜜罐系统,日志如下:  

蜜罐日志

图 1.1 蜜罐日志 

通过日志可以看到,黑客入侵后执行的动作很简单,从远程服务器下载远控木马后执行。通过分析,发现该服务器是用HFS服务搭建,有三个样本,其中,样本666是针对 ARM架构设备的,下载量是 3000+;样本s360 s361 是针对x86架构的ELFlinux 系统)文件,下载量各在 200+

HFS服务器

图 1.2 HFS服务器

2    反制

通过技术手段反渗透到黑客HFS服务器(具体细节不做透露,你懂的),获取了进一步的信息,以下截图为黑客服务器桌面,发现黑客使用的是腾讯微云主机,该主机不仅是下载服务器而且是远程控制主机。

黑客服务器桌面

2.1 黑客服务器桌面

3    黑客行剖析

拿下黑客服务器后,服务器上的一些文件引起了我们的注意,一起来看看这个专业的小黑客是如何一步一步控制属于自己的僵尸网络的。

3.1 信息收集

IP段收集

3.1.1 IP段收集

从服务器上的文件来看,小黑客还是做了很多准备工作的,包括整理各种活跃ip端,比如开放3306 1433端口的活跃ip

活跃IP段

3.1.2 活跃IP 

黑客不仅仅收集了上述IP数据,在珍藏IP 这个文件夹里面发现了更多(包含国内各个省份的IP 段): 

省份IP段

3.1.3 省份IP  

IP信息收集比较广泛,不仅有国内各个省份包括IDC机房的IP 段,还有国外多个国家、地区的 IP段:

国外服务器IP段

3.1.4 国外服务器IP

国外IP段

3.1.5 国外IP

3.2 密码字典

有了上面的IP信息收集后,黑客还需要一个强大的字典来完成后面的攻击行为,在服务器上找到了这些密码字典:

密码字典

3.2.1 密码字典 

发现这些字典还是很具有针对性的,有通用字典,有专门针对数据库、操作系统的字典,还有专门针对国外服务器的字典:

字典示例

3.2.2 字典示例

3.3 攻击工具

工欲善其事必先利其器,有了前面两步的信息之后,就需要有一个高效的自动化攻击工具去完成爆破和植马,该黑客使用了下面这款工具:

SSH爆破工具

3.3.1 SSH爆破工具

下图是爆破成功后执行的命令,可以看到跟我们蜜罐捕获到的日志是一致的:

执行命令

3.3.2  执行命令

看到这里,你可能会想,这只是一个简单的SSH爆破,真的能有什么效果吗?看一看黑客正在执行的扫描任务便知道了:

实时日志

3.3.3 实时日志

通过实时的日志可以看到,黑客对某一个网段(10000左右数量的主机)进行爆破,目前扫描进度为51.98% ,入侵成功的数量有 64个,之前也看到了黑客整理的活跃IP 段,如果他的时间足够多,入侵成功的主机数量可想而知,接下来的发现也进一步验证了这一结论。

4    “神起僵尸网

在服务器上发现了僵尸网络的控制端软件神起ddos 集群 ,截图如下:

神起ddos集群

4.1 神起ddos集群

软件最上方的区域展示僵尸网络被控端操作系统信息,包括IP地址、操作系统类型、CPU 信息、内存信息、网速等;左下角是设置发起 DDoS攻击的目标信息,包括IP 地址、端口、线程数、攻击包大小、是否伪造源 IP、采用哪种攻击模式等;右下角是该僵尸网络支持的攻击模式配置,包括 SYN_Flood UDP_FloodTCP_Flood UDP 碎片、CC攻击、蜗牛(慢速攻击)等。

经过一个多月的跟踪,发现该僵尸网络的规模增长迅速,由最初的400+被控主机增长到 3000+,下面我们将对该僵尸网络进行进一步的分析。

4.1  “神起”僵尸网络规模

对获取的僵尸网络ip进行统计,发现受控端ip 主要分布在欧洲、

受控IP 全球分布

4.1.1 受控IP 全球分布

同时对分布在国内的僵尸网络ip进行统计,发现受控主机主要分布在北京、广东、浙江、上海

受控 IP国内分布

4.1.2 受控 IP国内分布

4.2 “神起”集群逆向分析

接下来对神起 ddos集群 软件进行分析,从逆向工程的角度分析被控端木马的行为以及被控端木马是如何与主控端进行通信的。

4.2.1  分析

被控端木马的执行流程如下图所示:

木马执行流程

4.2 木马执行流程

接下来将对每一个步骤进行分析。

4.2.1.1 添加自启动项

autoreboot函数中,执行如下命令:

添加自启动项

4.2.1 添加自启动项

其中dir是僵尸程序所在的文件夹路径,程序首先将 rc.local中包含exit Linux2.9reboot和空行都删除掉,然后加入 /dir/Linux2.9 reboot /dir/Linux2.9 rebootstart ,以图下次启动该程序依然能运行起来。

4.2.1.2 生成子

生成子进程,然后主进程退出,可以有点反调试作用。

4.2.1.3  创建线

启动后门线程

4.2.2 启动后门线程

线程SendInfo :向后门183.*.*.199和主控端发送感染主机信息。

线程backdoorA :与183.*.*.199建立连接,并接收其控制指令。

线程backdoorM :尝试和一个域名建立连接,该域名加密处理过,但是在调试过程中程序并没有成功解析出这个加密后的域名。SendInfo 是专门用来发送心跳包的线程,避免和主控端断开连接。

4.2.1.4 初始化 ip

后门线程和发送信息的线程生成后,程序会初始化一个 ip池,随机生成配对的 ipport 信息,保存到相应的数组里面。当主控端要求进行伪造源ip 进行攻击的时候,伪造的ip port ip_pool 中提取。

https://mmbiz.qlogo.cn/mmbiz_png/ffq88LJJ8oMUmLYWRrGUTNic46AfVKcEUVRdtEvOJ6cXGwRrT6Mv1SibLyyOIpicUn7KYMlwSQZpXFrV0P7BZSynw/0?wx_fmt=png

4.2.3 初始化IP

4.2.1.5  向主控端

准备工作做完后,程序进入死循环,尝试和主控端建立连接。 _ConnectServer函数负责连接主控端并接收指令。

_ConnectServer 调用ServerConnectCli 函数与主控端建立连接

连接主控端

4.2.4 连接主控端

主控端 IP 和 port

4.2.5 主控端 IP  port

由上图可以看到,生成僵尸程序时候配置的 ip port 都写在程序的固定地址上。

4.2.1.6  发送感染主机的信

僵尸程序在和主控端建立连接后,会将感染主机的信息发送给主控端。

发送感染主机信息

4.2.6 发送感染主机信息

程序会获取机器的 cpu 、系统版本、内存、网速等信息,然后发送给主控端。然后进入循环,等待主控端的数据到达。

4.2.1.7  等待主控端指令

僵尸程序在发送感染主机信息后,会调用 select 等待主控端的指令。当 MainSocket 有数据可读,也就是主控端发送指令过来了,跳出循环,开始处理数据。

等待主控端下发指令

4.2.7 等待主控端下发指令

4.2.1.8  接收指令并

主控端 送的数据最开始的四个字 表示本次数据要 行的 作。

如果接收到的数据最开始的四个字节等于 5 ,那么表示主控端要僵尸程序执行命令。最后会直接调用 system 函数执行命令。

执行命令

4.2.8 执行命令

4.2.1.9  接收 DDoS 的指令

如果接收到的数据最开始的四个字节等于 6 ,那么表示主控端要僵尸程序开始 DDoS 攻击。

接收 DDoS 攻击指令

4.2.9 接收 DDoS 攻击指令

DDoS 攻击的配置数据是经过 AES 加密处理过的,可以看到, key_0 变量就是密钥

密钥

4.2.10 密钥

再看密文 ( 后文有密文图片 ) ,有很多地方的数据都是一样的,这样基本就确定了加密算法是 AES ECB 模式,因为 ECB 模式下每个块的加密密钥都是一样的,只有这样密文很多数据是相同的。

解密出数据后,将数据传给 DelwithDDoS 函数处理, 4.2.2 小节会分析。

4.2.1.10   停止 DDoS

如果接收到的数据最开始的四个字节等于 7 ,那么表示主控端要僵尸程序停止当前 DDoS 攻击线程。 pid 是个全局变量,当生成攻击线程的时候,会将线程的 id 记录到 pid 里面,等到要暂停攻击时候,只需要 kill 掉相应的 pid 就可以了。

停止 DDoS 攻击

4.2.11 停止 DDoS 攻击

4.2.2  协议分

主控端对感染主机下达 DDoS 攻击指令后,僵尸程序对接收到的数据解密处理,然后 DealwithDDos 函数来解析解密后的数据。

4.2.2.1   解密前后流量

解密前的指令数据

4.2.12 解密前的指令数据

解密后的指令数据

4.2.13 解密后的指令数据

4.2.2.2  解密

解密

4.2.14 解密

提供 key ,生成 AES 对象,然后用 AES 成员函数 InvCiper 对密文进行解密,将解密后的明文传递给 DealwithDDos 函数来解析。

4.2.2.3 DealwithDDoS 解析流程

通过分析 DealwithDDoS 函数,来确定数据包中有效字段的作用。

4.2.2.3.1   方式和攻击线程数量

攻击方式和攻击线程数量

4.2.15 攻击方式和攻击线程数量

偏移 0×184 处是攻击方式,表示本次攻击要发送什么样的数据包,根据这个值在随后的 switch 分支中调用不同的函数。

偏移 0×188 处是攻击线程数量,表示本次攻击需要启动多少个线程来同时攻击目标。

4.2.2.3.2   击时间

攻击时间

4.2.16 攻击时间

偏移 0×194 处是攻击持续时间。在指定时间段内持续攻击,到点就停止。

4.2.2.3.3    是否 造源 ip

上面几处信息基本就够 DealwithDDoS 函数识别任务的配置情况,并根据指示来启动相应的线程。但是在某些攻击方式中,根据需求可能要伪造 ip ,所以对于一些特殊标志,需要在具体函数里处理。

是否伪造 ip

4.2.17 是否伪造 ip

这个代码片段取自 udp_flood 函数,该函数根据是否伪造 ip 的标志而进行不同的处理。

4.2.2.3.4    其他字段的作用

主控端配置信息

4.2.18 主控端配置信息

和明文信息对比分析可以知道:

在数据包中的偏移 代表意义
0×0 IP 地址
0×80 域名
0×180 攻击端口
0x18c 包体长度

通过以上的分析,我们可以对 神起 ddos 集群 的通信协议做一个总结如下:

DDoS 攻击任务的配置数据格式

4.2.19 DDoS 攻击任务的配置数据格式

5    未完待

好奇的你是不是很想知道, 神起 僵尸网络的幕后操控者到底是谁,他是一孤独的黑客还是一个老练的团伙?还记得文章开始部分的那个打了马赛克的截图吗?

QQ 号码

5.1 QQ 号码

是的,粗心的黑客在微云登录界面留下了一个 QQ 76*****99 )号码,能否利用这个 QQ 号码追踪到幕后操纵者的真实身份呢?在该系列的下篇,你将看到一个精彩的社会工程学案例,敬请期待 ~

*本文作者:水滴安全实验室,转载请注明来自 FreeBuf.COM

这些评论亮了

  • 夜尽天明 (5级) 千秋邈矣独留我,百战归来再读书 回复
    第二百八十五条 【非法侵入计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。
    第二百八十六条 【破坏计算机信息系统罪】违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。
    违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。
    故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。
    第二百八十七条 【利用计算机实施犯罪的提示性规定】利用计算机实施金融诈骗、盗窃、贪污、挪用公款、窃取国家秘密或者其他犯罪的,依照本法有关规定定罪处罚。
    )37( 亮了
  • 匿名懦夫 回复
    >你将看到一个精彩的社会工程学案例,敬请期待 ~
    如果不够精彩 这篇文章的作者将会被社工出来 并且被打死 :mrgreen:
    )16( 亮了
  • 月月鸟 回复
    一套标准的小黑流程,国内dos成本低的原因就是因为,一群小黑使用着有后门的木马,不断的为黑产团伙输送肉鸡
    )14( 亮了
  • 安天:botnet-放牛娃 回复
    首先,总体文章写得还是不错的,样本和协议分析也写得比较详细!不过需要指出的是,从第一张图就知道,所谓的“神奇”就是Trojan[DDoS]/Linux.Dofloo 又称Trojan[DDoS]/Linux.AES。其实文章已经是写得很不错,为何要学某些厂商那样,为博眼球非得弄出个“异类”蛊惑非专业人士的人心。这种行为在常人眼里确实“彰显”牛逼,可在业内眼里这是:吹牛逼+耍无赖。病毒名称是一个严谨又严肃的事情,随便命名是会出现名称混乱无序,甚至印发连锁误报!就说这篇文章的联系,目前不下5位领导或者同事给我转发,希望我尽快跟进破解和监控,然后得一一解释(汇报)说:这个家族的相关算法、协议早在去年就已经破解,属于我们早期监控家族之一,已在我们监控范围内,目前的各个版本的生成器我们都有,协议、加解密算法、功能没变,界面变而已,且我们已经实现定期对该家族样本的自动化爬取、配置解密提取C2并监控,目前有2000+ C2进行7*24小时监控!
    不过话说回来,Dofloo家族的确实很强悍,攻击类型多种、有Windows、Linux、router、IoT四大环境的木马,单是IoT近期就通过8225摄像头漏洞累积获取已超130W 台摄像头“肉鸡”,主要分布在欧洲、美国、印度、加拿大、巴西、中国!如此庞大的“肉鸡”量,TB的攻击流量早已是轻而易举!
    )11( 亮了
  • 巴啦啦小魔仙 回复
    《水滴实验室》,我感觉就是水滴石穿,水会一直向下滴,时间长了能把“石头”滴穿。安全圈需要的就是这一群坚持不懈,尽己细微之力力求让安全行业变得更好的人。这个过程需要恒心,需要努力,需要“水滴”汇聚在一起,最后“星辰大海”。(大约11点发,括号里字删掉)
    )7( 亮了
发表评论

已有 48 条评论

取消
Loading...
css.php