追逐本源,放弃浮华
EarthWorm

Termite

Friends

RSS

可以租赁的僵尸网络

17 Oct 2016 TAGS : [ 技术相关 僵尸网络 逆向分析 ]

可以租赁的僵尸网络

近期看到一部分具有“僵尸网络租赁功能”的样本(业内叫“分控”,听起来更文雅了)。

挑一个样本(162a9a13a734c757bb71b34d19558889)在这里简单记录一下。 那反正这个样本也不太普及,而且样本中bug超多。。分享一下也无甚大碍。。

分析过程

控制处理逻辑对比

在服务端中可以明显看到两组不同的控制指令处理流程(sub_402ED0,sub_4034E0)。

对比两张图不难发现,sub_402ED0 的处理逻辑比sub_4034E0处理逻辑稍显复杂。

租赁服务

其中,sub_402ED0函数为租赁服务提供函数,其上线地址为:hr-sky.com:7878。在该函数的case 9 分支中提供了租赁功能,这段功能逻辑中,配置好被租用的上线地址,以及租用时间后即可启动sub_4034E0对应的服务指令,如下所示:

指令集比对

租赁服务提供方:

拥有的控制权限较为复杂(sub_402ED0)

租赁服务使用方:

拥有的控制权限较少(sub_4034E0),且当租赁时间到期后,该控制线程会被动关闭。

功能复现

“CC模拟器”的帮助下,可以完美复现以上租赁过程,对应该样本的配置文件为l1304v1.py

  1. 在可控主机上运行CC模拟器,模拟租赁提供方,并等待样本服务端回连。 $ python simulator.py l1304v1 7878
  2. 在虚拟机中,通过修改host文件,接管hr-sky.com的解析地址。
  3. 在虚拟机中启动样本,“CC模拟器”成功收取上线包,并弹出控制台。

  1. 在一个新的端口上启动模拟器,来模拟租赁使用方。 $ python simulator.py l1304v1 909
  2. 从租赁提供方,配置租赁对应参数,如下所示:

  1. 启动brrow服务,此时可在“租赁服务使用方”获得上线包,并接管控制服务。

  1. 使用租赁服务

在配置脚本中提供了dnsflood功能,以便进行dns攻击,配置好攻击目标后,可直接使用。

攻击指令发出后,wireshark中可抓取到大量的攻击数据包,如下所示:

样本BUG

样本的实现,具有一定问题,很多功能并不能完美复现,大概遇到这样几个问题:

  1. 以IEFlood为例,在虽然配置的参数无误,但样本在进行参数拼接时,忽略了IE路径中有空格这个状况,导致拼接出的指令无法成功执行,如下图所示:

  1. 在租赁服务中,stop指令无法生效,原因在于,其对stop指令的处理有误,“停止标志”被误设置为“保持攻击标志”。进而导致攻击一旦发起,就无法终止(除非租赁时间到期)的情况。

TAGS : [ 技术相关 僵尸网络 逆向分析 ]