目录
一、背景概述
二、分析详情
三、总结
2.1 百花齐放:编译语言的选择
2.2 瞒天过海:通信协议的丰富
2.3 如履薄冰:对抗分析技术
2.5 方兴未艾:自写特马的不断涌现
2.4 移花接木:CS 木马的新手法案例 1:Go 语言样本
案例 2:Rust 语言样本
案例 3:Nim 语言样本06
11
13
15
17
19
21
4323
26
28
30
32
36
38
4004
05
15
19
23
3206
案例 4:利用 ICMP 隧道通信样本
案例 5:利用 DNS 隧道通信样本
案例 6:多维度进行沙箱对抗
案例 7:特殊 Sleep 反沙箱
案例 12:恶意 LNK 白加黑木马
案例 13:Linux 远控木马
案例 14:Go 语言编写远控木马
案例 15:定制化伪装木马案例 8:通过 Hook 隐藏真实 C2
案例 9:使用自定义 base64隐藏 Shellcode
案例 10:将 Shellcode 伪装成 IPV4 或 IPV6 地址
案例 11:倒叙存储 Shellcode 和字符串等数据4
HW2022期间, 各类病毒木马层出不穷, 红蓝对抗日益激烈。
为提升病毒木马防护能力, 防守方根据往年防守经验研制出了针对各类木马, 尤其是
CobaltStrike木马的自动化检测方法, 为攻击者的木马投递制造了不小的难度: 微步在线云沙
箱专门开发了 “CobaltStrike场景检测” 功能, 基于情报检测、 静态检测、 主机行为检测、 网络行
为检测、 流量检测和日志检测等维度, 覆盖数百条特征规则, 为广大防守方提供了 “一站式” 的
CobaltStrike检测发现能力; 而攻击者则致力于提升木马的反检测能力, 通过选择多种编译语
言, 变换通信协议, 修改原生木马和自写木马等方式, 不断尝试绕过各类检测机制, 红蓝双方斗
得不亦乐乎, 着实 “战了个痛快” 。
HW2022落下帷幕之际, 微步在线样本分析团队对 HW期间出现的各类病毒木马进行了
汇总, 从逆向分析角度遴选出技术价值更高的样本进行了深入分析, 并据此总结了 HW2022中
木马的变化趋势:
• 编译语言方面, 攻击者开始倾向于使用多种语言, 可谓 “百花齐放” :除了往年已出现过的Go语言样本之外,
Rust、Nim 等语言的样本也陆续出现。
• 通信协议方面,攻击者为躲避流量检测,可谓“瞒天过海”:木马反连时使用的网络协议渐趋多样化,
ICMP 隧道和 DNS 隧道通信样本均有出现。
• 对抗分析技术方面,攻击者采用更丰富的技术手段进行分析对抗,避免在分析环境中运行,可谓“如履薄
冰”,判断父进程,判断是否有办公软件和时间检测等方式花样迭出。
• 对于HW中最为经典的CobaltStrike木马,攻击者也做了大量的创新,可谓“移花接木”:通过Hook
技术修改反连 C2、自定义 Base64 算法,Shellcode 装载 IPV4 地址等方式令人耳目一新。
• 最后,HW期间出现了部分 “特马”,这些“特马”一般不属于任何已知病毒家族,是资深的攻击者自主
设计编写,技术含量很高。我们预计各式各样的“特马”未来也将会不断涌现,可谓“方兴未艾”。6
2.1 百花齐放:编译语言的选择
案例 1:Go 语言样本往年的 HW, 大多病毒木马样本以经典的 C/C++语言编译, 其他语言较少。 而在今年, Go、
Rust、 Nim等语言编写的木马有逐渐增加的趋势, 其中以 Go语言样本的增加最为明显, 占据了
C/C++语言之外的主流。
相关样本攻击流程如下图所示, 主要使用白加黑技术。
7
样本执行后, 会在 %LOCALAPPDATA%目录下名为 appli, applic, chrome, firefox,
tenc, tence, cent, wec, wech, techa, Nete, Netea, soc, ap, te, tem, tmp, al, ali, ne任意一
个文件夹中释放 eyunbrowser.exe, libmlt-6.dll, ictl.dt这四个文件。 同时为了迷惑用户, 弹窗
提示缺少程序, 无法正常执行。
eyunbrowser.exe为白文件, libmlt-6.dll为黑 dll, 负责解密真正的加密载荷文件 ictl.
dt。 释放完成后主程序会调用cmd命令行, 将自身的文件删除, 并启动eyunbrowser.exe执行。
eyunbrowser.exe执行后, 会静态加载 libmlt-6.dll, 执行 DllMain入口函数, 读取 ictl.dt
载荷文件, 并且libmlt-6.dll所有导出函数均指向ds1导出函数, 而ds1导出函数负责执行载荷,
因此当白文件 eyunbrowser.exe调用 libmlt-6.dll任意导出函数都会触发载荷执行。
8
经分析可判断载荷为 Sliver生成的标准shellcode形式的 Beacon载荷。
Sliver 是一个开源的跨平台植入型 C2框架, 使用 Go语言编写, 由网络安全公司
BishopFox 于 2019 年底首次公开。 凭借其开源和易用性的优势, 我们预计将来会有越来越多
的攻击者使用。 当前微步的 TDP产品已经支持 Sliver家族的检测。
脱壳得到 Beacon载荷的本体后, 将其拖入 ida, 我们会发现样本入口点和之前其他 Go
样本有所不同。 Windows平台下常规编译的 Go程序, 入口点是 _rt0_amd64_windows。 是单
独一条 jmp指令。 如下图:
2022攻防演练木马专项分析报告-微步在线
文档预览
中文文档
44 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共44页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2023-05-03 01:08:02上传分享