开发者社区> 玄学酱> 正文

如何在云中发掘僵尸网络?

简介:
+关注继续查看

国内远控命名五花八门,既有"养鸡场"、"大灰狼"等接地气的名字,也有"假面骑士"、"金戈铁马"等颇具武侠风的名字。在我们的样本库中,"刑天"、"天羽"、"天罚"、"天劫"等几款远控用名字做到独树一帜,因为包含了中国传统文化推崇的"天"字,故统一命名为"天字号"。

一、远控介绍

1.1 远控家族

"野火烧不尽,春风吹又生",这句诗形容远控家族正合适。

安全的博弈与对抗经久不息,远控在各种杀软厂商的合力围剿下仍然能够存活甚至繁衍生息,说明黑色产业链对黑产从业者诱惑之大。为了躲避围剿,远控程序也一直在升级换代,并逐步扩大战场。肉鸡程序利用白利用躲避杀软主动防御查杀,远控由PC发展到安卓平台,都是远控在逐步发展的印证。

出于不同的原因,不同的主控可能在通信协议、Server端运行机制等方面极其相似,我们将这些相似的主控划作一个家族,方便分析和统计。同家族的主控大多是其中一个主控程序的变种,为了躲避检测会采取修改指令结构、变化指令ID、更换加密方法等手段。由于远控作者的编码水平参差不齐,有的新手会简单修改他人写好的远控代码,这样也会造成不同远控隶属同一家族的情况。

1.2 横向对比

我们对每个天字号远控均做了分析,从通信加密、是否包含系统监控模块、是否包含DDos攻击模块、DDos攻击类型的多样性等四个纬度进行横向对比,详情如下表所示:

 如何在云中发掘僵尸网络?

分析时我们发现一件有意思的事情,"天劫"的通信协议与"刑天"完全相同隶属于同一家族并且操作界面高度相似,这着实令人尴尬。"天劫"增加了注册登录充值等模块用于售卖, 在山寨的道路上越走越远,无法想象"刑天"的开发者会是怎样的心情。

由于"刑天"的通信协议没有加密便于抓包分析并且攻击类型比较丰富,比较适合进行常规的科普,所以本文选择"刑天"作为天字号的典型拿出来分析。

1.3 测试环境部署

分析"刑天"的通信协议方法比较简单,我们使用虚拟机搭建测试环境进行抓包分析,这种未加密通信协议的情况对于对不擅长逆向的同学来说是种福音。

我们在内网中使用2台windows 7 、1台Centos虚拟机为基础部署了简单的测试环境。一台Windows 7虚拟机A用作主控端,一台Windows 7虚拟机B用作肉鸡,而Centos虚拟机C架设TCP、UDP服务用作测试靶机。部署结构如下图所示:

 如何在云中发掘僵尸网络?

我们以"刑天"为例给出部署过程。首先在A中使用刑天生成肉鸡程序:

 如何在云中发掘僵尸网络?

然后在B中运行肉鸡程序,并开启wireshark抓取数据包。之后我们在A中会看到B上线:

 如何在云中发掘僵尸网络?

通过主控界面下方的功能区设定攻击信息:

 如何在云中发掘僵尸网络?

在 C 中我们可以简单的使用 Python 的 SimpleHTTPServer 启动一个 Web 服务作为 TCP 攻击的目标,这样做的好处是可以在 bash shell 中看到 TCP 攻击的攻击载荷并使用>&等重定向攻击载荷。当然我们完全可以写一个 UDP 服务来捕获攻击数据。

二、通信协议

有人质疑说许多文章在分析远控时主要针对远控生成的 server 端的运行机制,没见过写通信协议的,你这属于耍流氓。不得不承认,分析 server 的运行机制固然重要,但是我的观点历来是不分场景的操作都是耍流氓。我们对远控分析的利用场景是在全流量中发现C2 信道以及检出恶意主机,丰富威胁情报,从而对云的安全态势做到了然于胸、知己知彼。因此,掌握各种远控家族的通信协议对于上面的场景来说至(jing)关(shuo)重(fei)要(hua)。

为了分析的有理有据有节,下面分别从首包与C&C指令两方面来分析。

2.1 首包

首包即上线包,指肉鸡第一次连接主控时发送的数据包,可以理解为肉鸡向主控表明自身存在并要求注册的一道凭据。主控在收到首包后会认为新的 BOT 上线并要求注册。"刑天"远控会在首包附带操作系统类型、内存大小、CPU 核心数及主频、网络带宽等信息。这样的信息方便"牧马人"在进行任务下发时对机器条件的考量(比如sync flood攻击需要windows server系统而不能是win xp等个人pc)。在测试中抓取肉鸡上线的首包如下图所示:如何在云中发掘僵尸网络?

"刑天"远控的首包长度为184Bytes, 在 windows 7与 window xp 环境测试中首包的认证标识为 b00000007700000004080000,首包结构如下表所示:

如何在云中发掘僵尸网络?   

2.2 攻击分类

"刑天"DDoS功能分为5大类,每个大类分为若干细分功能,分类细节如下表所示:

如何在云中发掘僵尸网络?

2.3 C&C指令

2.3.1 攻击参数

在肉鸡上线之后,我们关心的是主控如何给肉鸡下发攻击命令。设定攻击参数是DDoS型主控必要的功能。通过分析多款DDoS主控,攻击参数主要包括以下字段:攻击目标、目标端口、持续时间、线程数量、攻击方式等。

2.3.2 指令结构

刑天远控指令结构比较简单,分为两个部分:指令标识 + 指令载荷。肉鸡程序提取指令标识确定具体的任务类型,根据指令载荷填充任务载荷。

2.3.2.1 指令标识

如何在云中发掘僵尸网络?

指令参数长度标识与指令大类标识均为 4 字节整形,采用小端模式而非网络字节序。

2.3.2.2 指令载荷

根据是否需要DDoS攻击参数,我们将指令载荷分为两类:DDoS攻击指令载荷、非DDoS攻击指令载荷。参照攻击分类,批量操作大类属于非 DDoS攻击指令载荷,剩余大类均属于DDoS攻击指令载荷。

需要注意的是,在网站测试大类中会出现针对游戏方式、完全穿透方式、变参的起始 ID 等扩展细分指令,刑天远控为了统一指令载荷的结构加入了 8 字节的扩展字段以兼容不同大类。通过分析每个细分指令,我们总结DDoS攻击指令载荷结构如下表所示:

如何在云中发掘僵尸网络?

“其它字节”包含了攻击目标、自定义攻击载荷之类的参数,其长度为指令载荷长度减去 24 字节。

非DDoS攻击指令载荷结构相对简单,分为两种情况。对于下载下载地址、弹窗地址、更新地址等3个指令,地址就是载荷。而对于关机、重启、卸载等3个不需要实际载荷的指令,用0x31字节填充。

通过进一步分析每种细分攻击的数据包,我们总结了细分指令ID如下表:

 如何在云中发掘僵尸网络?

2.3.3 C&C指令结构汇总

通过上述分析,我们汇总"刑天"C&C指令结构如下:

如何在云中发掘僵尸网络?

 以上就是"刑天"远控的通信协议,包括首包结构、C&C指令结构等。

在掌握了主控通信协议的情况下,我们就可以用匹配的方法在全流量中抓取使用了明文通信协议的C2信道流量,进而锁定肉鸡及主控并丰富威胁情报库。

三、攻击行为分析

现在我们可以用已知通信协议捕获匹配流量,但是不能止步于此。通信协议匹配的方法无法解决感知未知主控通信协议的问题,因此我们需要通过总结肉鸡在攻击时的行为特征来检出攻击流量。在攻击流量分析过程中,我们发现肉鸡程序的发包策略很有特点,是一个很好的切入点。我们分析总结了"刑天"主控发包时的动作特点,如下所示:

3.1 TCP发包策略

如何在云中发掘僵尸网络?

3.2 UDP发包策略

如何在云中发掘僵尸网络?

3.3 ICMP发包策略

ICMP发包策略会持续发送载荷超过4000字节的ICMP数据包。

3.4 行为分析总结

结合之前的场景,分析肉鸡程序的发包策略实际上并不是我们要做抗D,我们的目的是根据发包策略筛选出口流量中的可疑流量进而锁定云中的可疑主机。

熟悉主控的发包策略有助于总结规律、形成方法,从云主机的流量中及时发现可疑流量。这对探测未知主控家族的通信协议是一个很大的帮助。



本文作者:又田
本文转自雷锋网禁止二次转载,原文链接

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
25240 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18996 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
21687 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
19220 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18716 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14744 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
20709
文章
438
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载