作者:金山云安珀实验室

从2017年中“永恒之蓝”勒索病毒席卷全球,到2018年初的“英特尔CPU漏洞事件”大爆发,近年来,随着网络技术水平的不断提升,以“云物移大智”等为代表的新兴技术得到广泛应用,新产业新模式层出不穷,带来了全新的商业化图景,但随之而来的日益严重的信息安全问题,也让人们对网络安全愈发关注与重视。

近日,金山云安珀实验室成功破获一起利用大规模僵尸网络进行大流量DDoS攻击的有组织活动,经深入调查后发现,该组织掌握的肉鸡最多高达75万台,通过层层加密隐匿攻击源头,在幕后对企业、机构发动针对性的大规模DDoS攻击,进而谋取不正当利益。

安珀实验室监控到网络流量突发异常后,第一时间进行分析排查,确定异常流量来自某几台被控制的云主机,正在在对外发起大流量的DDoS攻击,深入调查后发现,这些云主机属于某僵尸网络控制的肉鸡,最后顺藤摸瓜,成功追踪到攻击源。下面详细介绍分析过程。

1. 入侵分析

首先,根据事发主机的流量特征,在金山云分布式蜜网平台中找到了被植入同一木马的系统,然后提取了蜜罐中发起DDoS攻击的木马程序,名称为libudev.so。并通过流量监控,获得了该木马连接的C&C控制端IP:203.12..

随后从该样本中提取出三个C&C控制端服务器的域名:

baidu.gd***.com
pcdown.gd***.com
soft8.gd***.com

其中一个域名pcdown.gd***.com没有解析记录,可以判断是备用域名。另外两个域名解析到某一台香港服务器上,IP正是前文提到的C&C控制端IP:203.12..

通过搜索根域名gd***.com的威胁情报数据,发现该根域名注册于2015年,域名拥有者对该域名的Whois信息进行了隐匿。通过对历史数据的查询,找到一个早期注册该域名的邮箱:145612****@***.com

2. 身份溯源

通过技术手段,拿到了C&C控制端机器(简称c1)的登入日志,综合分析后判定c1为入侵者本人使用,而不是肉鸡。从日志来源IP可以看到,入侵者有一定反侦察意识,利用了至少一层跳板主机企图隐藏自己的真实IP,跳板主机IP为45.32..(简称为v1),归属地为日本。

同时,我们发现这台主机还会向另一台机器发起RDP连接,IP为203.12..(简称为w1)。通过分析w1的登录日志,我们发现攻击者会在此机器中进行大量的入侵准备和记录等操作,因此我们判断v1为攻击者使用的最后一层跳板。此服务器归属于日本的VPS运营商vultr,vultr在国内的付款是通过支付宝,信用卡等实名进行的。

我们继续分析w1的日志,发现如下其他来源机器的信息:

s1、119.81.*.* 客户端名称:MS7
s2、203.12.*.* 客户端名称:WIN-3PLKM2PLE6E
s3、36.250.*.* 客户端名称:zhao**deMacBook

推断名字为zhao**的人属于该黑产团伙的一员。

通过对s3的检测,发现它开放如下服务:

这是一个测试下载服务器的站点,截图中可以发现8***.com这个域名,通过搜索威胁情报,此域名是一个钓鱼欺诈域名。我们找到名字为wang**的人,他的邮箱为27473****@***.com。从邮箱相关信息判断,此人从事黑产的可能性较大。

下图为此域名历史解析过的IP地址,结合之前我们分析的信息,可以判断出这个团伙所在地为福建的可能性比较大。

结合上述线索,可以对团伙人员身份进行交叉定位。由于涉及信息敏感,此处不再深入介绍。

3. 僵尸网络探查

通过技术手段,我们掌握了该团伙历史上所有控制的肉鸡IP列表,共有75万之多

此外,我们还获得了黑客的控制端程序,其客户端配置界面如下:

上图是其木马生成器,可以配置DNS、C&C域名、配置文件地址等。可以看到,C&C地址以及版本号与当前被捕获的样本类似。黑客可以在服务器端批量管理所有当前活跃的肉鸡,并可查询其IP地址、版本、硬件架构、处理器、时间戳、带宽等信息。

4. 样本分析

样本运行后,首先通过readlink来获取当前样本的运行路径。样本内置了一个特定的解密算法,所有的加解密均采用该算法完成,算法逻辑如下:

char * encrypt_code(char * input, int length)
{
    char * xorkeys = "BB2FA36AAA9541F0";
    char * begin = input;
    for(int i = 0; i < length; i++)
    {
        *input++ ^= xorkeys[i %16];
    }
    return begin;
}

通过上述解密算法,解密出样本的配置信息,及C&C服务器上的配置文件路径。解密后得到配置文件路径:http://pcdown.gd***.com:85/cfg.rar,该文件在分析时已无法访问。

之后通过fork子进程,调用setsid函数,切换到系统根目录等方式,样本创建了一个守护进程。接下来判断运行时参数,如果传入参数个数为2,则删除自身,同时运行传入的第2个参数,猜测此处或为样本更新逻辑。

当运行时参数个数不为3时,在之前解密出的系统路径下复制自身,可选路径有/usr/bin, /bin, /tmp, 并通过在样本尾部添加11个随机字符的方式,使自身的hash值每次都不同,用于对抗检查hash值这一类的扫描。

样本自身还携带了一个rootkit模块,能够对文件、端口等进行隐藏,给安全人员的手工排查带来一定的困难。样本运行时会将该模块加载到系统内核,一旦加载完成,就将该模块文件从磁盘删除。

下图代码是尝试将自身作为服务写入到系统启动目录下,使样本每次能随着系统自启动。

接下来样本会解密出远程服务器地址,之间用|符号进行分隔。其中unk_80B324C处解出的地址列表为: soft8.gd***.com:3802|113.10.*.*:3802|baidu.gd***.com:3802

之后,调用rootkit模块功能, 隐藏当前进程所分配的端口号。

样本最终创建了3个线程, 来分别执行不同的任务。

Daemon_get_kill_process线程在一个循环中持续从服务器端下载配置文件, 如果下载失败,就休眠1800秒,下载成功后,解密配置文件,然后将内容保存在kill_cfg变量中。

Kill_process线程在一个循环中持续监听服务器端下发的配置文件kill_cfg是否已经下载成功,一旦下载完成,会读取每一行的内容,根据内置的参数决定对某个特定的文件名及对应进程进行删除和终止。

Tcp_thread线程首先向c&c服务器发送肉鸡的硬件及软件信息,包括设备类型、设备版本、一段32个字节的随机字符串组成的设备id、固定的字符串”STATIC”、当前bot的版本号2.0.1、 内存使用情况、cpu频率、当前网速,以及当前设备上的rootkit的安装情况等信息,这些信息在加密后被发送到服务器端。

然后,根据服务器的返回数据,首先计算crc值进行校验,通过后对命令进行解码,进入exec_packet控制流程。

控制流程目前包含了6个控制码,分别为:

  1. 停止攻击
  2. 创建多个线程发起攻击
  3. 下载文件并执行
  4. 更新bot样本
  5. 发送系统信息到指定服务器
  6. 下载新的配置文件

5. 结语

本次事件由网关的一次突发流量异常引起,成功发现了黑客使用的控制服务器,最终掌握了一个数十万肉鸡规模的僵尸网络,通过及时进行追踪防护,有效避免了损失的发生。

【关于金山云安珀实验室】

实验室专注于安全技术的研究与探索,涉猎领域包括僵尸网络的探究、病毒木马的分析、漏洞的利用与防御技术、安全事件的跟踪分析等。安珀实验室已深入多个流行的僵尸网络家族,成功完成了多例溯源分析,并与公安部门合作联合打击网络黑产,通过紧密协同业界最新安全动态,将研究成果发布出来与业界共享,为构建安全健康的网络环境而努力。


源链接

Hacking more

...