导语:本文分析了恶意软件所采用的权限提升和进程挖空技术。

介绍

恶意软件LockPos以其新颖且令人难以置信的先进和复杂逃避技术而闻名,传播和影响了许多销售点。其另一变种正在蔓延,采用了类似但不同的先进逃避技巧。它是旧版银行木马的一个新变种ursnif v3,从2017年11月开始传播。此外由于这个新型恶意软件的C&C服务器oretola.at已被当局sinkhole,所以很难重现该恶意软件的整个行为和真正目的。

然而,分析其隐形逃避技术非常有趣,许多当下的防病毒软件都看不见它。实际上,其最后一步将自己隐藏为explorer.exe进程的一个线程,这使得分析非常困难。为达到目的,恶意软件采用了基于Windows Native API的双进程挖空技术,利用系统进程svchost.exe提升权限,并在explorer.exe中注入恶意代码。

隐藏在explorer.exe进程之后,它才开始恶意操作,包括通联众多托管加密payload的已感染网站。其恶意行为的最后一步是定期与C2C服务器oretola.at通信,向其发送受害主机的信息。

该恶意软件可能通过垃圾邮件传播,邮件中包含一个URL,指向托管恶意样本的感染站点。我们在其中一个受感染的网站(意大利一个有关玩偶的博客)上发现了恶意软件样本marinellafashiondolls.com/_private/php3.exe。

图1:恶意软件解析的部分域名

技术

首先,此恶意软件几乎全部使用未公开功能的Windows Native API,这就导致防病毒软件难以监控。一旦执行了php3.exe文件,它就会从原目录中自删除,并复制自身到如下路径:“%APPDATA% Roaming  Microsoft  Brdgplua  ddraxpps.exe”。

一旦完成此操作,恶意软件就会开始其恶意行为。各个阶段总结如下:

1、在挂起模式下使用CreateProcessA创建一个新的svchost.exe进程。

图2:创建svchost进程

图3:CreateProcessA函数参数

2、在挂起模式下使用OpenProcess创建explorer.exe进程的一个新线程,启用PROCESS_CREATE_THREAD和PROCESS_SUSPEND_RESUME标志。

 

图4: suspended模式下创建explorer.exe进程的一个新线程

3、在内存中开辟一个新段用来加载映射到svchost.exe进程的代码。

图5:创建新段

此时这个段是空的,将在下一步中填充。

4、使用memcpy函数复制payload到上一步中的内存段。

图6:使用 memcpy 函数拷贝Payload到之前创建的段

5、使用Windows Native API函数NtMapViewOfSection将已填充的段映射到svchost.exe进程。

图7:使用NtMapViewOfSection将已填充的段映射到 svchost.exe 进程

6、恢复svchost.exe线程以便在先前分配的段中执行操作。

图8:恢复svchost.exe以便执行已加载到段中的payload

7、Exit

至此我们对行为失去了控制,因为svchost.exe是系统进程,所以无法监视其内部行为。但我们可以看到:

l 恶意svchost.exe及其父进程ddraxpps.exe均终止。

l explorer.exe进程开始恶意行为,特别是它产生了与已感染网站的网络流量。

图9:explorer.exe进程产生的异常流量

因此,我们很有把握地推断,payload被注入到explorer.exe的线程中,而svchost.exe只是用来将恶意代码转移到explorer进程中的一个代理,以便使恶意软件更加隐蔽地执行。事实上,svchost.exe很可能会执行与上面相同的操作来实现其目的。看起来,第一阶段的过程挖空是用来提升权限的,从用户空间到系统空间; 第二阶段是完全隐藏用户的payload。

总而言之,在这个恶意软件分析中,真正具有挑战性的是不同寻常且有效的隐藏技术。事实上,许多复杂的恶意软件确实采用了进程挖空来隐藏自己,但不是这个两步走的版本。恶意软件采用权限提升和进程挖空,使得分析工作非常困难。

图10: 恶意软件使用了双进程挖空技术

源链接

Hacking more

...