长亭百川云 - 文章详情

针对一道面试题样本的详细分析

安全分析与研究

62

2024-07-13

安全分析与研究

专注于全球恶意软件的分析与研究

前言概述

原文首发出处:

https://xz.aliyun.com/t/14134

先知社区 作者:熊猫正正

群里有朋友私信我,说面试的时候需要分析一个样本,最后没有过,说只分析停留在外壳代码,没有深入进去,让我有空帮忙看看,简单看了一下这个样本,发现有点意思,给想从事恶意软件分析的朋友一些参考。

详细分析

1.样本无加壳,编译时间为2022年1月13日,如下所示:

2.主体代码结构,如下所示:

3.进入sub_405200函数,很明显对某个内存地址进行了赋值操作,如下所示:

4.最后跳转执行该地址代码,如下所示:

5.该内存地址是通过GlobalAlloc动态分配的,如下所示:

6.将shellcode代码,拷贝到分配的内存地址当中,如下所示:

7.赋值之后的内存代码,如下所示:

8.解密shellcode代码,如下所示:

9.解密之后的shellcode代码,如下所示:

10.跳转执行解密出来的shellcode代码,如下所示:

11.外壳代码基本上就分析完了,进入shellcode代码,获取相关函数地址,如下所示:

12.解密第二段shellcode数据,如下所示:

13.通过VirtualAlloc分配内存空间,然后将第二段shellcode解密拷贝到分配的内存空间,如下所示:

14.跳转执行到第二段shellcode代码,如下所示:

15.第二段shellcode代码,如下所示:

16.分配内存空间,如下所示:

17.将shellcode代码中payload数据拷贝到分配的内存空间当中,如下所示:

18.拷贝完成之后内存空间,如下所示:

19.将payload代码加载到00400000内存代码中,如下所示:

20.跳转到加载到内存的payload代码入口点执行,如下所示:

21.main函数主体代码,如下所示:

22.查找程序中资源数据,如下所示:

23.获取资源数据到内存当中,如下所示:

24.解密出payload数据,如下所示:

25.使用CLR非托管接口调用payload恶意代码,如下所示:

26.调用payload的恶意类代码,如下所示:

27.payload的恶意类代码,如下所示:

28.恶意类代码加载程序中的资源数据,资源数据,如下所示:

29.该资源数据包含的恶意payload为NET语言编写并使用.NET Reactor加壳,如下所示:

30.脱壳之后,动态调试,解密出payload相关数据,如下所示:

31.通过分析payload为RedLine Stealer窃密木马,会枚举Chrome和Opera GX Stable 的登录数据、Web 数据、Cookies文件夹,如下所示:

32.搜索以下加密货币相关Google Chrome、Microsoft Edge和Mozilla Firefox扩展是否存在,解密出硬编码的搜索的加密钱包扩展列表,如下所示:

加密钱包列表,如下:

到此该面试题样本基本就分析完毕了,可以判定该样本为RedLine Stealer窃密木马。

总结结尾

说点题外话,做安全研究一定要多动手,不管是恶意软件研究,还是做其他方向的安全技术研究,一定要自己多动手研究,看别人的报告或分析,只能学到很少很少的东西,多动手是学习安全的唯一方法,当你真正动手分析和调试一个样本或一个漏洞的时候,你才能学到真正的安全技术,纸上得来终觉浅,绝知此事要躬行。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2