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

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

作者: 一丶味 | 来源:发表于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

    相关文章

      网友评论

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

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