警惕不明来源软件:伪装成Zoom安装包的Webmonitor RAT
星期一, 六月 15, 2020
由于疫情影响,近期在线会议需求急剧上升,Zoom作为一款流行的在线视频会议软件被广泛使用。近日,新华三安全攻防团队注意到,有恶意攻击者假借Zoom安装包之名,用以隐藏和传播Webmonitor RAT。攻击者将后门程序捆绑在正常Zoom安装程序上诱导用户下载,运行后会释放正常的安装程序并安装,误导受害者以为安装了正常的Zoom软件,但是系统中已经被悄悄植入了远控木马。
被植入的木马可以确认为RevCode Webmonitor RAT,该软件早在2017年就已经在黑客论坛上进行兜售,主要通过Web控制受害主机。这款假的安装包主要执行流程如下图,受感染的机器每次开机都会自动启动远控木马实现受害机的长期控制。
下表是以ATT&CK模型分解出的样本主要技术手段。从技术手段上来看,样本在防御绕过上使用的技术点最多,给静态检测和动态分析设置了极大的阻碍。
为了清晰攻击者的手法,新华三安全攻防团队对获取到的样本进行了深入分析。首先从样本的基本信息开始,从静态信息来看该样本使用delphi编写,没有使用任何的压缩壳等,然而在代码分析中没有看到安装程序的痕迹或是相关的恶意代码,整个代码只有一个简单的Form对象,明显与样本大小不符,恶意样本可能是采用某种隐藏的方式实现运行。
继续分析样本,在样本代码中发现一个有意思的片段,45440d处的汇编代码经过异或操作,eax寄存器必然为0,然而在45441e处的指令div为除操作,被除数为0会触发一个异常。
程序控制流在这个异常处改变,代码转入异常处理流程,样本巧妙的将恶意代码隐藏在此,并为恶意代码申请内存空间。
样本下一步使用sub_454018函数解码出的其余恶意代码并将其释放在申请的空间上,恶意代码的入口地址为申请空间的起始地址加上0x7fd4,入口地址被push在栈的返回地址上,最终经过retn指令跳转到新的恶意代码入口地址处执行。
恶意代码从这里开始了更多的恶意操作。
2.1 环境检测,对抗分析调试
进入释放代码后,样本会使用四种方法来检测当前运行环境,以分辨自身是否在杀软环境或是否在被分析调试中。第一种方法,调用CreateToolhelp32Snapshot函数获取当前运行进程列表,并将进程信息与预留信息进行对比。
检测的进程包括以下类型:
环境检测的第二个方法很有想法,一些安全研究人员喜欢将获取的样本进行一个特殊的命名,作者以此为检测点,比较当前样本名称是否包含敏感字段(Sample、Sandbox,Malware)来判断是否在正在被调试。
第三个方法为使用windows API 中的ZwQueryInformationProcess查询当前进程信息,根据debug相关信息判断进程是否正在被调试,如debug port等。
最后一个方法为使用FS寄存器获取进程PEB地址,通过PEB地址上的BeingDebugging标志位判断调试状态,该方法和Windows API函数isDebuggingPresent实现方法基本一致。
如果样本检测到当前环境有异常,则会退出进程。若环境正常,样本继续执行,判断自身是否是从%AppData%/Downloads文件夹中启动,如果不在该文件夹中,则会进入一个进程注入流程,启动notepad.exe并将一段 shellcode注入notepad.exe进程中。
2.2 进程注入,利用合法进程隐藏自身
进入注入流程后,样本会从自身释放出0x804个字节的shellcode和0x734个字节的参数进入内存,参数主要包括的是一些路径和需要写入的脚本信息。
随后,新建一个notepad进程,并在notepad.exe进程内两次申请和操作地址空间,将解码出的shellcode和参数注入noptepad.exe的地址空间中。
最后,样本通过QueueUserAPC函数实现APC注入,在notepad进程中执行shellcode,原样本执行结束退出,恶意行为由notepad.exe进程接管。
我们继续对shellcode和参数继续分析,这段shellcode长度较短,实际功能较少,主要功能为创建互斥量、拷贝样本至downloads文件夹、在开机启动文件夹创建脚本实现持久化和再次启动样本。shellcode在加载所需的动态链接库后,创建了一个将样本完整路径作为对象名的互斥量。
继续运行,样本读取了%AppData%目录路径,并在该路径下创建了一个Downloads文件夹,从栈上的参数可以看出,shellcode调用CopyFile 函数将原Zoom文件拷贝至Downloads文件夹下。
在Downloads文件夹中的Zoom.exe自拷贝后直接被重新启动起来,继续接管恶意行为。
为了实现样本的持久化,Shellcode最终会在开机启动文件夹内写入一个VBS脚本,脚本名称为Zoom.vbs。
脚本内容如下,功能也非常的简单,即使用wscript.shell对象启动位于%AppData%/Downloads文件夹下的Zoom.exe,每次受害机启动时,该脚本都会运行,实现受害机上的长期驻留。
至此,shellcode完成了拷贝、启动、持久化的任务,恶意行为又由Zoom.exe接管。
2.3 进程镂空,操作傀儡进程
被重启启动的Zoom.exe此时已经在%AppData%/Downloads文件夹下了,当执行流程再次进入目录判断时,会转入新的流程中继续执行。该流程中样本会向%temp%目录下写入Ulrs.tmp文件和ZoomInstaller.exe文件,ZoomInstaller文件为Zoom的安装文件,随后该文件会被ShellExcute函数打开并开始执行。
ZoomInstaller进程进行正常的安装任务,误导用户认为运行的是一个正常的安装程序。
当然,恶意样本进行如此多的工作不仅仅是为受害机正常的安装一个视频会议软件,它又在内存中释放了出一个可执行文件,该文件就是远控本体,但是该文件并没有被写入磁盘。
样本会再次启动一个与自身相同的Zoom.exe进程,启动时新的进程会被挂起,前一步被释放在内存的可执行文件会被进程镂空技术加载到新的进程当中并继续执行。
进程镂空技术实现是将被挂起的进程卸载掉原来的Section,并对该进程地址空间进行写入操作,通过读取和修改目标进程内的线程上下文信息更改执行流程,最终唤醒线程实现隐蔽执行RAT本体,这一过程没有远控相关的文件落地,十分隐蔽。
Zoom.exe又一次完成了使命,退出执行流程,顶着Zoom.exe的外壳执行的RAT接管了后面所有的任务。
2.4 原形毕露,远控受害主机
为了方便分析,先将内存中的可执行文件dump下来,查询该PE文件的静态信息发现该文件添加了UPX壳,需要先对压缩壳进行脱壳处理。
在脱壳后的样本资源段中,发现存在大量的WebMonitor字符串,该样本可能与WebMonitor RAT相关。
继续进行动态分析,运行中的恶意样本为了保证安全运行,攻击受害机前仍然会检测当前环境,相比于原始的Zoom.exe样本,检测手段更加丰富和多样化,例如会遍历windows服务并以XML格式进行输出。
输出的XML格式信息会被用于检测是否包含VMware tools,QEMU-GA等字段,以判断自身是否运行于虚拟机、沙箱中;如果在虚拟环境中,则会弹出错误告警并删除自身文件。
判断进程或是服务名来对抗检测分析只是比较常规的手段,除了常规手法外,一些比较巧妙的方法也被应用起来,比如判断电源选项中是否有温度监控来判断当前是否为真实环境。粗略统计该样本包含了约有24种检测环境、对抗分析的方法,一套组合拳起到了一定反分析、调试的作用,其中使用的包括但是不限于以下手段:
检测是否包含虚拟机相关服务;
检测注册表项判断是否在远程桌面环境中;
检测当前物理内存大小判断是否在仿真环境中;
检测系统电源选项是否有温度监控来判断是否在虚拟环境中;
检测网卡信息判断是否在虚拟环境中;
判断kernel32.dll库中是否存在wine_get_unix_file_name函数判断是否在wine环境中;
利用cpuid指令信息判断是否在虚拟环境中;
利用Rdtsc和GetTickCount和时间队列等时钟相关手段反调试;
获取当前线程上下文信息中是否有断点判断是否被调试;
使用IsdebuggerPresent、checkRemoteDebuggerPresent函数判断是否被调试;
使用AddVectoredExceptionHandler函数判断是否被调试;
绕过相关检测手段后,正式进入远控流程,样本会解码出所需要的域名、服务器地址等等信息,如域名”dabmaster.wm01.to”,端口443,路径/recv7.php和dns服务器。
为了连接上远程控制服务器,样本将8位随机数字字符与dabmaster拼接后进行md5操作,生成DGA域名进行查询,获取C&C真实地址。
最终该RAT会通过https协议与远程主机进行交互,并将收集到的系统硬件信息、序列号、注册表MachineGuid等相关信息通过数据段发送给远程主机。
同时,远程主机可以通过大量的预置指令对受害机进行控制,粗略统计,远控指令超过80个,覆盖了命令执行、屏幕监控、服务启停、注册表操作、硬件操作、设备操作、文件操作、键盘记录等等敏感行为,危害极大,下表按类列出了指令名称。
自此受害主机彻底失陷,沦为攻击者的肉鸡。在此,新华三安全攻防团队特别提醒您:
1. 不要下载和运行来历不明的文件,需要的安装文件请从官方等正式渠道获取;
2. 选择合适的防护设备和杀毒软件,目前H3C最新病毒库已支持从网络侧拦截该病毒。
如果您已经遭受感染,可以按以下方法清除恶意软件;
1. 删除开机启动文件夹下的Zoom.vbs文件;
2. 删除%AppData%文件夹下的Zoom.exe。
请用户进行敏感操作前,确认相关操作可能带来的影响,同时避免误删文件、表项等不当操作。
新华三集团(简称新华三)是业界领先的数字化解决方案领导者,致力于成为客户业务创新、产业升级最可信赖的合作伙伴。新华三拥有计算、存储、网络、安全等完整的数字化基础设施提供能力,提供云计算、大数据、大互联、大安全、大安防、边缘计算、人工智能、区块链在内的一站式、全方位数字化平台解决方案。同时,新华三也是HPE®品牌的服务器、存储和技术服务的中国独家提供商。