热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用“顺丰速运”下发GuLoader恶意软件的风险分析

 

 

0x01 背景介绍

GuLoader是一个使用VB语言编写的恶意软件下载器。它通常从Google Drive、Microsoft OneDrive、MediaFire等托管站点下载恶意代码执行。常见的后续恶意远控程序有:LokiBot、Remcos RAT和Agent Tesla等等。 GuLoader本身具有较为复杂的执行流程,较强的反调机制使得当前部分在线沙盒无法精确检测恶意行为,同时也给分析人员造成一定阻碍。

360-CERT监测到今年以来使用GuLoader恶意软件的网络攻击活动呈现不断增加的态势。我们在此发布该恶意软件风险分析,提示用户及时防范规避安全风险。

 

0x02 样本动态分析

攻击者使用伪装成“顺丰速运”的恶意钓鱼邮件下发钓鱼链接。

enter description here

该钓鱼链接指向MediaFire下载GuLoader恶意软件压缩包(链接信息部分隐藏)。

hxxps[:]//www[.]mediafire[.]com/file/ifu***empc/SF342012300120.7z/file

一旦用户下载该恶意软件压缩包,并且无意执行恶意程序,整个恶意流程被立即激活。

enter description here

恶意代码进入shellcode首先进行一系列的调试和虚拟化环境的检测,shellcode入口如下:

enter description here

加载DLL以及获取即将调用的函数地址(例如:ZwQueryVirtualMemory)

enter description here

调用ZwQueryVirtualMemory在内存0x10000 ~ 0x7FFFF000范围内通过校验HASH的方式比较字符串。

enter description here

例如查找字符串“vmtoolsdControlWndClass”

enter description here

一旦检测到虚拟机环境,将对以下字符串进行解密,并调用MessageBoxA进行输出。

enter description here

枚举顶层串口句柄,当句柄值小于0x0C时结束进程。

enter description here

调用ZwProtectVirtualMemory函数修改DbgBreakPoint和DbgUiRemoteBreakin所在内存地址的属性,并修改它们的函数实现。

修改DbgBreakPoint函数字节码。

enter description here

修改DbgUiRemoteBreakin函数字节码。

enter description here

调用ZwSetInformationThread函数,利用传入参数HideThreadFromDebugger(对应数值:0x11)隐藏进程。

enter description here

调用CreateFile函数,以GENERIC_READ(对应数值:0x80000000)方式打开指定路径(C:\ProgramData\qemu-ga\qga.state)文件,检测QEMU环境。

enter description here

利用cpuid指令检测虚拟机。

enter description here

调用ZwGetContextThread函数获取进程上下文并比较DR寄存器的值判断是否处于调试环境。

enter description here

enter description here

然后以挂起的方式开启傀儡进程。

enter description here

一边检测DR寄存器一边执行一系列操作将msvbvm60.dll映射到傀儡进程并注入shellcode然后恢复进程。

enter description here

恢复执行傀儡进程后,重新执行前文的所有检测,然后进行联网操作,下载RAT载荷解密执行。

enter description here

0x03 防护建议



  • 360安全卫士

360-CERT建议用户安装360安全卫士进行防护


  • 临时解决方案

用户可以在指定路径创建特定文件对该版本GuLoader恶意软件进行临时防护

C:\ProgramData\qemu-ga\qga.state

 

0x04 IOCs



  • MD5

4F97FF7B772E9C31D9620EC8110A3094

5FEEDDE4790C300C6CEBC20684F79987


  • URL

hxxps[:]//www[.]mediafire[.]com/file/ifuhhu63u37empc/SF342012300120[.]7z/file

hxxps[:]//www[.]mediafire[.]com/file/6mukpc6m24uifiu/fresh_rLANVHaEFt60[.]bin/file

 

0x05 参考链接



  1. GuLoader: A Popular New VB6 Downloader that Abuses Cloud Services

  2. GuLoader AntiVM Techniques



推荐阅读
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
author-avatar
mobiledu2502911607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有