Pizzamarinarasadd/VawtrakAnalysis

GitHub: Pizzamarinarasadd/VawtrakAnalysis

对 Vawtrak 恶意软件的详细逆向分析,涵盖静态分析、动态调试、解密还原和行为特征提取等完整流程。

Stars: 0 | Forks: 0

# Vawtrak 分析 对臭名昭著的 Vawtrak 恶意软件的分析 在第一部分中,我尝试使用 Peview 和 PE explorer 等工具进行静态分析,但没有成功。 该恶意软件使用了某种加密方式。 通过使用 Binary ninja,我在字符串视图中发现一个字符串被交叉引用了 34 次,因此它将是用于解密该恶意软件的值。 图片 通过使用快捷键 x,我们可以看到使用该值的交叉引用,并且我们看到一个被直接命名为 decryption_routine 的函数。 图片 由于恶意软件的开发者使用了 2 个或更多包装器,我们需要专注于动态分析,使用像 x64dbg 这样的软件。 由于在 Binary ninja 中找到的地址显示的是基于默认内存基址的地址,我们需要通过将我们找到的 decryption_routine 地址(18010a1c9)减去基地址来克服 ASLR,得到值 10a1c9(相对地址)。 在调试器中,我们将此偏移量加到可执行文件的基地址上,得到 7FF99283a1c9。请注意,在调试器中每次执行的基地址可能会发生变化。 尝试通过软件和硬件断点来获取解密后的代码未能成功,因此我转向了 VirtualAlloc,通过在 VirtualProtect 上设置断点来获取解密后的恶意软件。 我在转储中找到了 MZ 头。 图片 通过命令行将 .reloc 的内容转储为 exe,并获得了未加密的版本。 这是加密和未加密版本的示例。 图片 继续分析,在字符串中我们看到它使用了 Nt 格式的函数,因此它使用了 Native API 以规避某些杀毒软件的检测。 让我们回到 Binary Ninja,加载解密后的恶意软件。 我们看到一个检查系统语言的函数。 图片 然后,在正确枚举之后进入 true 分支,即 sub_7ff7f6ded30c,被直接称为 language_strings_deletion。 图片 在 Binary Ninja 的主函数中,我们看到一个根据值解析命令的函数: 图片 第一个函数获取带引号的文本,如果不是引号,则解析其内部内容: 图片 内部的函数被调用 alloc_or_copy_token。 接下来,在处理命令块下,有该恶意软件功能的映射: I 用于检查架构。 F 用于文件操作,并检查下一个字符以执行相应的操作。 图片 图片 与 C&C 服务器的所有通信均通过 HTTP 协议完成。远程 C&C 服务器列表在 DLL 模块的数据段中存储为 XOR 加密的字节序列。 解密过程使用上述基于 LCG 的算法,并为每个存储的服务器名称使用不同的硬编码种子值。为了增加研究人员解密的难度,作者对每个服务器名称进行了 10 次加密。从分析样本中提取的部分 C&C 服务器名称如下: http://tewingal.ru http://starweltfary.ru http://altewing.com http://humanirest.com http://soplino.com http://blevanto.com http://monitruby.com http://poxmelo.com http://heehak.su Vawtrak 将其设置存储在注册表项中:"HKEY_CURRENT_USER\SOFTWARE\{%RND-KEY%}",其中随机密钥长度为 36 个字符,并由 LCG 使用从系统驱动器的卷序列号获取的种子值生成。
标签:ASLR, Binary Ninja, DAST, DNS 反向解析, PE文件, Vawtrak, Wayback Machine, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 内存Dump, 加密算法, 反汇编, 威胁情报, 开发者工具, 恶意软件分析, 木马分析, 端点可见性, 网络安全, 脱壳, 自定义密码套件, 解密, 逆向工程, 隐私保护, 静态分析