欢迎访问Sunbet,Sunbet是欧博Allbet的官方网站!

首页Sunbet_新闻事件正文

DNS 地道通讯后门的剖析申报

de64384a174e12dc2018-02-0656新闻

2017年4月,我们宣布了一份细致的关于一款歹意顺序的申报,该歹意顺序运用DNS地道与它的C&C通讯。这项研讨促使我们开辟了一种手艺来检测类似的要挟,该手艺使得我们能够或许经由过程DNS地道网络少量的歹意软件样本。在本文中,我们将搜检一些运用DNS地道最著名的歹意顺序。Kaspersky实验室的平安产物用一样平常的(“Trojan.Denes.UDP.C&C”或 “Backdoor.Win32.Denis.*”)或零丁的讯断来检测这些歹意顺序。

Trojan.Win32.Ismdoor.gen

我们将搜检的第一个歹意软件有一个多层的C&C通讯协定构造,该构造与OSI模子类似,并将此歹意顺序与一切其他的木马顺序辨别开来。Trojan.Win32.Ismdoor的创造者,在设想和开辟方面明显付出了很大的勤奋。

固然,关于其传输层该木马运用DNS地道。传出“datagrams”(数据报)的长度被限定在60字符,只管DNS效劳器设置装备摆设和现实协定许可这个值更大。C&C效劳器的敕令剖析到IPv6地点。

一个典范的查询发送到C&C效劳器是如许的:

n.n.c.<Session ID >.<Server domain>.com

1517755919474735.png DNS 地道通讯后门的剖析申报  新闻 第1张 1517755919474735.png DNS 地道通讯后门的剖析申报  新闻 第1张

 

1517755926673292.png DNS 地道通讯后门的剖析申报  新闻 第3张 1517755926673292.png DNS 地道通讯后门的剖析申报  新闻 第3张

传输层请乞降响应的构造

在DNS地道传输层上面恰当的地位有一个会话层协定,这意味着交流“短”和“长”数据包的才能。会话层与传输层的分歧之处在于,它有一种机制来搜检丧失的音讯。当传输层经由过程一种数据交流封闭会话时(该数据交流是关于发送和吸收数据包的数目),会话层便搜检确保每一个发送的数据包曾经被准确吸收进而封闭。由效劳器决议运用哪一个选项;比方,“长”数据包协定是用来从受沾染的电脑上传文件。

1517755945685481.png DNS 地道通讯后门的剖析申报  新闻 第5张 1517755945685481.png DNS 地道通讯后门的剖析申报  新闻 第5张

短音讯交流协定的例子

短音讯

在这个条理上,谈天机器人(bot)的操纵可分为五个步调:

· 向效劳器声明会话ID;

· 在数据包中发送音讯;

· 发送已发送数据包数目;

· 吸收传入数据包的数目;

· 吸收传入的数据包。

一个会话的例子:

1517755955353771.png DNS 地道通讯后门的剖析申报  新闻 第7张 1517755955353771.png DNS 地道通讯后门的剖析申报  新闻 第7张

1. 向效劳器声明会话ID

每次翻开通讯会话,bot都邑天生一个GUID,并将其发送到效劳器。然后运用该GUID辨认会话中的一切通讯,而且老是将该GUID写在第三级域地位。在本例中,URL具有以下构造:

n.n.c.<Session ID>.<Server domain>.com
The message A67DDB8A2A17334765443253702AA3 is a positive response. Otherwise, the GUID is sent to the server again.
n.n.c.<Session ID>.<Server domain>.com 

音讯A67DDB8A2A17334765443253702AA3是积极响应的。不然,将再次发送GUID到效劳器。

2. 以数据包的情势发送一条音讯

正如我们后面说的,挑选的通讯机制将某些限定前提强加到数据包的巨细上。将一条行将输入的音讯分为60个字节长的数据包,而且以URL的情势发送:

<Outgoing packet>.<Packet number>.dr.<Session ID >. <Server domain>.com 

响应一定是A67DDB885A3432576548A2A3707334。

3. 发送已发送数据包的数目

当一切数据包发送胜利,便发送曾经发送的数据包数目,其数目作为一个查询以上面花样发送:

n.<Number of packets>.f.<Session ID >.<Server domain>.com

应当注重的是,数据包编号从0最先。响应是20202020202020202020202020202020。

4. 吸收传入数据包的数目

这一步是经由过程以下URL花样的范例完成:

n.n.fc.<Sessions ID >.<Server domain>.com

 

响应一定是以下花样:

A67D: DB8: 85A3: 4325: 7654: 8A2A :: <Number of incoming packets>
Receive incoming packets

5. 吸收传入的数据包

请求吸收下一个数据包是如许的:

www. <Packet number>.s. <Session ID > .<Server domain>.com

以16字节IPv6数据包的情势传入音讯。

长音讯

在这类情况下,与效劳器通讯能够分为以下步调:

· 发送文件分红的数据包的数目;

· 发送文件;

· 向效劳器发送周期查询以搜检丧失的数据包;

· 从新发送丧失的数据包。

来自查询的会话ID,在该查询中文件被请求。

1. 发送的数据包数目

查询: n.<Number of packets>.<Session ID >.<Server domain >.com  

回应:A67DDB8A2A17334765443253702AA3。 

2. 以数据包的情势发送文件

查询:<Outgoing packet>.<Packet number >.d.<Session ID >.<Server domain >.com

回应:效劳器不复兴这条信息,或许发送一个响应效劳器毛病。

3. 向效劳器发送周期查询来搜检数据包丧失

凌驾一样平常时候距离,bot向效劳器发送以下查询:

uff<Number of packets>.< Number of packets >.<Server domain >.com

  

复兴:20202020202020202020202020202020

一系列操纵以后,上一部分“吸收传入数据包的数目”和“吸收传入数据包”的步调曾经完成。

作为响应,效劳器所脱漏的数据包的数目(用逗号分离隔)被发送了。

4. 从新发送丧失的数据包

查询: <Outgoing packet>.<Packet number>.dl.<Session ID>.<Server domain>.com

OSI的透露表现层卖力编码和解码音讯。IPv4地点字段中包罗的效劳器响应是一个可被16整除的通例ASCII字符串。对包罗在DNS查询中的效劳器查询在Base64中运用从新界说的索引表停止编码。

1517755967716041.png DNS 地道通讯后门的剖析申报  新闻 第9张 1517755967716041.png DNS 地道通讯后门的剖析申报  新闻 第9张

 

1517756117973893.png DNS 地道通讯后门的剖析申报  新闻 第11张 1517756117973893.png DNS 地道通讯后门的剖析申报  新闻 第11张

----------------------------------------------

申博|网络安全巴士站【https://www.bus123.net/】

申博|网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。。

----------------------------------------------

第一个音讯的例子及其在datagram主体里的代表

应用顺序层只是C&C效劳器一组GET类似的查询:

· 搜检衔接。这个查询字符串是“M:CC?”;

· 注册衔接。这决议了可用敕令,和受沾染的计算机的ID和bot (M:AV?appId=<…>&uniqueId=<…>);

· 注册确认敕令;

· “通用”回应 (M:ME?appId=<…>&message=<…>);

· 吸收敕令(M:GAC?appId=8);

· 确认敕令 (M:CR?cd=<Command GUID>);

· 发送文件 (M:SF?commandId=CmdResult=<Command GUID>|||<Result of command execution >);

· 吸收文件 (M:GF?);

如上所述,这个木马的设想和编写都很好,具有经由深图远虑的通讯体系,和有多种功用的payload。上面是它的重要敕令列表:

· SI——发送关于受沾染体系的信息;

· RunNewVersion——更新;

· Restart ——重启;

· Remove——删除本身;

· CreateMimi1Bat——Mimikatz实行;

· ExecuteKL——激活键盘记录器;

· RemoveKL——删除由ExecuteKL建立的文件;

· GetVersion——木马版本申报;

· PauseUpload——停息上传文件到效劳器;

· ResumeUpload——规复上传文件到效劳器;

· PauseDownload——停息从效劳器下载文件;

· ResumeDownload——规复从效劳器下载文件;

· PWS——截图;

· DownloadFile——从效劳器下载一个文件;

· UploadFile ———上传文件到效劳器。

木马可用的其他敕令卖力其本身的逻辑操纵(如转变C&C地点等)。

Backdoor.Win32.ClIEcker

下一个示例运用基于ANY DNS 数据包的分歧事情流。这类机制许可歹意顺序从效劳器吸收随机构造的DNS数据包。有了该木马顺序,就没有逻辑分解成子协定了——只要传出和传入的请求。我们能够或许检测到该木马的几个修正。上面,我们将形貌一切列出的这些功用和特性。

Backdoor.Win32.ClIEcker个中一个风趣的特性是发明受害者计算机IP地点的体式格局——为了发明受害者计算机IP地点,它运用Internet Explorer的COM接口。该木马包罗网站地点的列表,在该列表上旅客能够看到本身的IP地点(比方http://www.ip-adress.com)。木马顺序随机挑选个中一个,接见地点,发明IP地点所遵照的页面主体的字符串,并提取它。为了尽量地掩饰该查询,木马顺序也会挑选一个随机的引荐地点而且在对Internet Explorer恰当的请求中运用该地点。

独一仍不清晰的事变是,为何会运用如许一个庞杂的要领;一般,木马顺序经由过程从一个网站请求数据找到计算机IP地点,以一个HTML页面的情势前往一个包罗IP地点的字符串。这么操纵做或许是为了制止剖析到一个IP地点,对该木马顺序来讲能够在IoC列表中,或许它能够只是一个完善斟酌的从代码库或论坛复制粘贴的事情。

为了使事变进一步庞杂化,在来自效劳器的请求上,该木马顺序支撑翻开Internet Explorer上

一个网站的敕令——为此,以 “IEXPLORE.EXE google.com”的情势运用了一个小挪用,而不是庞杂的COM交互。因而,木马能够作为一个Trojan-Clicker被检测到,不外,正如我们在之前的文章中诠释过的,Trojan Clicker一般运用假造桌面来完成上述操纵。

1517756128324341.png DNS 地道通讯后门的剖析申报  新闻 第13张 1517756128324341.png DNS 地道通讯后门的剖析申报  新闻 第13张

用于剖析IP/引荐地点的URL地点的例子和经由过程COM 吸收页面内容

在最初的请求中,几个形貌受害者体系的参数与唯一的RC4键一同被发送,该RC4键运用以下受害者电脑信息建立的:

· 操纵体系的重要版本;

· 逻辑标记指导是不是运用调制解调器衔接;

· 木马ID;

· 用户的加密IP地点;

· 杀毒效劳代码。

最初一点应当给一些诠释。木马包罗平安软件的列表;每一个平安产物都在发送到效劳器的这段代码中被编码。比方,一切与McAfee产物有关的历程都将用杀毒效劳代码中的标记0 ×400透露表现。  

接下来,我们将对一些敕令给出响应形貌:

1517811754875811.png DNS 地道通讯后门的剖析申报  新闻 第15张 1517811754875811.png DNS 地道通讯后门的剖析申报  新闻 第15张

带有代码8的敕令值得迥殊存眷,由于它包罗了木马的重要功用。它的事情就是下载和启动负载。这个敕令有以下参数:

1517811436706761.png DNS 地道通讯后门的剖析申报  新闻 第17张 1517811436706761.png DNS 地道通讯后门的剖析申报  新闻 第17张

该文件以TXT DNS数据包的情势传输。

一切与效劳器通讯,在默许情况下,运用一个基于受害者计算机信息天生的RC4密钥加密。然则,效劳器能够请求密钥是被转变的,并在文件下载请求中发送一个新的密钥。在任何情况下,天生S-box所需的密钥是用其本身加密的,并随后运用发生的字符串。依据数据包数目修正 S-box,因而关于每一个新的数据包都是独一的。 

当解密完成后,运用CRC32搜检天生文件的完整性。

Backdoor.Win32.Denis

Backdoor.Win32.Denis具有最简朴的构造和最简朴的DNS效劳器通讯功用。歹意软件的这段代码与本文形貌的木马有相反的名字,然则也仅有此类似之处。

这个歹意顺序运用 A DNS-花样数据包来与DNS效劳器通讯;在这类花样中,响应巨细限定为4个字节。一切的目标都注解这是一个通例的木马下载顺序(Trojan Downloader),下载文件的速率异常慢。发送给效劳器的音讯的典范花样以下:

IC<Container type>.<UID>.<Container>.<Server address>

经由过程“容器”,Trojan运算效果是打包的。敕令和响应分歧,容器的构造能够有很大的差别。是用户的ID UID字节长度为0x20 。是一个Base32字符串,编码以后有以下构造:

1517811463225541.png DNS 地道通讯后门的剖析申报  新闻 第19张 1517811463225541.png DNS 地道通讯后门的剖析申报  新闻 第19张

容器也是一个Base32字符串:

1517811488879170.png DNS 地道通讯后门的剖析申报  新闻 第21张 1517811488879170.png DNS 地道通讯后门的剖析申报  新闻 第21张

总共有四种范例的容器存在。依据吸收到的敕令,和实行的效果,Trojan决议哪一个是必须的。

1517811804625867.png DNS 地道通讯后门的剖析申报  新闻 第23张 1517811804625867.png DNS 地道通讯后门的剖析申报  新闻 第23张

敕令

1517811515743760.png DNS 地道通讯后门的剖析申报  新闻 第25张 1517811515743760.png DNS 地道通讯后门的剖析申报  新闻 第25张

从敕令的形貌能够看出,该木马顺序的目标是下载和启动文件。

MD5

15b36b1e3a41ad80bbd363aea8f2d704 — Trojan.Win32.Ismdoor.gen
1FD599FB9FA62EB91511002771D78104 — Backdoor.Win32.ClIEcker
1f3a2c48a7f5c2c31e71f552d74c3543 — Backdoor.Win32.Denis

本文翻译自:https://securelist.com/denis-and-company/83671/,如若转载,请说明原文地点: http://www.4hou.com/info/news/10250.html

网友评论