首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

APT 1个月前 admin
154 0 0
:首发先知社区:https://xz.aliyun.com/t/14295首发作者:qianlan

前言

此次分析的样本从威胁情报渠道获取,经过同源分析关联到APT组织SideWinder使用的后门WarHawk,相比以往样本,此次样本从恶意代码执行流程和功能模块都做了重大修改,目标该组织正在积极的对WarHawk后门武器进行重构。

样本使用了白加黑、DLL劫持两种手法执行恶意代码,恶意代码被嵌入在DLL中,此DLL经“Dbghelp.dll”修改而来,正常exe程序加载被劫持的dll,执行嵌入在DLLmain函数中的恶意代码。

相比于以往的WarHawk后门,此次样本使用了TLS加密通讯,程序中包含着多个并不执行的代码分支,这些分支属于原有的WarHawk后门,在初始化、持久化等执行流程有较大的改变,但是功能模块也并不健全,可能是SideWinder组织打包的一个临时版本后门。

背景

SideWinder(响尾蛇)组织,又名 Rattlesnake 或 T-APT4,据信是有印度背景的APT团伙,其主要针对周边国家政府机构等重要组织开展攻击活动,窃取敏感信息。

WarHawk后门最早是由Zscaler在2022年10月被发现和报告。

目录

公众号不太方便看文章结构,放个目录。首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

一、样本概述

1.1 样本信息

初始样本是名称为“SIR_206_48_MON_28_03_2024.img”的光盘映像文件,解压可获得两个PE文件。首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构其中exe程序为intel公司的文件图标和过期签名信息白名单程序,文件名后接若干空格掩盖exe后缀,作为诱饵文件诱导用户运行。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

而dll文件是在dllmain函数中包含恶意程序的被劫持dll。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

1.2 白名单程序exe

exe程序主函数结构如图,用户定义的字符和程序执行与“IntelWiDiUtils64.dll”中部分正常导出函数十分类似,经过分析主要为intel组件相关的程序,并未包含恶意代码。首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

1.3 DLL劫持

exe程序运行会加载“IntelWiDiUtils64.dll”,正常的IntelWiDiUtils64.dll是Intel WiDi(Intel Wireless Display)的一部分,它是用于管理和支持Intel WiDi功能的动态链接库文件。

但通过导出函数比对,正常“IntelWiDiUtils64.dll”(下图 左)与次样本同名dll(下图 右)导出函数的类型和数量均不一致。取此名的目的是为了迷惑用户认为exe和dll文件均为Intel关联的正常程序,并且在dll文件中内置了恶意功能代码。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

通过恶意dll导出函数类型和导出函数比对,发现此动态链接库原型为Dbghelp.dll,并且在原有258个导出函数新增一个WinNextCheckIfConfigIsAttributionWorthy()函数。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

同时修改了DLLmain函数内置恶意代码,正常Dbghelp.dll入口函数如图。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

恶意“IntelWiDiUtils64.dll”入口如图,可以看到有进程、线程创建,文件管理等敏感操作。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

还有一显著的特征是,对被劫持dll所有的原有导出函数做了重定向,重定向函数与原型相比并无修改,只是嵌套了一层调用。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

1.4 恶意代码同源分析

样本中包含很多正常执行流程以外的代码,这些不执行的代码分散在不同的分支中。其中一块不执行的代码如下。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构其中包含的json格式的待填充字符,以及检查执行代码的时区是否为“巴基斯坦标准时间”功能,与厂商zscaler报告中APT组织SideWinder使用的WarHawk后门一致。

"_hwid""%s""_computer""%s""_username""%s""_os""%s"}
报告原文:
https://www.zscaler.com/blogs/security-research/warhawk-new-backdoor-arsenal-sidewinder-apt-group
首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

其他代码分支也有多处特征WarHawk后门有同源性,但相比于原有的WarHawk后门,整个病毒样本功能并不完善,并且嵌套着以往的部分代码,在病毒开发的角度看来应该是在做迭代,尤其是更新了加密通讯。此样本更像一个临时版本。

1.5 威胁情报同源分析

此次从样本提取到域名“ctd2.police.fia-gov.com”、IP:port“64.46.102.63:8443”


C段地址64.46.102.0/24被APT组织SideWinder大量利用,与情报提及的JA3S测绘端口一致,均为8443端口。首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构测绘语句

cert="636374218887077946883308642409602363854605580376"
首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

以及根域名“fia-gov.com”在同一篇报告中被例举。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

二、样本执行流程

2.1 白exe程序加载被劫持的dll

exe程序在导入函数库中加载被劫持dll的WinNextCheckIfConfigIsAttributionWorthy()函数。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构函数原型如下,实际上其没有任何功能。系统在加载DLL时会自动调用DLLMain函数,此操作只是为了执行DLLMain中的恶意代码。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

将指令断在“IntelWiDiUtils64.dll”DLLMAIN函数入口处,调试恶意代码段。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

DLLMAIN函数反汇编代码如图。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.2 DLLmain函数入口

进入DLLmain函数,创建线程函数执行核心恶意代码。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.3 反调试操作

单独调试线程函数程序,加载”user32.dll“,数百次循环调用函数”GetForegroundWindow”获取当前窗口的句柄,并且嵌套了sleep操作,判断当前窗口是否发生变化。以及做了无意义的堆内存开辟和释放。

实际上是花指令反调试操作,大量sleep操作减慢程序执行速度,使调试器或沙箱无法按预期运行,也有着一点点反沙箱的意思,再最终执行功能函数。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.4 初始化

do while计算字符长度。首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构拼接路径”C:programdataIntelIntelWiDiUMS64.exe“,如果目标路径不存在,拼接计划任务创建指令至CommandLine。首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构动态调试查看拼接结果。

"schtasks /create /sc minute /mo 5 /tn IntelWiDiUMS /tr C:\programdata\Intel\IntelWiDiUMS64.exe"
首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

通讯关联的dll库、Winapi函数名称初始化。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.5 持久化

创建路径”c:programdataIntel”,并将初始的白程序exe文件和恶意dll先后copy在此路径下。首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构创建进程,执行初始化过程中拼接的计划任务创建命令。无限期每隔五分钟执行一次”C:programdataIntelIntelWiDiUMS64.exe“

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构动态调试如图。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.6 信息搜集

计算机名、用户的个人文件夹路径、C盘卷序列号。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.7 网络通讯

2.7.1 API调用初始化

加载在初始化阶段拼接的字符“winhttp.dll”,逐个获取winapi地址,并将地址赋值给了一个变量用作后续调用。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.7.2 上线数据包初始化

C2地址域名“ctd2.police.fia-gov.com”和IP“64.46.102.63”硬编码于样本中,无限循环间歇发送请求。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

将字符“sd=”与系统信息的base64编码拼接。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构
首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.7.3 http请求初始化

拼接硬编码在样本中的http.user-agent参数。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

链路调用WinHttpOpen 、WinHttpConnect、WinHttpOpenReques、WinHttpQueryOptio、WinHttpSetOption、WinHttpSendRequest发送上线数据包,其中WinHttpOpenReques定义了参数,标志位WINHTTP_FLAG_SECURE,通讯将使用SSL/TLS加密通讯。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.7.4 tls请求发送

WinHttpConnect完成TCP三次握手、WinHttpSendRequest发送tls建立连接请求。在本地构造环境,捕获通讯流量如图。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

如果建立连接成功也会将初始化搜集并编码的主机信息“sg=…”发送至C2。

2.7.5 循环接收服务端指令

tls连接建立完成后,客户端调用inHttpReceiveResponse阻塞等待来自服务端响应,接收到响应包读取响应数据,在堆中分配内存用于存储服务端下发的指令。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

调用函数CryptStringToBinaryA,将字符指令转为二进制数据存储于v145中,在通过内存复制将最终的指令码放置于变量 v512中。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

通过switch…case结构,解析和执行来自服务端的指令,通过判断数组v512第二个元素的值,来执行功能代码,后续元素则是一些指令参数。

共计5个case选项五个功能模块。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

2.8 功能模块

指令码0x01,文件上传。

读取来自服务端的hex流存储为文件,文件流为服务端下发指令数组中第4个元素。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构指令码0x02,文件执行。

创建进程执行文件,文件目标为服务端下发指令数组中第4个元素。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构指令码0x03,文件下载。

根据给服务端下发的文件路径,从客户端下载文件内容,使用与上线数据包相同的通讯逻辑。首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构指令码0x04,获取盘符信息。

调用winapi GetLogicalDriveStringsW获取系统中所有逻辑驱动器的根目录路径,经过处理后,使用与上线数据包相同的通讯逻辑发送。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构指令码0x05,获取指定路径文件信息。

首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

调用FindFirstFileW函数查找指定路径(服务端下发)的文件或文件夹,通过FindNextFileW函数遍历同一路径下的其他文件或文件夹,获取文件信息,经过处理后,使用与上线数据包相同的通讯逻辑发送。

三、IOC

SIR_206_48_MON_28_03_2024.img:

216be0b5a0bbe6066604530539b647b6

IntelWiDiUtils64.dll:

d466c92a9ed1b0dd7a9789d24182b387

ctd2.police.fia-gov[.]com 

64.46.102[.]63:8443

参考: hxxps://twitter.com/ginkgo_g/status/1774639942628761827


感谢阅读~

原文始发于微信公众号(帅仔回忆录):首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构

版权声明:admin 发表于 2024年4月15日 上午10:00。
转载请注明:首篇报告!APT组织SideWinder(响尾蛇)积极对其后门武器WarHawk进行迭代重构 | CTF导航

相关文章