Andromeda木马分析

xiaoeryu Lv5

样本简介

MD5 文件类型
44ff2421bbd7918c6ad68da4fa276e02 exe

攻击流程

详细分析

行为分析

行为监控:释放了大量可执行文件并执行

执行监控:

进程监控:可以看到有大量个跨进程间操作;大致可以看到执行分了几个阶段:MD5.exe>hwwefuxasa.exe>MD5.exe>msiexec.exe>reyefiyevu.exe>msiexec.exe>wuauclt.exe

文件创建监控:

文件删除监控:

第一阶段:MD5.exe

释放了一些dll和exe文件在之后的下一阶段使用

创建temp文件夹路径并设置文件夹属性

在temp文件夹下创建文件

往文件内写入内容

设置文件时间

创建了一个exe文件&几个dll文件+ric文件

启动heswfuxasa.exe

设置注册表启动heswfuxasa.exe启动附加调试器

第二阶段:heswfuxasa.exe

通过GetProcAddress来获取所需的函数

LoadLibrary来加载所需的模块

以挂起的方式创建进程

卸载挂起进程内存空间数据

以读写执行的权限在目标进程创建开辟内存空间

在内存中写入数据

在执行到GetThreadContext的时候通过pContext参数指向的CONTEXT结构找到新的线程入口点

然后在调用ResumeThread之前通过process Hacker修改一下线程入口点方便附加调试(这里可以使用CC或者EB FE来修改入口点)

第三阶段:MD5.exe

用x32Dbg附加调试,再将此处的内存修改为之前的内容(因为前面为了方便调试修改了两个字节为EB FE

为当前进程加载新的资源模块

使用加密服务

拼接路径删除之前释放的文件

装载新的资源模块

继续以挂起的方式创建进程,创建自身的新进程并修改进程内存空间

仍然在挂起处暂停,修改线程入口点为无限循环,方便附加调试(将E8 90改为EB FE)

第四阶段:MD5.exe

获取系统快照信息来遍历进程:查找是否有卡巴的杀软avp.exe

释放文件msiexec.exe

将MD5.exe的内容拷贝到0F48F.tmp中,重新开辟一块内存空间并将数据读入开辟的内存

删除0FFBF.tmp文件

  • 使用ShellExecuteExW的方式启动msiexec.exe(可以设置注册表调试器附加启动)

第五阶段:msiexec.exe

获取当前用户使用的桌面语言:0x804表示简体中文

%temp%目录下创建新的wehexukaje.Gav文件并写入内容

并修改文件时间

重新创建befunvatur.dll、Ziniyucenaqe.dll、xizitixeqob.dll、salebolotew.dll、reyefiyevu.exe、nst5FFB.tmp、

启动新进程reyefiyevu.exe

第六阶段:reyefiyevu.exe

通过IDA可以看到当前程序主要执行了,获取当前线程的句柄并修改优先级并加载xifuzinahi.dll的操作

加载xifuzinahi.dll之后做了一些开辟内存开辟,拷贝,获取模块以及字符串等操作

加载Ziniyucenaqe.dll获取用户默认的语言环境

加载Befunuvatur.dll后查看导=导入函数可以看到有一些进程和内存相关的操作,来动态调试一下

以挂起的方式创建进程msiexec.exe

以修改线程OEP处内存为无限循环的方式附加进程msiexec.exe

第七阶段:msiexec.exe

加载新的资源

获取释放的文件名并删除

继续创建傀儡进程启动msiexec.exe

修改线程OEP为无限循环EB FE

第八阶段:msiexec.exe

创建一个互斥体来防止多开

遍历当前进程

检测注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Disk\Enum下的键值

进入新写入的内存执行后续代码

将现有%temp%路径下的msiexec.exe拷贝到”C:\ProgramData\svchost.exe”

将”C:\ProgramData\svchost.exe”写入注册表自启动

使用文件映射(NtCreateSection+NtMapViewOfSection)的方式来执行远程进程注入

以挂起的方式创建wuauclt.exe

修改线程OEP为无限循环(EB FE

第九个阶段:wuauclt.exe

通过调用GetEnvironmentVariableW从环境变量获取启动程序的完整路径

再用SetEnvironmentVariableW传入空字符串来重置该变量

用获取到的系统卷信息创建一个互斥体防止进程多开

创建一个新文件文件名和后缀米随机并将自身复制进去,写入注册表自启动之后再将msiexec.exe删除

然后初始化网络创建新的线程

获取系统的版本号

查看注册表判断是否启用远程PRC限制

获取本地的IP

获取浏览器的cookie

通过对发送消息的格式和前面的一些行为来判断可能是属于仙女座(Andromeda )的样本

id:%lu|bid:%lu|bv:%lu|sv:%lu|pa:%lu|la:%lu|ar:%lu
id 值根据本地系统卷信息产生
bid 值是硬编码的,可能指编译id.
bv值也是硬编码的,可能指编译版本(目前是206h(518))
sv值代表受害机器的系统版本
pa值是调用ZwQueryInformationProcess API的返回值,用以确定OS是32位还是64位。
la值是根据www.update.microsoft.com的IP地址而生成的
ar值是调用CheckTokenMembership API的返回值,确认bot是否运行在管理员权限下。

加密前的字符串

第一次加密:自定义加密

二次加密:再经过base64加密

将数据发送往服务器并接收服务器返回的消息

这是从网上找到的仙女座C&C服务器的Web面板的图片

如果服务器可以正常连接服务器下发数据包,病毒程序根据接收到的包解密后得到的ID执行不同的操作

因为仙女座已经被摧毁后续的命令下发执行操作无法继续分析,通过前面的分析可以看到这是一个模块化的病毒样本,分阶段释放了大量的exe和dll文件最终注入了系统进程wuauclt.exe,并在多线程和内存中释放的多模块之间跳转执行并将上传和下载的信息都进行了加密处理一定程度上加大了分析的难度,具有较高的稳定性和隐蔽性。模块的功能有浏览器cookie抓取,本机信息获取等行为。

IOC

xdqzpbcgrvkj.ru
orzdwjtvmein.in
anam0rph.su
ygiudewsqhct.in
bdcrqgonzmwuehky.nl
somicrososoft.ru
pe.suckmycocklameavindustry.in
sc.suckmycocklameavindustry.in

释放的文件

文件名 MD5
Befunuvatur.dll 5E1BD554B134DAF7753021CA7AE9C362
Fewuxusahif.dll 1e1120080170a963da2dc9461789f1c1
hewefuxasa.exe 9537cf2d215b97bc3effadd74e1a75c9
Hunoqoriqop.dll ae057dff4e992c5208234b3d62b05f40
reyefiyevu.exe c86fc56810ae163cbd8a728c4d501948
salebolotew.dll d75174a7147f7a1c3fa59dcb60be70ad
vinoliwulab.dll e255130efe8242a6e2573ba63a667f2d
wehexukaje.Gav 85d804cd262bfc55dcd09bbec078c1e9
xizitixeqob.dll 08d784e44da8fcf358b2c932ee318293
Zayimahizo.dll 5a8f117565e4add93e564ad9ac086c85
Ziniyucenaqe.dll 439b2205e6e881e64dde45b0c71f4dfe
msqvfea.bat 92804812b5fd9459f7cf3c2d607804c1
msiexec.exe 92804812b5fd9459f7cf3c2d607804c1
msyalicw.com 92804812b5fd9459f7cf3c2d607804c1
msozpgci.exe eb069d27bae4c00dc581f670f2423bb8
  • 标题: Andromeda木马分析
  • 作者: xiaoeryu
  • 创建于 : 2022-11-14 22:01:58
  • 更新于 : 2022-11-14 22:14:52
  • 链接: https://github.com/xiaoeryu/2022/11/14/Andromeda木马分析/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论