- N +

利用DNS隧道通信木马

  ,该程序使用DNS隧道与CC服务器进行通信。这项研究促使我们开发了一种技术来检测类似的威胁,这使得我们能够使用DNS隧道技术来收集大量的恶意软件样本。

  在本文中,我们将研究一些使用DNS隧道技术的典型的恶意程序。卡巴斯基实验室的安全产品使用通用的()判断方法或人为检测的方法来检测它们。

  下面的第一个恶意软件有多层的CC通信协议结构,类似于OSI模型。由于这点将它与文章中的其他木马区分开来,而Trojan.Win32.Ismdoor.gen的创造者显然在设计和开发方面付出了很多努力。

  当然,这个木马的传输层使用了DNS隧道技术。尽管DNS服务器配置和实际的协议允许这个值更大,但发出的数据报的长度还是被限制为60个字符,CC服务器的命令被解析成IPv6地址。

  在DNS隧道传输层之上有一个会话层协议,这意味着其具有交换“短”和“长”数据包的功能。不同于传输层的是,它有一个机制来检查丢失的消息。当全部的包发送并接收后,传输层会话终止,会话层通过检查每个发送的数据包是否并正确接收从而关闭。这一切都取决于服务器决定使用哪个选项;例如,在受感染的计算机上使用“长”数据包协议上传文件。

  每次通信会话建立时,程序都会生成一个GUID并将其发送到服务器。然后使用此GUID来标识该会话中的所有通信,并总是将其写入第三级域名的位置。在这种情况下,url的结构如下:

  正如我们前面所说,选定的通信机制对数据包大小施加了一定的限制。发出的消息被分成60个字节长的数据包,并以URL的形式发送:

  OSI中的表示层负责编码和解码消息,服务器响应中的IPV4地址段是一个的常规16进制的ASCII字符串,向服务器发送查询包含的DNS查询,使用重新定义的索引表,并用Base64编码。

  如上所述,这个木马是精心设计和编写的,有一个经过深思熟虑的通信系统以及一个有效载荷的丰富功能。下面是一些它的主要命令:

  下一个样本使用了一种不同的工作流,基于ANY DNS数据包。该机制允许恶意程序从服务器接收随机结构的DNS数据包。这个木马没有任何逻辑上的子协议 -只有发送和接收数据包的请求。我们能够检测到这个木马的几处不同,接下来我们描述一下这些特征。

  Backdoor.Win32.ClIEcker的一个有趣的特点是如何找到受害者计算机的IP地址 -它使用了Internet Explorer的COM接口。该木马包含一系列网页地址,访问者在其中可以看到他们自己的IP地址(例如)。该木马随机选择其中一个地址访问,在页面主体中查找IP地址后面的字符串,并提取该字符串。为了尽可能掩盖这个查询,木马还将选择一个随机引用地址,并将其用于Internet Explorer的相应请求。

  唯一不清楚的是为什么使用这种复杂的方法,通常,木马通过向站点返回包含IP地址的字符串作为HTML页面的数据,来找出计算机的IP地址。也许这样做是为了避免解决这个木马的IoC列表中的IP地址,或者它可能只是一个从代码存储库或论坛中进行的无意义的剪切和粘贴工作。

  更复杂的是,木马程序支持一个命令,在服务器请求的情况下,在Internet Explorer中打开一个网站 -为此使用形式为“”的简单调用,而不是复杂的COM交互。因此,虽然木马可能被检测为Trojan-Clicker,但正如我们在前面的文章中所解释的那样,木马程序通常使用虚拟桌面来执行此操作。

  在发起请求时,描述受害者系统的几个参数与一个唯一的RC4密钥一起发送,该密钥是使用受害者计算机中的以下信息创建的:

  解释下最后一点,该木马包含一个安全软件列表;每个安全产品在发送到服务器的代码中都有一个编码号。例如,所有与McAfee产品相关的进程都将通过反病毒服务代码中的标志0x400表示。

  这些命令必须接收可执行文件的代码作为参数,保存文件并运行它。在第一种情况下,当前版本的木马停止运行。由于某些原因,这些命令被禁用。木马会忽略这个命令列表的其余部分,然后继续请求一个新的命令。

  服务器查询周期有两个可能的值:一个用来表示先前的命令列表已经全部执行,否则使用另一个,这个命令还设置了第一个选项的等待时间。

  如果Modifier

  代码号为8的命令值得特别注意,因为它包含了木马的主要功能。它的工作是下载和启动有效载荷。这个命令有以下的参数:

  在默认情况下,所有与服务器进行的通信均使用基于受害者计算机信息生成的RC4密钥进行加密。但是,服务器可能会要求更改密钥,并在文件下载请求中发送新的密钥。在任何情况下,生成S盒所需的密钥都是自己加密的,随后使用结果字符串。S盒根据分组编号进行修改,因此每个新分组都是唯一的。

  Backdoor.Win32.Denis具有最简单的结构和DNS服务器通信功能。这个恶意软件与本文中描述的木马具有相同的名称,这是仅有的一点相同之处。

  这个恶意程序使用一个DNS格式的数据包与DNS服务器进行通信;在这种格式中,响应大小被限制为4字节。所有迹象表明这是一个常规的木马下载器,并且下载文件的速度很慢,发送到服务器的消息的典型格式如下所示:

  “Container”域指的是木马程序的打包形式,其结构会因命令和响应而变化很大。UID是长度为0x20个字节长度的用户ID,它是一个Base32编码的字符串,经解码后具有以下的结构:

  第一个字节表示发送的数据量;接下来的字节对:逻辑驱动器的字母和它的类型;其余的填充任意字符即可。

  如果传输的文件尚未存在,则创建并将容器类型更改为1;否则,将发送一条消息,其中前4个字节包含编码为0xC0的消息中收到的完整文件大小;接下来的4个字节存储当前的文件大小;之后的4个字节包含来自服务器所丢失消息的计数器;其余填充任意字符即可。

  在每次网络通信之前,将当前文件大小与实际文件大小进行比较。如果它们匹配,则容器类型将更改为4。

返回列表
上一篇:
下一篇:
评论列表 (暂无评论,共505人参与)

还没有评论,来说两句吧...

发表评论

验证码