前言概述
原文首发出处:
先知社区 作者:熊猫正正
群里有朋友私信我,说面试的时候需要分析一个样本,最后没有过,说只分析停留在外壳代码,没有深入进去,让我有空帮忙看看,简单看了一下这个样本,发现有点意思,给想从事恶意软件分析的朋友一些参考。
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片1-59-1024x151.png)
详细分析
1.样本无加壳,编译时间为2022年1月13日,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片2-59.png)
2.主体代码结构,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片3-60-1024x351.png)
3.进入sub_405200函数,很明显对某个内存地址进行了赋值操作,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片4-59-1024x417.png)
4.最后跳转执行该地址代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片5-55-1024x241.png)
5.该内存地址是通过GlobalAlloc动态分配的,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片6-53-1024x132.png)
6.将shellcode代码,拷贝到分配的内存地址当中,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片7-46-1024x488.png)
7.赋值之后的内存代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片8-42-1024x351.png)
8.解密shellcode代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片9-41-1024x327.png)
9.解密之后的shellcode代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片10-41-1024x353.png)
10.跳转执行解密出来的shellcode代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片11-36-1024x459.png)
11.外壳代码基本上就分析完了,进入shellcode代码,获取相关函数地址,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片12-29-1024x461.png)
12.解密第二段shellcode数据,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片13-26-1024x446.png)
13.通过VirtualAlloc分配内存空间,然后将第二段shellcode解密拷贝到分配的内存空间,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片14-23-1024x446.png)
14.跳转执行到第二段shellcode代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片15-21-1024x446.png)
15.第二段shellcode代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片16-17-1024x491.png)
16.分配内存空间,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片17-14-1024x460.png)
17.将shellcode代码中payload数据拷贝到分配的内存空间当中,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片18-11-1024x445.png)
18.拷贝完成之后内存空间,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片19-11-1024x445.png)
19.将payload代码加载到00400000内存代码中,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片20-10-1024x448.png)
20.跳转到加载到内存的payload代码入口点执行,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片21-9-1024x471.png)
21.main函数主体代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片22-9-1024x466.png)
22.查找程序中资源数据,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片23-8-1024x473.png)
23.获取资源数据到内存当中,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片24-8-1024x459.png)
24.解密出payload数据,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片25-8-1024x446.png)
25.使用CLR非托管接口调用payload恶意代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片26-7-1024x461.png)
26.调用payload的恶意类代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片27-7-1024x488.png)
27.payload的恶意类代码,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片28-7-1024x479.png)
28.恶意类代码加载程序中的资源数据,资源数据,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片29-7-1024x672.png)
29.该资源数据包含的恶意payload为NET语言编写并使用.NET Reactor加壳,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片30-6-1024x280.png)
30.脱壳之后,动态调试,解密出payload相关数据,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片31-5-1024x258.png)
31.通过分析payload为RedLine Stealer窃密木马,会枚举Chrome和Opera GX Stable 的登录数据、Web 数据、Cookies文件夹,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片32-5.png)
32.搜索以下加密货币相关Google Chrome、Microsoft Edge和Mozilla Firefox扩展是否存在,解密出硬编码的搜索的加密钱包扩展列表,如下所示:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/图片33-6-1024x626.png)
加密钱包列表,如下:
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/12/微信图片_20241204174247.png)
到此该面试题样本基本就分析完毕了,可以判定该样本为RedLine Stealer窃密木马。
总结结尾
说点题外话,做安全研究一定要多动手,不管是恶意软件研究,还是做其他方向的安全技术研究,一定要自己多动手研究,看别人的报告或分析,只能学到很少很少的东西,多动手是学习安全的唯一方法,当你真正动手分析和调试一个样本或一个漏洞的时候,你才能学到真正的安全技术,纸上得来终觉浅,绝知此事要躬行。
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/11/知识.png)
安全的路很长,贵在坚持!
![](https://www.malwareanalysis.cn/wp-content/uploads/2024/11/作者简介.png)