文件感染型病毒Expiro的新变种分析_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

文件感染型病毒Expiro的新变种分析

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


文件感染型病毒Expiro的新变种分析

译者:eridanus96 前言 在九十年代末和二十世纪初,文件感染型病毒成为了一个主要的威胁。文件感染型病毒将恶意代码添加到计算机的其他文件之中,如果简单地通过删除病毒文件来实现杀毒,被感染的合法文件也会随之丢失,这样一来,杀毒工作就变得非常棘手。时至今日,一些文件感染型病毒仍然流行,而且其感染过程变得日益复杂,例如W32/VirRansom、W32/Sality、W32/Xpaj和Expiro。本文就对其中比较典型的Expiro病毒最新变种进行分析。 Expiro病毒已经存在了超过10年,在此之间,作者对它的功能特性不断进行更新。Expiro的特性在于,它通过将病毒附加到主机上,从而在32或64位Windows系统上实现针对可执行文件的感染。这一病毒可以用来安装浏览器恶意扩展、修改浏览器安全设置或窃取账户凭据。 最近,我们发现了一个新的Expiro变种,它的感染方式发生了重大变化。在以前的变体中,Expiro会在入口点修改并获取代码,并在原始文件的末尾附加了病毒的payload,是一种典型的附加病毒。 但是,新的变种更改了基址重定位表(Base Relocation Table)的大小,并对内部的地址进行加密。因此,我们只能在正确还原原始的基址重定位表后,才能修复被损坏的文件,不能使用常规附加病毒的修复工具。由于加密了地址,直接增加了对该病毒分析的难度,并且还需要针对这一病毒再研发相应的修复工具。 病毒新变种分析 Expiro旧变种感染的文件,其基址重定位表不受影响,如下图: 并且,旧的变种不会修改重定位表的内容: 新的变种则减小了基址重定位表的大小(以红色标出): 而且,还会对其中的一部分进行加密: 为了在执行原始文件代码之前修复重定位,Expiro病毒首先会执行自己的恶意payload,随后,它解密重定位表,并动态重新加载所有地址,以确保原始文件能够正确运行。 重定位表的解密过程 解密过程涉及一个简单的XOR操作。第一步,先使用硬编码的XOR密钥对重定位表进行解密: 在解密后,将恢复原始基址重定位表的其余部分。EDI寄存器现在包含解密的重新定位数据: 第二步,使用公式Relocation_Address = NewImageBase + Offset + VirtualAddress来计算包含重定位地址的地址。 如图所示,这里的Relocation_Address = 0x950000 + 0x354 + 0x1000,所以在0x951354中的地址应该被重新定位(存储在eax中)。 第三步,使用公式Relocation_Value = OldValue + (NewImageBase-OldImagebase)计算重定位值。 在这里,Relocation_Value = 0x01001354 + (0x00950000 – 0x01000000),因此重定位值为0x00951354。 使用上述方法,我们就可以解密和修复Expiro感染文件的整个重定位表。此外,这还有助于我们在可执行文件的可选头部(Optional Header)中使用正确的值来计算和替换重定位表的大小。这样一来,就能确保感染病毒的文件,在删除恶意payload后可以恢复正常运行。 SHA-256值 f15b8fc3ca117ab38e3074adc6208666b2189259e447db8202ef85b9bbfc4537   本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。 原文链接:https://securingtomorrow.mcafee.com/mcafee-labs/expiro-infects-encrypts-files-to-complicate-repair/

文件感染型病毒Expiro的新变种分析