FreeBuf|MontysThree工业间谍软件分析
2020年夏季发现了针对性较强的工业间谍软件的活动 , 工具集中包含未知的C++模块 。 恶意软件作者将工具集命名为“ MT3” , 研究人员将工具集命名为“ MontysThree” 。
该恶意软件包括一组用于持久控制的C ++模块 , 使用隐写术从位图中获取数据 , 解密配置任务(屏幕截图 , 获取目标指纹 , 获取文件等)等 。 该恶意软件使用自定义隐写术 , 基于XOR的自定义加密 , 3DES和RSA算法进行解密和通信 。
传播方式初始加载程序模块在RAR自解压文件中 , 只有PE文件(伪装.pdf或.doc文件) ,其中一个(MD5 da49fea229dd2dedab2b909f24fb24ab)名为“Списоктелефоновсотрудников2019.doc”(“员工电话清单” , 俄语) , 另外还有“ Tech task.pdf”和“ invitro-106650152-1.pdf” 。 后者是俄罗斯医学实验室的名称 。 SFX脚本如下:
Path=%TEMP%\SavePathSetup=rundll32.exe “invitro-106650152-1.pdf”,OpenSilent=1Overwrite=1Update=UDelete=invitro-106650152-1.pdf
执行后 , SFX脚本会调用%TEMP%目录中已解压缩的可执行文件 , 并将其删除 。
技术分析执行流程如下:
本文插图
下表列出了四个模块及其功能 ,这些模块共享通用的通信规范 。 当处理诸如配置文件和执行日志之类的共享数据时 , 该恶意软件会初始化线程本地存储(TLS)中的结构 。
入口点DllEntryPoint的工作方式类似于构造函数 , 模块必须导出一个名为Open的函数 , 该函数不带任何参数(但可以解析命令行)并返回一个四字节的错误代码 。
本文插图
加载程序模块将加密数据的位图文件名作为参数提供给加载程序 , 加载程序会从像素数组解密下一个程序 。 在第一次迭代中 , 它提取隐写参数数据 。
本文插图
IID , IParam和ISize参数保存在像素阵列的前384个字节中 , 因此仅需要每个像素阵列字节的最后一位 。 该模块使用这些字段收集48个字节的配置结构 , 确定下一个解密阶段 。
本文插图
提取隐写参数后 , 使用两步算法对下一个程序进行解密 。 首先 , IParam算法从像素阵列的字节中选择bits 。 如果IID等于2 , 则对收集到的字节使用四字节轮回密钥 , 前四个字节解密的初始密钥硬编码为0x23041920 。 下一个字节的XOR公式为:key ^= 8 * (key ^ (key << 20))
解密结果并未注入到某个进程内存中 , 而是生成名为msgslang32.dll的文件放到磁盘上 。 加载程序使用Windows API函数LoadLibraryW和GetProcAddress来运行下一个阶段的Open函数 。
Kernel模块内核模块包含三个用于配置解密和C2通信的加密密钥 。 公用和专用RSA密钥分别以PUBLICKEYBLOB和PRIVATEKEYBLOB的形式存储在.data节中 , 用于加密C2通信、解密3DES密钥 。
第三个3DES密钥也以加密形式存储在.data节中 。 此密钥用于解密包含XML配置的.cab文件 , 该模块使用Window的标准程序“ expand.exe”解压缩.cab 。
XML配置包含恶意软件的各种“任务” , 例如对目标进行指纹识别 , 捕获屏幕截图 , 从%USERPROFILE%、 %APPDATA%、%APPDATA%\Microsoft\Office\Последние файлы中最新目录中获取扩展名为.doc , .docx , .xls , .xlsx , .rtf , .pdf , .odt , .psw , .pwd的文档列表 。 Последниефайлы翻译成俄语为“最近文件” 。
推荐阅读
- 大话百科天地|“工业4.0”将引领全球制造业再出发,物向联网、智能企业、智能产业迈进
- 红星新闻|5G赋能影视城深度工业化,象山影视城要从1.0升级到2.0
- 互联网|周宏仁:工业互联网核心是先进的数据分析和处理
- 起重汇射频集成|阿尔法工业遥控器怎么样?
- FreeBuf|前微软工程师窃取千万美元:自己买车买房,同事做替罪羊
- 互联网|贵阳:统筹网络、平台、安全三大领域 全力推进全市工业互联网建设
- 工业互联网|计算机领域哪些技术的发展前景较好,本科生如何进入这些领域发展
- 塑料|科技创新助推塑料加工业由大变强
- 倪光南|倪光南:针对工业软件卡脖的三点建议
- 虚拟现实|云南首个工业级AR技术变电运检辅助系统成功应用