热门标签 | 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



推荐阅读
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 在加载一个第三方厂商的dll文件时,提示“找不到指定模块,加载失败”。由于缺乏必要的技术支持,百思不得期间。后来发现一个有用的工具 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 微信商户扫码支付 java开发 [从零开发]
    这个教程可以用作了解扫码支付的整体运行过程,已经实现了前端扫码,记录订单,回调等一套完整的微信扫码支付。相关链接:微信支 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringCloudRibbon部分源码相关的知识,希望对你有一定的参考价值。1:ribbon是提供通过servi ... [详细]
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社区 版权所有