您当前的位置:首页 > 电脑百科 > 安全防护 > 网络安全

恶意软件是如何使DNS隐蔽信道通信技术实现通信的?

时间:2019-09-03 11:58:40  来源:  作者:
技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

1

概述

近期,我们正在研究DNS隐蔽信道通信技术,找到了⼀个BondUpdater样本,通过对此样本的分析,来了解某些恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的,从而方便我们研究如何检测此种攻击。

2018年8⽉,Unit42发现OilRig针对中东政府组织使⽤⻥叉式钓⻥邮件,投递了⼀个新版本的BondUpdater。

OilRig是伊朗的APT组织,2016年被Unit42发现,⼀直处于活跃状态,经常对中东地区的政府机构和企业发动网络攻击。2017年11⽉,基于PowerShell的特洛伊⽊⻢——BondUpdater被FireEye⾸次发现,其包含基本的后⻔功能,能够使攻击者上传/下载⽂件,执⾏命令。

与OilRig组织的其它⼯具⼀样,BondUpdater使⽤DNS隧道与C2服务器进⾏通信,新版本的BondUpdater⽊⻢能够在DNS隧道中使⽤TXT记录与C2进⾏通信。

2

样本分析

MD5:52b6e1ef0d079f4c2572705156365c06

(2.1)提取关键文件及代码

此样本是⼀个word⽂档,⽤Microsoft Word打开⼀下看看。

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

可以看到样本中嵌⼊了宏代码,而利⽤word⾃带的宏编辑器是看不到宏代码的。

我们可以通过oledump或者oletools来提取宏代码,我这⾥使⽤oledump。

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

如图所示,宏代码存在于第7段,我们将其转存为ThisDocument.vb

Python oledump.py -s 7 -v
7cbad6b3f505a199d6766a86b41ed23786bbb99dab9cae6c18936afdc25
12f00_doc > ThisDocument.vb

ThisDocument内容如下:

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

运⾏宏,⾸先执⾏Document_Open函数,此函数调⽤AAAA函数,在AAAA函数中,调⽤HGHG函数,分别创建两个⽂件,AppPool.vbs和AppPool.ps1,将宏代码中嵌⼊的vbs代码和powershell代码写⼊这两个⽂件中。

之后通过执⾏

wscript 
C:ProgramDatawindowsAppPoolAppPool.vbs

运行AppPool.vbs

我在虚拟机中跑⼀下,将这两个⽂件提取出来。

AppPool.vbs内容如下:

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

当AppPool.vbs⾸次执⾏时,其创建了⼀个每分钟执⾏的计划任务,使⽊⻢⽂件能够被不断执⾏。

然后通过

PowerShell.exe -exec bypass -file 
C:ProgramDataWindowsAppPoolAppPool.ps1

运⾏AppPool.ps1

AppPool.vbs后续的执⾏过程中,会判断是否存在"quid"的⽂件,如果存在,就使⽤上述powershell脚本运⾏AppPool.ps1。

AppPool.ps1⾸次运⾏时会创建quid⽂件,以避免创建多个计划任务。

AppPool.ps1内容如下:

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

此处的AppPool.ps1是经过经过初步处理的,主要的操作都是由此powershell代码实现,通过DNS隐蔽信道与C2进⾏通信的代码也在其中。

(2.2)分析关键代码

AppPool.ps1代码⼤致流程:

2.2.1 创建lock、qiud文件

在⽬录

C:ProgramDataWindowsAppPool

创建lock、qiud两个⽂件

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

lock⽂件写⼊的是当前powershell进程的PID号,powershell脚本会检测当前时间和进程启动时间之差是否超过10分钟,如果超过10分钟就会终⽌进程并删除lock⽂件。

quid的内容是由GUID(全局唯⼀标识符)的前⼋个字符和⼀个两位的随机整数组成。

2.2.2 在quid中创建3目录

以quid中的内容为⽂件夹名称在⽬录

C:ProgramDataWindowsAppPool

创建⽂件夹,还创建了“files”⽂件夹,再在第⼀个⽂件夹中创建三个目录,“sendbox”、“receivebox”、“done”。

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

sendbox⽤于存储将要发送到C2的⽂件,receivebox⽤于存储从C2接收到的命令⽂件,done也是⽤于存储从C2接收到的⽂件,以便将来使⽤。

2.2.3 发起DNS请求

构造域名,发起包含初始信标的DNS请求,通知C2开始通信

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

参数中的“M”就是操作的类型,是初始信标,表示开始通信,“r”表示按接收数据的格式⽣成域名。

2.2.4 定期与C2通信

从C2接收命令,将命令写⼊到⽂件,并保存在“receivebox”⽂件夹中。

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

每隔50毫秒尝试与C2进⾏通信⼀次。

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

dns_request_TXT功能为构造DNS请求数据包,发起DNS请求,返回响应包数据。

这⾥的dns_request函数有两种,分别是发送DNS A记录请求和TXT记录请求,下⾯在分析通信协议的时候会提到。

  • 如果⽊⻢发送的是DNS A记录请求,⽊⻢会从A记录响应包中的address段(ip)提取数据。

  • 如果⽊⻢发送的是DNS TXT记录请求,⽊⻢会从DNS TXT记录响应包中的TXT段(存储数据)提取数据。

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

C2传输数据到⽊⻢总共有两种传输⽅式,⼀是通过域名响应ip进⾏传输,这种是通过发送A记录请求,另⼀种是通过TXT记录进⾏传输。

上⾯图⽚中的代码是对DNS TXT记录响应包进⾏处理的过程。

⽊⻢会将接收到的TXT数据以“>”分开,左边的作为指令,右边的作为数据。左边的指令决定⽊⻢将会如何处理右边的数据,具体的处理规则会在下⼀节进⾏描述。

从响应包中解析出的指令和数据,会以⽂件的形式存储在receivebox⽂件夹下,以待后续处理。

2.2.5 命令解析

对接收到的命令进⾏解析,执⾏命令,然后将结果写⼊⽂件,保存在“sendbox”⽂件夹下,以待后续发往C2。

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

⽆论是通过A记录进⾏接收的数据,还是通过TXT记录接收的数据,都以⽂件的形式保存在receivebox⽂件夹下,⽂件名以“rcvd”开头。

并且使⽤相同的⽂件处理程序,⽂件处理程序根据⽂件名的最后⼀个字符,决定怎么处理以此⽂件名为名字的⽂件的内容。

2.2.6 命令结果回传

将命令执⾏结果结果传回C2服务器。

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

"s"是以发送数据的格式⽣成域名,⽂件的名称和内容是通过域名来进⾏传送的,$SSE代表数据块,$TTE代表⽂件名。

下节中的数据格式的介绍中会具体提到这些参数。

(2.3)通信协议分析

2.3.1 数据格式

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

发送数据格式:

<包含分⽚号、操作类型、GUID前8字符、随机⼆位整数的字符串><序号><1~7个随机字符>C<分⽚号偏移><操作类型偏移>T.<数据块>.<⽂件名>.<C2域名>

接收数据格式:

<包含分⽚号、操作类型、GUID前8字符、随机⼆位整数的字符串><序号><1~7个随机字符>C<分⽚号偏移><操作类型偏移>T.<C2域名>

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

分⽚号偏移和操作类型偏移都是相对GUID前8字符和随机2位整数组成的字符串的。

接收数据格式的第⼀部分包含分⽚号、操作类型、GUID前8字符、随机⼆位整数的字符串。⽊⻢⾸先⽣成GUID号,然后取GUID号的前8位与⼀个2位随机整数相连接形成基础字符串,最后将分⽚号和操作类型随机插⼊基础字符串。

第⼆部分是1~7位的随机字符串。

第三部分就是C和T以及中间的两个数字,第⼀个数字为操作类型在基础字符串中的偏移,第⼆个数字为分⽚号在基础字符串中的偏移。

第四部分就是C2域名,发送数据格式和接收数据格式的区别就是多了数据块和⽂件名。

2.3.2 DNS请求中包含的操作类型

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

将此操作类型包含在⽣成的⼦域名中,可以通知C2在响应数据包中使⽤那种数据格式。

例如:如果操作类型是“W”,C2会发送响应包的TXT段以“S000s”为开头的数据,发送的数据会作为⽂件名。

如果操作类型是“0”,C2会将域名响应ip置为“24.125.[d].[d]”,使⽊⻢将ip地址的后两段作为⽂件名进⾏接收。powershell代码中写了两种记录的DNS请求⽅法。如下图所示:

A记录请求:

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

TXT记录请求:

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

2.3.3 文件名末尾字符含义

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

因为⽊⻢从C2接收的数据都是以⽂件的形式存储在“receivebox”⽂件夹下的,所以当⽊⻢从C2接收完所有的数据后,会执⾏⽂件处理程序。⽂件处理程序会根据以上协议对接收到的数据进⾏处理。

2.3.4 原始数据传输过程中的域名解析IP 地址及含义

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

原始数据传输就是通过A记录传输的,数据是放在DNS响应包的address段的ip地址中的。

⽊⻢发送包含“0”操作类型的DNS请求,C2就会将响应ip地址设为形如“24.125.[d].[d]”的地址,并将⽂件名填充在⾥⾯。

⽊⻢接收到数据会将其与“rcvd”连接在⼀起,作为⽂件名,并修改操作类型为“1”。然后⽊⻢开始发送包含“1”操作类型的DNS请求,C2就会将响应ip设为形如“[d].[d].[d].[d]”的地址,并将数据填充在⾥⾯。

如果数据发送完了,C2就会将响应ip地址设为形如“1.2.3.[d]”形式的地址。⽊⻢接收到后就会将数据存在以前⾯接收到的⽂件名为名的⽂件中,并保存在“reveiveboc”⽂件夹下。

2.3.5 其他域名解析地址含义

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

这些IP地址是整个通信过程中除去原始数据传输过程中的域名解析IP地址以外的IP地址。“99.250.250.199”⽤于表示⽊⻢想要与C2开始通信。

因为有些数据⽐较⻓,所以会分⽚进⾏传输,“[quid.substring.(0,2)].2.3.[d]”的最后⼀段表示⽬前传输的分⽚号,⽤于判断数据是否完整传输完成。

当⽂件的字节数⼤于60字节,就需要多次传输,⽊⻢被我设置了数据传输⻓度的阈值为60。

2.3.6 新数据传输协议指令含义

技术贴 | 恶意软件是如何使⽤DNS隐蔽信道通信技术实现通信的?

新数据传输协议就是通过TXT记录进⾏传输数据。当⽊⻢发送操作类型为“W”的TXT记录DNS请求,C2就会回复⼀个包含TXT数据的响应包,响应包中的TXT字段存储了C2发给⽊⻢的数据,数据以“>”号分隔开来。

如果“>”左边的字符串为“S000s”,⽊⻢就将“>”右边的数据与“rcvd”连接,作为将要存储数据的⽂件的⽂件名,然后将操作类型置为“D”。

然后发送包含操作类型“D”的TXT记录请求,C2会回复TXT数据中“>”左边为“S”的响应包,⽊⻢会将“>”右边的数据进⾏base64解码,并将下⼀次请求的操作类型置为“D”。

再发送包含操作类型“D”的TXT记录请求,直到数据发送完成,然后C2会回复TXT数据中“>”左边为“E”的响应包,⽊⻢会将base64解码后得到的数据写⼊执⾏“S000s”指令后⽣成的⽂件名的⽂件中,然后跳出循环。

3

总结

通过对此样本的分析,我们得出⼀些DNS隐蔽隧道通信的特征、方式和通信所使⽤的协议,方便后期对容易软件的类别分析。

C2和受控主机对对彼此之间传输的数据进⾏解析,形成有⼀套通信协议。数据如果通过A记录传送,就存在于域名中(受控主机向C2发送数据)或者域名解析IP中(C2向受控主机发送数据);如果通过TXT记录传送,就存在于响应包中的TXT字段中。

⽬前很多APT攻击和恶意软件使⽤DNS隐蔽信道进⾏通信,所以对DNS隐蔽信道通信进⾏检测是⼀件很有意义的事情。

本文转自公众号“安恒风暴中心”



Tags:恶意软件   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
已经观察到一种新的基于JavaScript的远程访问木马(RAT)利用社会工程学传播,采用隐蔽的"无文件"技术作为其逃避检测和分析的方法。该恶意软件由Prevalyion的对抗性反情报团队(PA...【详细内容】
2021-12-17  Tags: 恶意软件  点击:(13)  评论:(0)  加入收藏
现在有这么多人天天在线,网络黑客时刻不停地在策划并计划他们的下一个攻击目标。你要做的最好的事情之一就是确保你的信息安全。保护你的个人信息不被获取,以及保护自己免受诈...【详细内容】
2020-08-03  Tags: 恶意软件  点击:(138)  评论:(0)  加入收藏
一种名为EvilQuest的新数据擦除程序和信息窃取程序正在使用勒索软件作为诱骗手段窃取macOS用户文件。从torrent跟踪器下载流行应用的木马安装程序后,受害者就被感染了。一...【详细内容】
2020-07-02  Tags: 恶意软件  点击:(127)  评论:(0)  加入收藏
【环球网科技综合报道】据外媒消息,日前,网络安全公司ERNW的安全研究人员发行了一个名为BlueFrag的漏洞,该漏洞使具有蓝牙功能的Android设备范围内的任何人都可以访问该设备的...【详细内容】
2020-02-10  Tags: 恶意软件  点击:(147)  评论:(0)  加入收藏
网络罪犯是忙于创新的人,正在调整他们的武器和攻击策略,并且无情地漫游网络以寻找下一个高分。 敏感信息的每种方式,例如机密的员工记录,客户的财务数据,受保护的医疗文件和政府...【详细内容】
2019-12-23  Tags: 恶意软件  点击:(94)  评论:(0)  加入收藏
企业网络感染恶意软件可能会造成关键信息系统或数据的破坏,直接威胁正常业务的运行。为了应对这样的情况,企业应该提前做好准备,构建恶意软件的检测和响应能力。 恶意软件的...【详细内容】
2019-12-09  Tags: 恶意软件  点击:(155)  评论:(0)  加入收藏
每次通过手机,平板电脑或计算机连接到Internet时,都将承受一定程度的风险。黑客继续寻找新方法来利用安全漏洞并破坏设备或数据。我们需要时刻保持警惕,以避免危险的恶意软件和...【详细内容】
2019-11-20  Tags: 恶意软件  点击:(97)  评论:(0)  加入收藏
APT一直以其"高级""持续"的特点名列网络病毒系列榜首。其攻击对象高级,持续时间长,通常以年为单位。以下是各国情报和军事部门的网络安全部门列出的最危险,伤害力最强,最"臭名昭...【详细内容】
2019-11-08  Tags: 恶意软件  点击:(155)  评论:(0)  加入收藏
加密货币挖掘恶意软件是一种普遍存在网络威胁,不止是Windows系统,如今你在移动设备、Unix和类Unix系统,甚至是服务器和云环境中,都可以见到它们的身影。此外,它们的反检测能力也...【详细内容】
2019-09-26  Tags: 恶意软件  点击:(291)  评论:(0)  加入收藏
近日,一种名为“Domen”的新型黑客工具包被发现,它潜伏在被黑掉的合法网站上,通过展示虚假浏览器和应用软件更新警报页面来诱骗你点击,进而使用恶意软件和远程访问软件来感染你...【详细内容】
2019-09-19  Tags: 恶意软件  点击:(217)  评论:(0)  加入收藏
▌简易百科推荐
(报告出品方:德勤)数字化转型网络安全及转型挑战在任何行业,保持竞争力都需要快速开发新产品和 服务并推向市场。创新型业务模式不仅仅是简单地将现有 流程数字化,其正在覆盖供应...【详细内容】
2021-12-22  认是    Tags:网络安全   点击:(29)  评论:(0)  加入收藏
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  实战Java  博客园  Tags:脚本攻击   点击:(20)  评论:(0)  加入收藏
一、背景介绍大家在Linux的日常使用中都晓得如何通过命令行去配置Linux的端口开放规则,但是大家知道如何配置Windows入站出站规则吗?有哪些常见的危险端口呢?如何解决上述问题...【详细内容】
2021-12-01  Kali与编程    Tags:防火墙   点击:(30)  评论:(0)  加入收藏
网络安全服务商Randori公司日前发布了一份调查报告,列出了网络攻击者最有可能攻击或利用的IT资产。在遭遇Solarwinds黑客攻击一周年之际,以及在网络安全(尤其是勒索软件和供应...【详细内容】
2021-10-28  企业网D1net   企鹅号  Tags:网络攻击   点击:(57)  评论:(0)  加入收藏
0x01.背景实验利用Dns Administrators 组成员,通过远程配置Dns服务,进行Dll inject从而实现特权提升。 在域内,Dns server 通常为Dc Server,Dns服务器管理基于rpc,通过调用c:\wi...【详细内容】
2021-10-22  IT影子    Tags:特权提升   点击:(37)  评论:(0)  加入收藏
本文主要介绍和总结了CSRF跨站请求伪造的基本原理和主要防范措施,工作中有用到的朋友不妨收藏转发一下,以备您参考。什么是CSRF?CSRF跨站点请求伪造(Cross&mdash;Site Request...【详细内容】
2021-10-13  快乐中恒    Tags:CSRF   点击:(49)  评论:(0)  加入收藏
waf拦截在打某市 Hvv 第一天就找到一个文件上传的点,经过测试,可以直接任意文件上传,没有什么道理。 直接尝试上传 Php 文件,被 waf 拦截了 2021最新整理网络安全/渗透测试/安...【详细内容】
2021-10-11  KaliMa    Tags:防火墙   点击:(56)  评论:(0)  加入收藏
应用程序与文件系统的交互始终是高度安全敏感的,因为较小的功能漏洞很容易成为可利用漏洞的来源。这种观察在web文件管理器的情况下尤其正确,其作用是复制完整文件系统的功能...【详细内容】
2021-09-17  IT野涵    Tags:漏洞链   点击:(56)  评论:(0)  加入收藏
您的苹果手机尽管iPhone比Android更安全,但也可以通过各种方式入侵。避免黑客入侵的最佳方法是警惕奇怪的链接或粗略的应用程序,并仅在必要时提供信息。电池寿命差和性能低下...【详细内容】
2021-09-16  Hackers爱好者    Tags:黑客入侵   点击:(633)  评论:(0)  加入收藏
防火墙一般布置在逻辑区域的入口处,位于三层网络架构的核心和汇聚之间,起到隔离逻辑区域,为逻辑区域创建安全策略的作用。 上面就是应用区的防火墙布置方式,他布置在应用区,可以...【详细内容】
2021-09-03  知来知去    Tags:主备模式防火墙   点击:(109)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条