NetSupport Manager是一款以Windows为中心的跨平台远程控制软件,允许用户将运行Windows、Mac、Linux和Solaris操作系统的设备(或者运行iOS 和 Android操作系统的移动设备)作为单个控制台,同时对其他多台设备(可以是运行不同操作系统的设备)进行远程屏幕控制和系统管理。
根据NetSupport的官方宣传资料,在经过25年的发展之后,NetSupport Manager已在全球范围内被广泛采用,目前有超过1200万台计算机、服务器以及移动设备安装有该软件的不同版本。
网络安全公司FireEye在上周四(4月5)发表的博文中表示,他们在过去的几个月里一直在追踪调查一起通过受感染网站来传播虚假软件更新程序的恶意活动。
在调查的过程中,他们发现这些虚假软件更新程序分发的最终有效载荷居然就是NetSupport Manager。这意味着这款合法且早已商业化的远程控制软件已经遭到了黑客的滥用,而攻击者目的显然是为开展进一步的网络间谍活动。
FireEye表示,攻击者利用了受感染的网站来传播伪装成Adobe Flash、Chrome和FireFox更新的虚假更新程序。当受害者访问受感染的网站时,一个恶意JavaScript脚本文件会自动下载,大部分来自DropBox。这是一个云存储(网盘)网站,可供用户存储和分享本地文件。
这个脚本文件会收集基本的系统信息并将其发送到命令和控制服务器(CnC)服务器,并从服务器接收额外的命令,然后在wscript.exe(一种批次语言/自动执行工具)的帮助下从%AppData%执行另一个JavaScript脚本文件(命名为Update.js)以下载最终的有效载荷。
FireEye解释说,恶意软件的开发者对第一个脚本文件应用了多层模糊处理,并采用了一种棘手的方法来试图使逆向工程师对第二个脚本文件的分析变得更加困难。这种方法涉及到通过使用调用者函数和被调用者函数代码获取解密密钥,恶意软件的开发者可以确保一旦分析人员添加或删除任何内容,脚本将不会检索密钥,并会以异常终止。
在第一个脚本文件执行后,它会与CnC服务器进行连接,以编码格式发送系统的tid值和当前日期,并等待来自服务器的响应。在接受到响应后,脚本文件将作为名为“step2” 的函数执行。
这个函数的功能在于收集各种系统信息并以编码格式发送给CnC服务器,这些信息包括:体系结构、计算机名称、用户名、处理器、操作系统,域、制造商、型号、BIOS版本、反间谍软件产品、防病毒产品、MAC地址、键盘、指点设备、显示控制器配置和进程列表。
在接收到这些信息之后,CnC服务器会以两部分内容进行响应:content2和content3,而此时作为step2函数的第一个脚本文件会对这两部分内容进行解码。
名为“step3”的函数将在解码后的content3中的得到,这个函数在执行后将写入Update.js(即第二个脚本文件),它包含有用于下载和执行最终有效载荷的代码。
FireEye表示,这段代码接下来会利用PowerShell命令从CnC服务器下载多个文件,其中包括一个名为“7za.exe”的可执行文件,一个名为“Loglist.rtf”多信息文本文件(经FireEye证实,它实际上是一个受密码保护的压缩文件,其中包含有NetSupport Manager)、一个名为“Upd.cmd”的批处理脚本和一个名为“Downloads.txt”的文本文件。
其中,批处理脚本Upd.cmd被设计用于名为“7za.exe”的可执行文件,禁用Windows错误报告和应用程序兼容性,将远程控制客户端可执行文件添加到防火墙的允许程序列表中,添加运行注册表项或将快捷方式文件下载到启动文件夹以实现持久性,使用属性隐藏文件,删除自身不再需要的文件,并执行NetSupport Manager。在分析过程中,FireEye表还发现该脚本能够定期对NetSupport Manager进行更新。
在NetSupport Manager的帮助下,攻击者可以远程访问受感染系统、传输文件、启动应用程序、获取系统地理位置以及远程检索文件和系统信息。
值得注意的是,名为“Downloads.txt”的文本文件包含了一份IP地址列表。FireEye认为,这可能是已经受到感染的设备列表。从这些IP地址来看,它们分属于不同的国家和地区,但主要位于美国、德国和荷兰。