0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

反虚拟机技术合集4

jf_78858299 来源:看雪社区 作者:houjingyi 2023-02-14 13:46 次阅读

三、基于社会工程学的技巧

1.检测电脑中常用软件的使用情况

名为 Intelligent Software Solutions Inc.doc 的恶意软件样本文件使用了下面的反虚拟机技巧,SHA256值为048fc07fb94a74990d2d2b8e92c099f3f986af185c32d74c857b07f7fcce7f8e。

图片

RecentFiles对象表示系统最近打开过的历史文档。

通常,安装了word程序的用户可能会打开超过2个或更多数量的文档。然而,当该恶意软件植入到新创建的虚拟机和word环境中后,总是状况不断,不能正常运行。每次测试时手动打开一两次,总是出现程序异常。即使是保存了虚拟机镜像状态,重启调试分析后,恶意程序仍然不能正常执行。

从DKTxHE函数功能可以看出,恶意软件以RecentFiles数量来判断是否身处VM环境中,如果在VM环境中,它将不会执行任何恶意行为。之后,随意创建了3个不同名称的word文档,逐一打开并关闭,让历史文档数量为3,最终成功运行并检测到了恶意软件。

2. 探测杀毒软件公司相关的IP地址

同样是上面的恶意软件,它在另一个子程序中使用了下面的反虚拟机技巧。

首先,它通过向远程地址 https://www.maxmind.com/geoip/v2.1/city/me 发出某种认证请求,之后设置请求信息中的HTTP Refer属性和User-Agent值,访问链接 https://www.maxmind.com/en/locate-my-ip-address 以此获取宿主系统的地址信息。

获取信息封装于JSON格式文件中,包含国家、城市、或者与IP相关的组织机构等信息。IP信息的organization字段显示为美国Comcast宽带网络供应商。

恶意软件发出访问请求后,获取到宿主系统的相关信息将存储于某个数组中。如果获取到的组织机构名称与JSON文件中的任何机构字符串匹配,恶意软件将发生异常并停止运行。当然,列表中的机构名称在代码中是经过混淆的。

图片

四、虚拟机逃逸

VMware等软件中或多或少都存在一些安全漏洞,可以利用这些漏洞使宿主操作系统崩溃或者是在宿主操作系统中运行代码。当主机系统被感染后,一些公开可用的工具可以用来对VMware等软件进行攻击。

五、总结

当遇到的恶意代码似乎不能运行时,在使用调试或反汇编恶意代码搜索其反虚拟机探测代码之前,应该考虑使用一个卸载了VMware Tools的虚拟机。VMware中有一些未文档化的功能可以帮助减轻反虚拟机技术的探测。将下面的代码放到VMware的.vmx文件中,以减轻虚拟机被探测的可能。

isolation.tools.getPtrLocation.disable = "TRUE"
isolation.tools.setPtrLocation.disable = "TRUE"
isolation.tools.setVersion.disable = "TRUE"
isolation.tools.getVersion.disable = "TRUE"
monitor_control.disable_directexec = "TRUE"
monitor_control.disable_chksimd = "TRUE"
monitor_control.disable_ntreloc = "TRUE"
monitor_control.disable_selfmod = "TRUE"
monitor_control.disable_reloc = "TRUE"
monitor_control.disable_btinout = "TRUE"
monitor_control.disable_btmemspace = "TRUE"
monitor_control.disable_btpriv = "TRUE"
monitor_control.disable_btseg = "TRUE"

参数directexec可以使用户模式下的代码被模拟执行而不是直接在硬件上运行,因此它可以挫败一些反虚拟机技术。

前四条设置被VMware后门命令使用,它们的作用是使得运行在Guest系统中的VMware Tools不能获取宿主系统的信息。这些设置会禁用VMware Tools的一些有用功能,并可能对虚拟机性能有严重负面影响。所以,仅当其他技术无效时再添加这些选项。当然,也可以将恶意代码在其他虚拟环境或者物理主机上运行。

同反调试技术一样,要想发现恶意代码中的反虚拟机技术需要在长期调试过程中积累更多经验。例如,看到一个代码在一个条件跳转处过早终止,这可能就是反虚拟机技术造成的结果。一如既往地警惕这种类型的问题,然后查看其之前的代码,来确定它到底执行了什么操作。

和反调试技术一样,通过修改条件跳转指令或者使用NOP指令覆盖来绕过相关探测。

最后让我们总结一下提到的内容:

腾讯2016游戏安全技术竞赛有一道题,大概意思就是给一个exe,要求编写一个Tencent2016C.dll,并导出多个接口函数 CheckVirtualPCX、CheckVMWareX、CheckVirtualBoxX。X为1-100之间的数字。函数功能是检测自己是否处于相应的虚拟机中,是返回TRUE,否则返回FALSE。函数的原型都是 typedef BOOL (WINAPI* Type_CheckXXXXXX)();。

编译好dll之后,放在Tencent2016C.exe的同目录,运行Tencent2016C.exe,点击检测按钮,在物理机中运行时函数接口输出为0,在VMware虚拟机、VirtualBox虚拟机和VirtualPC虚拟机中运行时,相关的接口输出1。我们把提到的知识综合一下完成这道题目。

解题的参考代码和题目相关信息:https://github.com/houjingyi233/test-virtual-machine/

参考资料

1.《恶意代码分析实战》第17章反虚拟机技术(本文的主体框架)

2.这个恶意软件“奇葩”的反虚拟机技巧

3.天枢战队官方博客(本文大部分代码的来源)

4.虚拟机检测技术剖析

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Mac
    Mac
    +关注

    关注

    0

    文章

    1112

    浏览量

    51944
  • 恶意代码
    +关注

    关注

    0

    文章

    12

    浏览量

    7675
  • 虚拟机
    +关注

    关注

    1

    文章

    954

    浏览量

    28631
收藏 人收藏

    评论

    相关推荐

    什么是虚拟机虚拟机真的那么好用吗?

    在日新月异的科技世界中,虚拟技术如同一座桥梁,连接着现实与数字的鸿沟,为我们打开了全新的计算维度。虚拟机,这一概念,自其诞生以来,就以其独特的魅力和强大的功能,深深地影响了软件开发、系统测试和云
    的头像 发表于 07-06 08:05 463次阅读
    什么是<b class='flag-5'>虚拟机</b>?<b class='flag-5'>虚拟机</b>真的那么好用吗?

    有关虚拟机虚拟技术的几点诠注

    虚拟机虚拟技术给计算机应用注入了新的研究与开发点,同时也存在诸多不利因素。本文综述了虚拟机虚拟
    发表于 06-22 18:04 36次下载

    虚拟机虚拟技术

    虚拟机虚拟技术给计算机应用注入了新的研究与开发点,同时也存在诸多不利因素。本文综述了虚拟机虚拟
    发表于 09-07 10:15 13次下载

    基于虚拟机技术的DSC仿真系统设计

    提出了基于虚拟机技术的DCS仿真系统的实现方式,描述了虚拟控制器的具体实现方法及虚拟机技术的其他应用。
    发表于 12-03 17:26 26次下载
    基于<b class='flag-5'>虚拟机</b><b class='flag-5'>技术</b>的DSC仿真系统设计

    基于虚拟机技术的DCS仿真系统设计与实现

    提出了基于虚拟机技术的DCS仿真系统的实现方式,描述了虚拟控制器的具体实现方法及虚拟机技术的其他应用。
    发表于 01-16 15:04 2253次阅读
    基于<b class='flag-5'>虚拟机</b><b class='flag-5'>技术</b>的DCS仿真系统设计与实现

    虚拟机:QEMU虚拟机和主机无线网络通讯设置

    虚拟机:QEMU虚拟机和主机无线网络通讯设置
    的头像 发表于 06-22 10:19 5584次阅读
    <b class='flag-5'>虚拟机</b>:QEMU<b class='flag-5'>虚拟机</b>和主机无线网络通讯设置

    KVM虚拟机管理和基本使用

    KVM — 全称是基于内核的虚拟机(Kernel-based Virtual Machine)是一个开源软件,基于内核的虚拟技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用
    的头像 发表于 02-07 09:20 1425次阅读

    虚拟机技术合集1

    恶意代码编写者经常使用虚拟机技术逃避分析,这种技术可以检测自己是否运行在虚拟机中。如果恶意代码探测到自己在
    的头像 发表于 02-14 13:45 1345次阅读

    虚拟机技术合集2

    恶意代码编写者经常使用虚拟机技术逃避分析,这种技术可以检测自己是否运行在虚拟机中。如果恶意代码探测到自己在
    的头像 发表于 02-14 13:45 755次阅读
    <b class='flag-5'>反</b><b class='flag-5'>虚拟机</b><b class='flag-5'>技术</b><b class='flag-5'>合集</b>2

    虚拟机技术合集3

    恶意代码编写者经常使用虚拟机技术逃避分析,这种技术可以检测自己是否运行在虚拟机中。如果恶意代码探测到自己在
    的头像 发表于 02-14 13:45 730次阅读
    <b class='flag-5'>反</b><b class='flag-5'>虚拟机</b><b class='flag-5'>技术</b><b class='flag-5'>合集</b>3

    linux虚拟机使用教程

    引言:Linux虚拟机是一种方便且常用的技术,它允许用户在现有操作系统的基础上创建和运行另一个独立的操作系统。在本篇文章中,我们将提供一份详尽的教程,帮助你了解如何安装、配置和使用Linux虚拟机
    的头像 发表于 11-17 10:06 1569次阅读

    Docker与虚拟机的区别

    Docker和虚拟机是两种不同的虚拟技术,它们在实现方式、资源消耗、运行性能等方面存在许多差异。本文将会详细介绍它们的区别。 一、实现方式 1.1 虚拟机
    的头像 发表于 11-23 09:37 1w次阅读

    虚拟机ubuntu怎么联网

    虚拟机ubuntu怎么联网  虚拟机(Virtual Machine)是运行在物理(Host Machine)上的虚拟操作系统环境。在虚拟机
    的头像 发表于 12-27 16:51 1109次阅读

    虚拟机数据恢复—KVM虚拟机被误删除的数据恢复案例

    虚拟机数据恢复环境: Linux操作系统服务器,EXT4文件系统。服务器中有数台KVM虚拟机虚拟机1:主数据库服务器 虚拟磁盘
    的头像 发表于 08-07 13:33 567次阅读
    <b class='flag-5'>虚拟机</b>数据恢复—KVM<b class='flag-5'>虚拟机</b>被误删除的数据恢复案例

    虚拟机数据恢复—异常断电导致XenServer虚拟机不可用的数据恢复案例

    虚拟机数据恢复环境: 某品牌服务器通过同品牌某型号的RAID卡,将4块STAT硬盘为一组RAID10阵列。上层部署XenServer虚拟化平台,虚拟机安装Windows Server
    的头像 发表于 10-21 14:17 313次阅读
    <b class='flag-5'>虚拟机</b>数据恢复—异常断电导致XenServer<b class='flag-5'>虚拟机</b>不可用的数据恢复案例