导语:本文讲述攻击者通过恶意宏文件劫持桌面快捷方式,用户点击桌面快捷方式时恶意软件就会执行,用来传播后门。
宏文件是一种比较古老的技术了,但黑客还在使用恶意宏文件来传播恶意软件,只不过传播的方式更加高效也更加创新了。最近的一起案例中,攻击者就以一种间接的方式使用了宏文件,首先在用户系统中搜索特定的快捷方式文件,然后用下载的恶意软件的位置去替换该快捷方式。当用户点击修改的桌面快捷方式时,下载的恶意软件就会执行。
恶意软件执行后,会恢复原始的快捷方式文件来打开正确的应用。然后,恶意软件会组合其payload。恶意软件会从互联网上,下载常用的工具如WinRAR、Ammyy Admin来收集信息并通过SMTP发送回服务器。
宏和下载的恶意软件并不复杂,攻击者使用的方法也有一些继续的标记,可能是还没有开发完成。
图1. 恶意软件感染链
文档
攻击的感染链是以一个俄语写的恶意文档开始的,文中还有一个房子的图片。文档会提示用户开启宏来打开完整文档。
图2. 恶意文档片段
Word默认是未启用宏的,来防止一些潜在的安全风险,所以用户需要启用宏来使其工作。启用宏可能会让用户计算机受到一些潜在的恶意代码的攻击。
工作原理
一旦用户启用宏,就会尝试在用户桌面搜索快捷方式文件来替换对应的链接文件。目标主要有5个,Skype、Google Chrome、Mozilla Firefox、Opera和Internet Explorer。一旦找到匹配的快捷方式,就会根据名称和运行的环境从Google Drive和GitHub下载恶意软件。目前,恶意软件文件已经被删除了。
具体细节是,如果在用户桌面找到了Google Chrome的快捷方式,那么接下来会进行下面的动作:
1.如果不存在,就在%AppData%\Google\下创建一个目录;
2.下载payload到%AppData%\Google\chrome_update.exe;
· 如果.NET框架不存在,hxxps://raw[.]githubusercontent[.]com/microsoftstorage/vsto/master/chrome_update;
· 如果.NET框架存在,hxxps://raw[.]githubusercontent[.]com/microsoftstorage/vsto/master/dotnet/chrome_update。
图3. 指向不同payload下载路径的宏截图
3. 找到目标快捷方式,删除该链接;
4. 创建新的链接(新下载的payload)来替换原来的目标链接:.TargetPath = %AppData%\Google\chrome_update.exe
图4. 指向恶意软件的新快捷方式文件
5.恶意软件还会改变快速启动栏的链接:
在%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar中与Google或Google Chrome相关的链接。
6.然后会再次将快捷方式图标的链接执行恶意软件。
执行以上的步骤后,当用户点击桌面或快速启动栏的快捷方式时,恶意软件就会执行。
恶意软件如何运行恶意服务?
恶意软件执行后,首先会根据Windows的版本在释放WpmPrvSE.exe,然后启动WPM Provider Host service,该服务的描述是System-mode WPM Provider Framework Host Process(系统模式WPM提供程序框架主机进程)。
图5. WPM Provider Host service截图
还会在system32或SysWoW64中释放rar.exe和注册表。最后,恢复之前替换掉桌面和快速启动栏的快捷方式。
恶意服务工作原理
恶意软件工作时,恶意软件激活的恶意服务会下载最终的payload。首先,该服务每次会为从Google Drive和GitHub下载恶意软件包设定一个1小时的时间间隔。然后使用之前释放的WinRAR工具来打开还有安装文件、配置文件和其他工具的压缩文件包。
图6. Rar包的内容
该服务会从RAR压缩包中运行installer.exe文件。Installer.exe会使用Windows Certificate Services自带的certutil命令行程序。Windows Certificate Services可以进行Base 64编码和解码。Certutil会解码压缩包中的wsvchost.key到wsvchost.exe中。Wsvchost.exe其实是远程管理工具Ammyy Admin 3.5,会在C:/ProgramData/Ammyy文件夹下创建一个含有Ammy Admin设置的文件夹,并把setting3.bin文件放在文件夹中,该文件会改变Ammyy Admin的权限设定,允许特定的Ammyy Admin ID完全访问感染的系统。
图7. 有完全访问权限的ID
接着恶意软件会运行shell脚本stop_ammmyy.ps1,脚本可以让攻击之前就运行的Ammyy进程停止运行。
Installer文件又开启了另一个叫做WSVCHost的服务,WSVCHost服务会运行wsvchost.exe,继续用procdump从内存中备份WSVCHost相关的进程。
图8. WSVCHost截图
图9. procdump尝试备份的两个相关进程
在完成上述步骤后,恶意程序会继续使用certutil来编码备份的文件,然后使用WinRAR来把备份的文件压缩到treasure文件夹的两个文件中。
图10. treasure文件夹截图
这两个文件和系统信息以及执行日志会以附件的形式通过SMTP发回给恶意软件的运营者,具体是通过465端口连接到邮件服务器rambler.ru和meta.ua。恶意软件作者选择发给两个不同的邮件服务器,可能是想确保信息的成功传递。SMTP的凭证是硬编码的,但也可以通过下载的压缩包中的mails.ini文件进行更新。
图11. 连接到465端口的恶意软件截图
备份文件中的信息
分析备份的文件可以发现路由器的IP地址和Ammyy Admin ID。手动安装Ammyy Admin可以查看设置窗口,并且可以确认系统的ID与备份文件中的ID是匹配的。在知道了目标系统的Ammyy Admin ID,并通过恶意软件对攻击者ID进行授权后,攻击者就可以通过Ammyy Admin访问目标系统了。
图12. 路由器IP 地址和Ammyy Admin ID
图13. 手动安装的Ammyy Admin窗口
除了用户的Ammyy Admin ID外,备份文件的其他内容看起来暂时没什么用。攻击者可能只是想收集额外的信息。在分析过程中,研究人员注意到一些下载文件的改变和更新的方式,这说明恶意软件还在开发中。恶意软件可能仍处在PoC阶段,未来会出现更多的版本。
结论
该恶意软件是在安装时使用了宏文件,研究人员相信该恶意软件并未广泛传播,截止目前受害者比较少。但这种攻击的方式是值得注意的,未来该恶意软件的更新版本也需要注意。
因为Microsoft意识到攻击者可能利用嵌入的代码,所以默认是不启用宏文件的。了解系统宏文件的设定可以帮助我们在过滤攻击的同时使用宏文件,但在日常工作中还是建议不要启用从未知来源下载的文件中的宏。