美文网首页
恶意代码之“那些反虚拟环境检测”

恶意代码之“那些反虚拟环境检测”

作者: 一丶味 | 来源:发表于2016-10-09 18:19 被阅读466次

由于在分析恶意代码时,经常遇见反虚拟机技术, 传统的反病毒厂商也都利用虚拟机进行大量的分析从而获取样本运行的大量信息进行分析处理。常见杀软所使用的虚拟机软件通常包括VMware、VirtualBox、KVM等,这些虚拟机可以在一台物理计算机上模拟出多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作。攻击者为了逃避这些虚拟机以及病毒分析沙箱,会在恶意程序中加入检测虚拟机及沙箱的代码,以判断程序所处的运行环境。当发现程序处于虚拟机沙箱中时,它就会改变操作行为隐蔽恶意动作,逃避检测。

虚拟机识别包括对系统的注册表、文件系统、硬件信息、进程识别等。虚拟机的注册表中会记录虚拟机信息相关的键值,文件系统中有与虚拟机相关的文件、文件夹,任务进程中,也会运行一些特殊的进程,这类进程名可作为识别虚拟机检测的依据。

  • 进程识别
    遍历的虚拟机进程有:
    "VBoxTray.exe"
    "VBoxService.exe"
    "VMwareUser.exe"
    "VMwareTray.exe"
    "VMUpgradeHelper.exe"
    "vmtoolsd.exe"
    "vmacthlp.exe"

  • 文件系统
    %system32%\drivers\winmouse.sys
    %system32%\drivers\vmmouse.sys
    %system32%\drivers\vmhgfs.sys
    %system32%\drivers\VBoxMouse.sys
    %system32%\drivers\VBoxGuest.sys
    %System32\drivers\目录下是否存在hgfs.sys、prleth.sys、vmhgfs.sys驱动文件,其中hgfs.sys驱动文件为VMware Tools的驱动文件.

  • 虚拟机硬件信息
    虚拟机的网卡信息会有固定指纹
    MAC地址:
    00:05:69:xx:xx:xx VMware
    00:0C:29:xx:xx:xx VMware
    00:1C:14:xx:xx:xx VMware
    00:50:56:xx:xx:xx VMware
    00:15:5D:xx:xx:xx Hyper V
    00:16:3e:xx:xx:xx Xen

  • 注册表信息
    检测键(包含VM关键字)、键值。
    键:HKEY_CLASSES_ROOT\Applications\VMwareHostOpen.exe
    键:Monitors\ThinPrint Print Port Monitor for VMWare
    键值:VMware Tools
    键值:VMware SVGA II
    键值:55274-640-2673064-23950 (JoeBox)
    键值:76487-644-3177037-23510 (CWSandbox)
    键值:76487-337-8429955-22614 (Anubis)

  • 基于真实机与虚拟机时间差
    由于一般情况下同样的指令在真实机里运行时间会比在虚拟机中短。所以可以根据时间差来判断。如果它的运行时间大于0xFF时,就可以确定它处于虚拟机之中了,因此不难写出检测程序,具体实现代码如下:
    代码:

.data
szTitle      db  "VMDetect With RDTSC", 0h
szInsideVM    db  "Inside VMware!", 0h
szOutsideVM    db  "Native OS!", 0h
.code
start:
RDTSC
xchg     ecx, eax
RDTSC  
sub    eax, ecx
cmp    eax, 0FFh
jg    Detected
invoke  MessageBox, 0, offset szOutsideVM, offset szTitle, 0
ret 
Detected:
invoke   MessageBox, 0, offset szInsideVM, offset szTitle, 0
ret
end start
  • WMI查询
    由于WMI ( Windows Management Instrumentation)查询的滥用,越多的恶意代码使用WMI查询来检测虚拟机。例如一个样本通过WMI查询系统的版本,如果系统版本在6.0(Vista)以上执行,否则退出。
通过WMI 查询系统版本进行反虚拟环境检测

火眼报告列出几种可能出现的WMI查询:

Possible WMI queries for environment detection

文档参考来源:
https://www.fireeye.com/blog/threat-research/2016/10/increased_use_ofwmi.html
http://www.antiy.com/response/anti-virtual-machine-and-anti-sandbox-in-malware.html
http://bbs.pediy.com/showthread.php?t=119969

相关文章

  • 恶意代码之“那些反虚拟环境检测”

    由于在分析恶意代码时,经常遇见反虚拟机技术, 传统的反病毒厂商也都利用虚拟机进行大量的分析从而获取样本运行的大量信...

  • virtuatenv 虚拟环境搭建

    virtuatenv 虚拟环境 检测pc是否有安装virtuatenv 安装virtuatenv虚拟环境 创建vi...

  • XcodeGhost检测

    检测 xcode被注入恶意代码事件相信你已早有耳闻,可是我们如何去分析我们的xcode是否安全呢? 方法如下: /...

  • Xposed 反检测

    前段时候微信封禁了一大批使用 xposed 的微信账号,对一些运营微信的企业造成的巨大损失。下面我们聊聊 xpos...

  • VR科技:虚拟现实技术未来你希望有什么样的智能变化

    虚拟现实系统的模块 (1)检测模块:检测用户的操作命令,并通过传感器模块作用于虚拟环境。 (2)反馈模块:接受来自...

  • 用机器学习检测Android恶意代码

    参考资料 本代码是参考乌云上的一篇文章实现的,链接如下:http://wooyun.jozxing.cc/stat...

  • 恶意软件能够逃避检测,为什么?

    在网络安全的背景下,尽管存在反恶意软件控制,但逃避是执行恶意代码的做法。这种策略不会利用可修复的缺陷。相反,他们利...

  • vmware 恶意代码分析虚拟机网络环境配置 Apate、Ine

    前言 学习恶意代码分析的第一步就是配置网络环境,网络环境配置好以后才能放心的运行恶意代码进行分析。 分析恶意代码首...

  • xss 简述

    分类 存储型 恶意代码存储在服务端,用户访问时服务端把恶意代码拼接到html中返回 反射型 恶意代码包含在url中...

  • 初识py

    1.py之虚拟环境搭建以及pip的安装 进入到虚拟环境目录 打开cmd(bash) 然后执行 python -m ...

网友评论

      本文标题:恶意代码之“那些反虚拟环境检测”

      本文链接:https://www.haomeiwen.com/subject/upapyttx.html