本帖最后由 huoronganquan 于 2024-1-11 18:05 编辑
近期,火绒威胁情报系统监测到Shiz病毒的新变种正在快速传播。Shiz病毒主要针对国外用户群体,在被激活后能够窃取用户电脑上的敏感信息,并可以执行其他恶意操作。不仅如此,当受害者访问杀毒软件网址时,还会被劫持到google的网址,对用户构成较大干扰。
病毒运行后,首先,会使用对抗手段检测虚拟机环境和杀毒软件,捕获的变种样本使用了多种对抗手段,除了采用shellcode分块执行外,还通过PUSH RET来混淆IDA反编译的调用流等手段对抗杀软;随后,将恶意模块注入到系统进程中执行,进行数据窃取、屏幕截图、DNS劫持等恶意操作。该病毒执行流程,如下图所示: 病毒执行流程图
目前,火绒安全产品可对上述病毒进行拦截查杀,请火绒用户及时更新病毒库以进行防御。火绒工程师建议大家,安装并定期更新杀毒软件、防火墙和安全补丁,确保始终保持最新的安全防护。 查杀图 一、样本分析
混淆和对抗手段 病毒启动之后由最外层的Loader来进行加载,在最外层的Loader中具有多种混淆方式,通过执行大量垃圾代码来混淆安全人员的分析,还会无意义地调用冷门API这种方式,检测虚拟行为沙盒环境的真实性,相关代码,如下图所示: 混淆代码
为了防止安全人员分析,该病毒在最外层的Loader中还使用PUSH + RET的方式来进行函数调用,这样可以对IDA的反编译功能进行混淆,如下图所示: PUSH RET混淆
通过解密执行shellcode,相关代码,如下图所示: 执行shellcode
在shellcode执行过程中,它被分成多个块顺序执行。执行完一个块后,执行过的块会被加密,然后再解密并执行下一个块。相关代码,如下图所示: shellcode 加解密执行
shellcode主要负责从资源中获取内层模块,解密并加载到内存中,相关代码,如下图所示: 内存加载内层模块
在内层模块中会检测虚拟机环境,相关代码,如下图所示: 检测虚拟机环境
还通过调用Windows防火墙API将自身添加到Windows防火墙的授权应用程序列表中,相关代码,如下图所示: 添加到防火墙白名单
该模块还会将自身拷贝到添加到“ C:\Windows\apppatch”目录中,并添加开机自启动中进行持久化操作,相关代码,如下图所示: 添加自启动项
该模块执行初始化操作之后,会将shellcode注入到系统进程中执行,相关代码,如下图所示: 注入系统进程执行恶意模块
shellcode主要负责将最终的恶意模块进行内存加载,相关代码,如下图所示: shellcode
内层恶意模块 该恶意模块使用DGA域名生成算法来动态产生大量的域名,这样做的好处是可以避开基于静态黑名单的防御系统,因为这些系统通常是通过拦截已知的恶意域名来阻止恶意流量的,黑客可以随时注册其中的域名来使用,这样传统的基于签名的防御方法往往无法及时响应这种动态生成的域名,从而使得恶意软件能够持续与C2服务器进行通信,即使其中一些域名被识别并加入黑名单。DGA算法,如下图所示: 使用自定义DGA算法生成域名
DGA算法计算出的部分域名列表,分析过程中,暂未发现存活的C&C服务器,不排除后续这些域名会被注册,如下图所示: 部分域名列表
通过DGA域名算法,计算出C&C服务器之后,会连接C&C服务器,执行C&C服务器下发的命令,相关代码,如下图所示: 指令C&C服务器下发的命令 load命令 从C&C服务器下载恶意模块并执行,相关代码,如下图所示: load命令
kill_os命令 清空磁盘MBR和删除关键注册表项,导致系统出错,相关代码,如下图所示: kill_os命令
该恶意模块会将自身注入到其他进程中如:系统进程、浏览器进程、svchost.exe(DNS缓存服务器)等进程中来执行各种恶意代码,相关代码,如下图所示: 注入其他进程中
如果发现自身进程名为svchost.exe就会HOOK DNS相关的函数来进行DNS劫持,相关代码,如下图所示: DNS劫持
以HOOK DnsQuery_A函数为例,当受害者访问杀毒软件的网址时会被劫持到google的网址,相关代码,如下图所示: 劫持杀毒软件域名到google
通过HOOK GetClipboardData函数来监控受害者剪贴板数据,相关代码,如下图所示: 监控剪贴板数据
通过HOOK多个用于处理签名文件的第三方库,如果发现签名文件就会上传至C&C服务器,相关代码,如下图所示: 窃取签名文件
通过HOOK Winininet.dll来记录受害者电脑中访问的各种网页信息,相关代码,如下图所示: HOOK Wininet.dll
同时还会对这些信息进行过滤,如果包含指定网站的登录凭证等信息,会被记录并上传至C&C服务器中,以HttpSendRequestW函数为例,相关代码,如下图所示: 窃取登录凭证
还会通过HOOK 消息相关的函数来进行键盘记录,相关代码,如下图所示: HOOK 消息相关的函数
以HOOK_TranslateMessage函数为例,相关代码,如下图所示: HOOK_TranslateMessage
该病毒还会获取受害者的屏幕截图,相关代码,如下图所示: 获取屏幕截图
二、附录 HASH:
|