TrickBot复活:使用新的Linux 变种 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

TrickBot复活:使用新的Linux 变种

ang010ela 资讯 2020-10-30 11:05:45
386720
收藏

导语:Trickbot 是久负盛名的银行恶意软件家族。

Trickbot 是久负盛名的银行恶意软件家族。10月12日,微软等发布公告称,微软联合FS-ISAC、ESET、Black Lotus Labs、NTT等毁坏了TrickBot 僵尸网络的C2基础设施。但不到半个月,Trickbot Linux变种随即出现,开始新一轮的攻击活动。

通信建立

Trickbot的Anchor 框架是2018年发现的后门模块。Anchor与C2的通信目前是使用DNS 通道。通信建立的过程中包含很多的步骤。

Parts of communication between Bot and C2

图 1: 僵尸主机与C2的通信

图 1是僵尸主机和C2之间的通信流。

· Part 1 :僵尸主机发送c2_command 0 到C2,其中含有客户端的信息,包括bot ID。一旦建立了连接,C2就会响应含有 signal /1/的消息。

· part 2:僵尸主机发送c2_command 1,C2响应bot_command。

· Part 3:僵尸进一步请求C2发送可执行文件,具体是根据接收到的初始的bot命令。

· Part 4:僵尸主机向C2发送执行的结果。

DNS 请求的创建

图1 中通信的每个部分都有3条不同的DNS 请求查询,如图2所示。

High-level overview of the DNS queries

图 2: DNS查询概览

图 2 是DNS 查询的概览图。每个查询在发送给恶意软件C2的数据类型上都有自己的格式,具体如下所示:

Query 0

僵尸主机 DNS 查询

image.png

0 – 表示type 0查询

UUID – 僵尸主机生成的16字节长度的UUID

current_part – 发送的数据的当前部分

total_parts –  数据分割的部分数

anchor_dns –与C2通信的Anchor bot的类型

Bot_GUID – 生成的GUID根据Windows和Linux 平台的不同而不同

c2_command –C2命令

content – 根据命令类型要发送的内容

Anchor 模块会根据平台的不同生成 GUID:

image.png

发送到C2的每个命令后面都有其自己的内容集(表2):

122_副本.png

因为DNS name长度最大为 255 字节,发送的数据是分段进行的。这也就解释了为什么type 0查询中有current_path 和 total_parts 2部分。下面是数据分割的算法伪代码:

def get_total_parts(c2, data):
    divider = ((0xfa - len(c2)) >> 1) - 0x18
    size = len(data)
    return (size / divider) + 1

发送给C2的数据在与密钥进行异或计算后会被构造成子域名。密钥仍然是0xb9。

下面是发送给c2_command 0的数据示例:

image.png

C2响应

在查询的每部分都发送后,C2就会用IP 地址响应。僵尸主机会用该IP来获取id值,并用于下一个查询序列。

def get_identifier(IP):
    return inet_aton(IP) >> 6

Query 1:

僵尸主机DNS 查询

Windows平台和Linux平台都有相同的type 1查询。同样地,数据会在与密钥进行异或计算后会被构造成子域名。密钥仍然是0xb9。

1 < UUID > < dw_Identifier >

· dw_Identifier – C2为query type 0发送给僵尸主机的值

C2响应

C2 会响应一个IP。给IP 会传递给相同的函数作为伪代码的get_identifier,生成的值是final query type 中的数据大小。

Query 2:

僵尸主机DNS 查询

Windows平台和Linux 平台对type 2都有相同的查询。

2 < UUID > < dw_Identifier > < dw_DataReceivedSize >

· dw_Identifier –与query type 0中C2发送给僵尸主机的值相同

· dw_DataReceivedSize – 接收到的数据大小。

僵尸主机会持续发送query type 2查询,直到从C2接收到的数据的大小与C2 发送的值相匹配为止。

C2 响应

对每个type 2 DNS 查询,C2 会响应一个 IP 记录列表。IP 列表如图3所示,是数据如何构造的一个结构。

Records of IPs sent by the C2

图 3: C2 发送的IP 记录

图4是C2 发送的IP 记录的PE 文件payload 示例:

Example PE file payload

图 4: PE文件 payload示例

结论

Anchor的C2 通信的复杂度和僵尸主机可以执行的payload 不仅反映了Trickbot 背后的攻击者的能力,也显示了其不断创新的能力。可以看出,许多攻击者都在构造跨平台编译的恶意软件家族,同时,安全研究人员也需要重新评估Linux系统的安全实践以确保可以应对逐渐增加的威胁。

本文翻译自:https://www.netscout.com/blog/asert/dropping-anchor如若转载,请注明原文地址:
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务