新型自我保护USB木马能够躲避检测(译)

目前,在USB设备中发现了一种独特的窃取数据木马,它和其他典型的窃取数据的恶意软件并不相同。这个木马程序的每个实例都依赖于它所在的特定USB设备,并且在被感染的系统上不会留下证据。此外,它使用了一个非常特殊的机制来保护自己不被复制,这使得它更加难以检测。

下面将介绍这个恶意软件的技术细节。

其他恶意软件使用传统的方式让用户运行它,比如自动运行文件或生成快快捷方式,而这款USB木马则使用了另一个方法,这种方法依赖于存储在USB设备中的便携式应用程序,例如USB驱动器上的Firefox,NotePad++和TrueCrypt等。

恶意软件通过将自身以插件或动态链接库(DLL)的形式,插入到应用程序的命令链中。因此,每当执行这些应用程序时,恶意软件便会在后台运行。
然而,真正使这个恶意软件与众不同的是其自我保护机制。

保护机制

这款恶意软件包含6个文件。其中四是可执行文件,其他两个包含配置信息。为了保护自己免受复制或是逆向工程,恶意软件使用了两种技术。
首先,文件是采用AES128加密的;其次,文件名是密码元素经过计算后生成的。

AES加密密钥是由唯一的USB设备ID计算的,并且和托管恶意软件的USB驱动磁盘性能相关,因此,恶意软件只能在特定的USB设备上运行成功。

在恶意软件执行链中的下一个文件的文件名为加密元素(实际文件的内容和它的创建时间的8个字节串联)经过SHA512计算结果的前5个字节。

正因如此,这种恶意软件的每个实例的文件名都是不同的。此外,将恶意软件复制到另一个地方时,文件创建时间会发生改变,这样之前发生的恶意行为就不能被复制。为更好地理解命名技术,请参阅下面的图片。

分析这款恶意软件很具挑战性,因为我们没有接触到任何恶意的USB设备。

此外,我们没有病毒释放器,所以在进一步分析中,在可控的条件下我们未能构造出一个被攻击的usb驱动。

只能对提交的文件进行分析,所以就要结合常见的USB磁盘属性,通过暴力破解,获得设备的ID。此外,恶意软件中的文件成功解密之后,我们必须找到可执行文件和配置文件的正确顺序,因为在复制文件得到样本的过程中,我们已经改变了样本中文件的创建时间戳。

恶意软件的执行流非常简单。每个程序加载器依次加载并执行接下来的程序加载器,加载程序是通过上面提到命名技术计算出来的hash来辨别的。然而,执行过程必须从第一级加载程序开始启动,否则恶意软件将使自身中断。

图一

图一

第一阶段程序加载器

第一阶段加载程序是恶意软件的起点,它的主要目标是诱骗用户将它运行。
这可以用多种方式进行,但最有趣的是使用便携式应用。我们已经见到过的有便携式的Notepad++中被植入恶意插件,以及一个便携式的TrueCrypt中出现恶意的“RichEd20.dll”。这个加载程序还会检查它是否是从USB设备执行的,并且是否可写入。这一点很重要,因为payload会将窃取来的数据存储在这里。

第二阶段加载程序

第二阶段加载程序会使用到位于第一阶段的hash,随后,它的配置文件会使用它自己的hash。配置文件中包含需要验证的父进程的加密名称。
这是一个反调试的办法,如果恶意程序运行在一个不同的父进程下它自身将会中止,比如一个调试器。
最后,配置文件的哈希被用来计算第三阶段加载程序的名字。

第三阶段加载程序

第三阶段加载程序处理一些anti-AV的检查。
如果检测到有名为“avpui.exe” (卡巴斯基安全软件)或是“AVKTray.exe” (G数据安全软件)的进程在运行,执行将会并停止。
它的配置文件通过与之前相同的技术被发现,作为可执行的payload。
管道名称包含的是从计算机名称SHA512计算得出结果的前30字节。

有效载荷

最终,有效载荷实现了自动窃取数据的功能。可执行文件被注入到一个新的进程“%windir%\system32\svchost.exe -k netsvcs”中。配置数据则应包括以下几方面的信息,即收集哪些数据、数据被如何加密、数据被存储的地方。

输出目标必须在相同的移动设备上,在我们分析的情况下,它被配置为窃取所有的数据文件,如图片或文件,整个windows注册表树(HKCU),所有驱动器的文件列表,还有使用一款名为“WinAudit”的开源应用程序收集到的信息。
它用椭圆曲线加密方法将窃取来的数据加密。

结论

总的来说,自我保护的多级恶意软件是个关键的技术,同时这个数据窃取有效载荷是非常强大的,特别是它不会在受影响的计算机上留下任何证据。当USB设备被移除的时候,没有人可以找到什么数据被窃取了,同样,重新设计恶意软件将一个数据窃取的payload变成另一种恶意payload也不会太难。

这款恶意软件还不是很普遍,然而,它拥有的能力可以用于进行有针对性的攻击(APT),尤其是那些考虑到安全问题而没有连接到互联网的计算机。

ESET样本检测定义:

加载器:Win32/PSW.Stealer.NAI trojan 
有效载荷:Win32/TrojanDropper.Agent.RFT trojan 

加密样本的SHA1值:

2C188C395AB32EAA00E6B7AA031632248FF38B2E 
B03ABE820C0517CCEF98BC1785B7FD4CDF958278 
66D169E1E503725A720D903E1DFAF456DB172767 
4B2C60D77915C5695EC9D3C4364E6CD6946BD33C 
76471B0F34ABB3C2530A16F39E10E4478CB6816D

by Tomas Gardon, ESET

原文网址:
http://blog.eset.ie/2016/03/23/new-self-protecting-usb-trojan-able-to-avoid-detection/

如果您需要了解更多内容,可以
加入QQ群:486207500
直接询问:010-68438880-8669

Spread the word. Share this post!

Meet The Author

Leave Comment