恶意家族名称:
Stealc
威胁类型:
信息窃取软件
简单描述:
近期发现了 Vidar 和 Raccoon 等前段时间较为热门的信息窃取软件的“山寨”软件——Stealc,在暗网市场收到广泛的关注。
恶意文件分析
恶意事件描述
2023 年 1 月,在以俄语为主的暗网论坛 XSS 中,名为 Plymouth 的用户发布了一则详细的关于信息窃取软件 Stealc 的详细售卖通告。
该恶意软件与早前较为流行的 Vidar、Raccoon、Mars、Redline 等信息窃取软件有诸多相同之处。例如,它们都会下载第三方的附带签名的 DLL(sqlite3.dll, nss3.dll 等)。
Stealc 既可以被单独出售也可以被包装售卖为Malware-as-a-Service (MaaS)。Stealc 作为信息窃取软件主要窃取以下类型的信息:网页浏览器记录、浏览器扩展中的加密钱包、桌面应用中的加密钱包,以及邮件客户端软件的存储信息。同时,Stealc 还可以通过定制化的规则从受害者主机中窃取符合规则的相应文件。作为支持 MaaS 的恶意软件之一,购买 Stealc 的 TA 可以创建自己的 C2 服务器,并在管理员控制面板中查看、修改相应的 C2 数据。
恶意事件分析
千里目安全技术中心在日常的运营工作中发现一款专注于信息窃取的恶意软件 Stealc,千里目安全技术中心通过 VT Hunting 获得其样本,通过行为关联分析进而发现了一批 Stealc 的样本,从这批样本中我们得以一窥 Stealc 的发展史。下面以其中一个版本的 Stealc 进行介绍。
ATT&CK
功能分析
1、 动态解密
如下方的红色框图所示,该病毒在 Main 函数中插入垃圾数据 0xB8,用以混淆静态分析的结果。如下方的蓝色框图所示,通过两个相反的指令跳转到相同的地址,扰乱静态分析的结果。
Stealc 会对已加密的数据进行解密,下图红框即为 RC4 的解密密钥,蓝色框图即为 BASE64 编码的数据。
2、 动态解析函数地址
如下图所示,病毒通过FS寄存器逐步访问到 LDR_DATA.InMemoryOrderModuleList。
其访问的步骤及对应的元素如下所示:
1. 寄存器 FS 在 x86 系统下,指向结构体 TEB(下图左),在 x64 系统下寄存器 GS 指向结构体 TEB(下图右)。FS:[0x30] 为 x86 模式下 PEB 结构体的首地址。
2. PEB 结构体如下图所示,其偏移 0xC 即得到 _PEB_LDR_DATA 的首地址。
3. _PEB_LDR_DATA 结构体如下图所示,其偏移0xC得到类型为 LIST_ENTRY 的双向链表指针 InLoadOrderModuleList。Flink 指向下一个 ListEntry ,Blink 指向前一个 ListEntry。
4. InLoadOrderModuleList 指向的结构体 Windows 未导出,具体如下图所示。这里连续两次执行 mov eax, [eax],分别得到CurrentProcess->Fink,Ntdll->Fink,Kernel32,随后通过 mov eax, [eax+0x18] 得到 Kernel32->BaseAddress。
通过遍历 PE 结构体,验证并搜索到 Ordinals 表的地址,通过 Ordinal 依次遍历 Kernel32.dll 的导出表,并最终获取到 GetProcAddress 函数的内存起始地址,并通过此函数动态加载其它函数,这里不再赘述。
3、 检测是否可在当前进程内申请可读、可写、可执行的内存
申请一块 PAGE_EXECUTE_READWRITE 属性的内存,若申请失败则结束当前进程。随后申请一块大小为0x17C841C0的属性为 PAGE_READWRITE 的大内存区域,并向其中写入 0x00 数据,程序不会对第二次内存申请做任何成功/不成功的检测。
4、 检测当前系统的总物理内存大小
通过访问获取的 _MEMORYSTATUSEX 结构体数据,可以查看当前系统的物理内存以及虚拟内存,若当前系统的总物理内存小于 1G,则退出。此方法常用于判断当前进程是否位于虚拟环境中。
5、 检测当前用户所使用的默认语言
Windows 公布的 [MS-LCID]: Windows Language Code Identifier (LCID) Reference — 2021/6/25 文档中,可以得到 Stealc 在使用以下语言的系统中不会运行:
0x419 — ru-RU 俄罗斯语
0x422 — uk-UA 乌克兰语
0x423 — be-BY 白俄罗斯语
0x43F — kk-KZ 哈萨克语
0x443 — uz-Latn-UZ 乌兹别克语
6、 检测当前的主机名、用户名等
获得当前计算机的主机名、用户名是否分别为 HAL9TH、JohnDoe,若满足条件则进程退出。Windows Defender 模拟执行环境中默认的计算机名和用户名为上述名称,此方法用于逃避Windows Defender 的动态检测。
7、 检测当前系统的时间
若获得的当前时间在程序内置的限制时间 2023/3/8 (此样本)之后,则程序退出
8、 搜集当前计算机的指纹信息
1. IP 地址
2. 地理信息
3. 硬件 ID
4. 操作系统版本、操作系统架构(x86/x64)
5. 用户名、计算机名
6. 本地时间、语言
7. 键盘布局、CPU 信息、RAM 大小
8. 当前运行的进程
9. 已安装的应用
9、 C2 通信服务器返回的 base64 解码得到如下的数据:
870bffa1f8796945bd7026edea17b4b0103e99da39d7600f2f974a86bffbc4021d621f38|isdone|docia.docx|0|1|1|1|1|1|1|1|
其中以 | 分割的第一串字符串代表通信中的 SESSION,用于之后的通信。
后续从 C2 服务器拉取多个非恶意的 DLL 文件,用作后续加载使用。其中的一个通信流程(下载 SQLite3.dll )如下图所示:
拉取的DLL 文件列表如下所示:
1. sqlite3.dll
2. freebl3.dll
3. mozglue.dll
4. msvcp40.dll
5. nss3.dll
6. softokn3.dll
7. vcruntime140.dll
向服务器发送指令 “Browsers”,从 C2 获取要从受害者主机窃取的目标,返回的数据如下图所示:
解码后如下图所示:
向服务器发送命令 plugins 指令,以获取相应的配置数据:
解码后的部分数据如下图所示,获取的数据表示该恶意软件可以窃取受害者的钱包,并能够搜集本地存储的凭据、账户密码等私密数据:
Stealc 向 C2 发送的解码后的数据如下所示:
同时还将窃取如下文件的信息:
historyGoogle Chrome_Default.txt
cookiesMicrosoft Edge_Default.txt
historyMicrosoft Edge_Default.txt
cookiesMozilla Firefox_05rdgbi2.default-release.txt
autofillMozilla Firefox_05rdgbi2.default-release.txt
historyMozilla Firefox_05rdgbi2.default-release.txt
当恶意程序向 C2 服务器发送 “files” 命令时,C2 服务器将攻击者想要从受害者主机窃取的配置发送给恶意程序,其中一种配置如下所示:
IOC
解决方案
处置建议
1. 避免将重要服务在外网开放,若一定要开放,需增加口令复杂度,避免使用弱口令。
2. 避免打开可疑或来历不明的邮件,尤其是其中的链接和附件等,如一定要打开未知文件,请先使用杀毒软件进行扫描。
3. 安装信誉良好的防病毒/反间谍软件,定期进行系统全盘扫描,并删除检测到的威胁,按时升级打补丁。
4. 使用官方和经过验证的下载渠道,使用正版开发人员提供的工具/功能激活和更新产品,不建议使用非法激活工具和第三方下载器,因为它们通常用于分发恶意内容。
5. 重要的数据最好双机备份或云备份。
深信服解决方案
【深信服终端安全管理系统EDR】已支持查杀拦截此次事件使用的病毒文件,请更新软件(如有定制请先咨询售后再更新版本)和病毒库至最新版本,设置相应的防护策略,获取全方位的病毒防护;
1、 事前防御:通过暴力破解检测、远程登录认证、漏洞扫描修复、实时防护等策略为终端进行日常加固,降低勒索入侵风险;
2、 事中响应:文件加白二次认证、勒索诱饵防护、AI人工智能引擎检测等对勒索威胁文件进行高效检出,勒索病毒难以落地,无法加密;
事后溯源:高级威胁可视化还原入侵攻击链,排查企业内网存在风险点,全网威胁狩猎潜伏攻击,扫清内网威胁。
【深信服云网端安全托管方案】依托于安全托管中心,深信服云网端安全托管方案“见招拆招”,针对勒索病毒复杂的入侵步骤打造了全生命周期防护,构建勒索风险有效预防、持续监测、高效处置的勒索病毒防御体系。
【扫描二维码免费申请EDR、云网端安全托管试用】
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...