首页
社区
课程
招聘
[翻译]Lyceum .NET DNS 后门
2022-6-13 16:08 7263

[翻译]Lyceum .NET DNS 后门

2022-6-13 16:08
7263


Lyceum .NET DNS Backdoor

翻译:梦幻的彼岸

原文地址:https://www.zscaler.com/blogs/security-research/lyceum-net-dns-backdoor

Lyceum .NET DNS Backdoor



Lyceum Group自2017年以来一直活跃,是一个国家支持的伊朗APT组织,以瞄准能源和电信领域的中东组织而闻名,主要依赖于基于.NET的恶意软件。

Zscaler ThreatLabZ最近观察到了一场新的活动,Lyceum Group通过复制开源工具的底层代码,利用新开发和自定义的基于.NET的恶意软件针对中东地区。

 

此次攻击的主要特征:

 

  1. 新的恶意软件是一个基于.NET的DNS后门,是开放源码工具 “DIG.net”的自定义版本。
  2. 该恶意软件利用了一种被称为 "DNS劫持 "的DNS攻击技术,攻击者控制的DNS服务器操纵DNS查询的响应,并按照他们的恶意要求解决这些查询。
  3. 该恶意软件采用DNS协议进行指挥和控制(C2)通信,这增加了隐蔽性,使恶意软件的通信探针处于radar下以逃避检测。
  4. 包括上传/下载文件和通过滥用DNS记录在受感染机器上执行系统命令等功能,包括用于传入命令的TXT记录和用于数据渗透的A记录。

 

传播机制

 

在这次活动中,从域名 "http[:]//news-spot.live "下载了下图所示的启用宏的Word文档(文件名:ir_drones.docm),并将其伪装成与伊朗军事事务有关的新闻报道。该文件的内容复制自以下原始报告:https[:]/www[.]rferl[.]org/a/iran-dron-program-threats-interests/31660048.html

 


一旦用户启用宏内容,下面的AutoOpen()函数就会被执行,该函数使用 "PictureFormat.Brightness = 0.5 "增加图片亮度,显示出标题为 "Iran Deploys Drones To Target Internal Threat, Protect External Interests. "的内容。

 


然后,攻击者利用AutoClose()函数将DNS后门放到系统中。关闭文档后,AutoClose()函数被执行,从word文档第7页的文本框中读取一个PE文件,并将其进一步解析为所需的格式,如下图所示,"MZ "头是字节流的最初两个字节。


然后,这个PE文件被进一步写入Startup(启动)文件夹,以便通过宏代码保持持久性,如下图所示。通过这种策略,每当系统重新启动时,DNS后门就会被执行。


删除的二进制文件是一个基于.NET的名为“DnsSystem”的DNS后门程序,它允许威胁行为者远程执行系统命令,并在受感染的计算机上上传/下载数据。

下面,我们将分析已删除的基于.NET的DNS后门及其内部工作原理。



Lyceum .NET DNS 后门

Lyceum 团队开发了一个基于.NET的DNS后门,在他们最近的活动中被广泛使用。正如前面所讨论的,,后门是从启用了宏的Word文档中复制到受感染系统的Startup(启动)文件夹中的。

md5: 8199f14502e80581000bd5b3bda250ee

文件名: DnsSystem.exe

攻击链分析

基于.NET的DNS后门是开源工具DIG.net(DnsDig)的自定义版本,可在此找到:DNS.NET Resolver (C#) - CodeProject. 。DIG.net是一个开源的DNS解析器,可以用来对DNS服务器进行DNS查询,然后解析响应。攻击者已经自定义和添加了代码,允许他们在自定义的DNS服务器上执行各种记录的DNS查询,解析查询的响应,以便远程执行系统命令,并通过利用DNS协议从命令和控制(C2)服务器上传/下载文件。


最初,恶意软件通过获取域名 "cyberclub[.]one"=85[.]206[.]175[.]199的IP地址,使用Dns.GetHostAddresses()的DIG Resolver功能设置了一个攻击者控制的DNS服务器,这又触发了对cyberclub[.]one的DNS请求来解析该IP地址。现在,这个IP被关联为自定义攻击者控制的DNS服务器,用于所有由恶意软件发起的进一步DNS查询。

 

接下来,Form Load函数会根据当前Windows的用户名生成一个独特的BotID。它使用CreateMD5()函数将用户名转换为其MD5等价物,并将MD5的前8个字节解析为BotID,以识别被恶意软件感染的用户和系统。


现在,后门需要从C2服务器接收命令,以执行任务。 后门发送一个初始DNS查询到 "trailers.apple.com",其中域名 "trailers.apple.com "在启动DNS请求之前与先前生成的BotID相连接。然后,DNS查询被发送到DNS服务器,以便通过向BeginDigIt()函数传递三个参数来获取所提供域名的 "TXT "记录: 

  • Name: 目标域名 - EF58DF5Ftrailers.apple.com 
  • qType: 要查询的记录 - TXT
  • qClass: Dns类别值 - IN(默认)。


BeginDigIt函数然后执行主DNS解析器函数 "DigIt"。这将发送DNS查询,以获取所提供的目标域名的DNS记录到DNS服务器,并解析响应,见下面的代码片断。


 

将Digit Resolver Code DigIt()函数字符串与Dig.Net工具的输出进行比较,如下图所示,我们可以进一步确定Dig.Net工具已经被Lyceum Group自定义,以开发以下基于.Net的DNS后门。

该恶意软件利用了一种被称为 "DNS劫持 "的DNS攻击技术,即DNS服务器被攻击者控制,这将使他们能够操纵对DNS查询的响应。现在让我们分析一下下面的DNS劫持程序。


如前所述,后门执行初始DNS查询,以获取域名EF58DF5trailers.apple.com的TXT记录。EF58DF5是基于Windows用户生成的BotID,以接收来自C2服务器的命令。

 

从上面的截图可以看出,进行DNS查询是为了获取域名的TXT记录:EF58DF5trailers.apple.com到DNS服务器。85[.]206[.]175[.]199,这是之前初始化的攻击者控制的DNS服务器。


这里是DNS劫持发生的地方。由于恶意软件发送跨越DNS查询,以获取TXT记录到攻击者控制的DNS服务器,攻击者控制的DNS服务器响应一个错误的响应,包括由后门执行的命令,如ipconfig,whoami,uploaddd等,如下图所示。

 

以下是后门收到的DIG.Net DNS响应,然后进一步解析,以便在受感染机器上执行命令。


上面的截图包括对攻击者控制的DNS服务器进行的DNS查询,以及目标域名EF58DF5trailers.apple.com。答案部分由查询响应组成,其中包括目标域名和TXT记录的响应,有两个值,"ipconfig" - 要执行的命令和 "1291" - 通信ID


接下来,Dig.net的响应是使用多个模式的重合代码例程来解析的,它从恶意软件收到的完整响应中解析出TXT记录值--上述的命令和通信ID。



接下来,根据从C2服务器收到的TXT记录中的命令,有三种功能可由Lyceum后门执行:

  • 下载文件 - 如果从DNS查询中收到的命令包括一个字符串。"downloaddd",它就会启动下载程序,并使用DownloadFileAsync()从URL下载该文件。URL将是TXT记录响应值的前11个字节,并将下载的文件存储在Downloads文件夹中,如下面的代码片段所示。这个功能可以被利用来在受感染的机器上投放额外的恶意软件。

  • 上传文件 - 如果从DNS查询收到的命令包括一个字符串。"uploaddd",在将TXT记录的响应值解析为两个变量:uriString(外部URL)和filename(本地文件)后,它使用UploadFileAsync()函数将磁盘上的本地文件上传至外部URL。这个功能可以被利用来溢出数据。


 

  • 代码执行 - 如果上述字符串中没有一个与TXT记录的响应相匹配,那么该响应将被传递给命令执行程序。在那里,TXT记录的响应被作为一个命令在被感染的机器上使用 "cmd.exe /c <txt_record_response_command>"执行,命令输出以DNS A记录的形式发送到C2服务器。


 

在这种情况下,我们收到的TXT记录响应,对攻击者控制的DNS服务器进行的DNS查询是 "ipconfig"。这个响应启动了后门的命令执行程序,因此命令 "ipconfig "将在受感染的机器上执行 - cmd.exe /c ipconfig


此外,该命令的输出被渗入到C2服务器,在Base64中编码,然后与通信ID和先前生成的BotUID连接,使用"$"作为分隔符。

 


  数据溢出模式: [base64encoded_command_output]$[communication_id]$[Bot_ID]


一旦命令输出被编码为上述模式,DNS后门就会通过DNS查询,以A记录的形式将输出发送到C2服务器,在多个查询块中,A记录的值由编码的命令输出组成。一旦命令输出被完全传输,一个 "Enddd "命令就会以Base64编码的数据溢出模式发送过去,以通知命令输出的结束,如下图所示。


 

解码A记录:


IPConfig 命令输出 -
 

Encoded A record = ICAgSVB2NCBBZGRyZXNzLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDogMTkyLjE2OC4.yLjEw$929$5686BB2F

Decoded A record =
IPv4 Address. . . . . . . . . . . : 192.168.2.10 $ ComID: 929 $ UID: 5686BB2F


End Command - 

Encoded A record = RW5kZGQ=$1291$$EF58DF5F 

Decoded A record = Enddd $ ComID: 1291 $ UID: EF58DF5F


云沙箱检测


 

总结

APT攻击者正在不断发展他们的战术和恶意软件,以成功地对其目标进行攻击。攻击者不断采用新的反分析技巧来逃避安全解决方案;恶意软件的重新包装使静态分析更具挑战性。

 

MITRE ATT&CK mapping:

 

T1059Command and Scripting Interpreter
T1055Process Injection
T1562Disable or Modify Tools
T1010Application Window Discovery
T1018Remote System Discovery
T1057Process Discovery
T1518Security Software Discovery
T1071Application Layer Protocol

 

IOC:

Docm Hash:

13814a190f61b36aff24d6aa1de56fe2

 

Exe Hash:

8199f14502e80581000bd5b3bda250ee

 

域名和URL信息:

cyberclub[.]one

hxxp://news-spot[.]live/Reports/1/?id=1111&pid=a52

hxxp://news-spot[.]live/Reports/1/?id=1111&pid=a28

hxxp://news-spot[.]live/Reports/1/?id=1111&pid=a40

hxxp://news-spot[.]live/Reports/1/45/DnsSystem[.]exe

 






[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2022-6-13 16:47 被梦幻的彼岸编辑 ,原因:
收藏
点赞3
打赏
分享
最新回复 (1)
雪    币: 1036
活跃值: (4999)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
suuuuu 2022-7-19 14:21
2
0
攻防对抗,无声的厮杀
游客
登录 | 注册 方可回帖
返回