吉娃娃窃密者:新型信息窃取恶意软件分析
感染链条分析
Reddit样本发现
我们的同事在4月9日发现了一个有趣的Reddit帖子,用户分享了一个通过Google Drive文档诱骗他们执行的PowerShell脚本。
PowerShell脚本行为
基于PowerShell的加载器启动了一个多阶段执行链,使用Base64编码、十六进制字符串混淆和计划任务来建立持久性。它会从备用C2域检索额外载荷,显示出模块化和注重隐蔽的设计。
初始阶段是一个简短的启动器,通过PowerShell的iex
执行Base64编码的字符串,绕过执行策略检查并静默运行。
计划任务设置和基于标记的载荷执行
反混淆后的脚本创建一个名为"f90g30g82"的计划任务,每分钟运行一次,持续调用逻辑块。它检查用户的Recent文件夹中是否存在".normaldaki"扩展名的文件,作为感染标记。
备用载荷检索和内存执行
最终阶段设置计划任务的触发器,并从多个域名检索.NET程序集,随后通过反射将解码后的吉娃娃窃密者载荷直接加载到内存中执行。
吉娃娃窃密者技术细节
初始执行
窃密者以DedMaxim()
函数开始执行,向控制台打印音译的俄语说唱歌词,这些字符串可能具有文化或个人签名意义。
浏览器和钱包目标定位
PopilLina()
函数设置内部操作,通过WMI查询计算机名和磁盘序列号,生成唯一标识符。Sosalnya.Metodichka()
函数检查系统中存在的浏览器数据目录,Armyanec01()
函数窃取登录数据、cookies、自动填充信息等敏感数据。
数据暂存和压缩
PawPawers()
函数将窃取的数据写入明文文件Brutan.txt,然后将整个文件夹压缩为".chihuahua"扩展名的zip存档。
加密技术
恶意软件使用Windows密码学API:下一代(CNG)函数通过AES-GCM算法对存档进行加密。虽然提供了认证加密,但对称密钥嵌入在二进制文件中,可通过分析恢复。
数据外传
VseLegalno()
函数创建WebClient实例,模拟二进制文件上传,将加密的".VZ"文件外传到C2服务器。
清理操作
完成任务后,窃密者使用标准文件和目录删除命令清除所有活动痕迹。
检测建议
- 监控频繁执行的计划PowerShell任务
- 检测Recent或Temp目录中的异常文件扩展名
- 在PowerShell日志中检测Base64解码与.NET反射结合使用
- 标记通过Windows CNG API使用AES-GCM的情况
MITRE ATT&CK映射
- T1059.001 PowerShell
- T1047 WMI
- T1555.003 浏览器凭据窃取
- T1041 C2通道外传
威胁指标(IOC)
- C2域名:flowers[.]hold-me-finger[.]xyz、cat-watches-site[.]xyz等
- PowerShell脚本SHA256:afa819c9427731d716d4516f2943555f24ef13207f75134986ae0b67a0471b84
- 载荷SHA256:c9bc4fdc899e4d82da9dd1f7a08b57ac62fc104f93f2597615b626725e12cae8