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

由于在分析恶意代码时,经常遇见反虚拟机技术, 传统的反病毒厂商也都利用虚拟机进行大量的分析从而获取样本运行的大量信息进行分析处理。常见杀软所使用的虚拟机软件通常包括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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 走出误区戳穿XP的经典谣言 网上和很多杂志上流传了很多关于Windows XP的优化、设置攻略、技巧等,很多被奉为...
    小向资源网阅读 460评论 0 1
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,783评论 0 11
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,775评论 0 10
  • 警院有三位传奇人物,他们被称为“三剑客”。 警院有一门蛮受各届学子欢迎的课,它叫“思政课”。 有一个团结向上而又有...
    一枚爱折腾的95后阅读 1,320评论 0 3
  • 看到这两张美颜过的照片 甚是喜欢 且不说我的外貌 只看嘟着嘴巴的样子就够可爱的了 40多岁的半百女人 能保养成这样...
    子涵贝贝阅读 392评论 0 0