Andromeda木马分析

样本简介
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 进行许可。