首页 > 其他分享 >反虚拟机、反沙箱技术整理汇总

反虚拟机、反沙箱技术整理汇总

时间:2022-11-06 16:00:35浏览次数:99  
标签:示例 检测 虚拟机 检查 汇总 API 沙箱 恶意软件

反虚拟机、反沙箱技术整理汇总安全狗的⾃我修养 2022-11-06 15:49 反虚拟机、反沙箱技术整理汇总

延迟执⾏

因为沙箱对样本运⾏时间有限制,使⽤已知的windows Api(例如NtDelayExecution,

CreateWaitTableTImer,SetTimer等)将恶意代码的执⾏延迟了⼀段时间。

延迟执⾏ -GetTickCount 检查机器运⾏时间,创建超过设定时间的快照即可使计算机运⾏更多时间,即可绕过。

延迟执⾏ -API泛洪

在循环中调⽤垃圾API以引⼊延迟

Win32/Cutwail

延迟执⾏ -内联汇编

引⼊内联汇编代码,设置较⼤的计数。

硬件检测

对硬件进⾏指纹识别,特别是检查总物理内存⼤⼩,可⽤的存储⼤⼩/类型和可⽤的CPU 内核数量。例如通过Windows API DeviceIoControl()与特定的控制代码⼀起使⽤,以检索有关存储类型和存储⼤⼩的信息。

硬件检测 -储存空间检查

另外,可以通过WMI接⼝获取系统信息时,⽽hookcom的资料很少。

硬件检测 -CPU温度检查

检查涉及检查执⾏中的处理器的温度,该检查通过系统中的WMI调⽤执⾏。因为VM系统在此调⽤之后将永远不会返回结果。

硬件检测 -CPU核⼼数量最初基于API来获取信息,后来都采⽤WMI和更隐蔽的基于PEB访问的⽅法。

更隐秘的⽅法是访问PEB,通过引⼊内联汇编代码或使⽤inline函数来实现。

另⼀种⽅法,MSDN定义,“ProcessAffinityMask”是⼀个位向量,其中每个位代表允许进程在其上运⾏的处理器。系统相似性掩码是⼀个位向量,其中每个位代表配置到系统中的处理器。恶意软件使⽤这种通过获取GetProcessAffinityMask API来获取核⼼计数的新⽅法。API返回掩码,该掩码可以轻松识别正在使⽤的内核数。

在上⾯的示例中(样本md5:53f6f9a0d0867c10841b815a1eea1468),如果核⼼计数⼩于2,则恶意软件仅终⽌⽽不执⾏其有效载荷:

硬件检测 - 基于COM的DirectShow的⾳频检测

上⾯的代码不仅在检查⾳频设备的存在,⽽且还验证API是否完全可操作(可能是为了过滤掉不完整的API仿真)。

这些只是⼀些随机检查,以确保恶意软件在真实系统上执⾏。仅在此沙箱安装了⾳频设备后,它才被视为真实系统。⼤多数仿真器都会失败,因为⼏乎不可能为现代操作系统中存在的每个COM接⼝实现适配⽀持。

}

检测⽤户输⼊

在真实的机器中,诸如键盘或⿏标活动之类的⽤户输⼊将是频繁发⽣的事件,或者⾄少是最终发⽣的事件。但是传统的沙箱通常不会有任何⽤户输⼊,也不会⾜够模拟⽤户的 I/O活动以欺骗恶意软件。由于这些限制,⾼级恶意软件可以利⽤这种差异(缺少⽤户输

⼊)来检测沙箱。

示例1 检查输⼊时间间隔

为了获得⾃上次收到⽤户输⼊以来的空闲时间,恶意软件通常会使⽤GetLastInputInfo 和GetTickCount函数的组合。

样本(md5:5bd308c1b32178098c8202cff5b02a28)示例:

对上⾯的代码进⾏检查后发现,它在⽆限循环内执⾏以下逻辑:

  1. 通过从LASTINPUTINFO.dwTime中减去当前计数来获得空闲输⼊计数。
  2. 如果空闲输⼊计数⼩于100且不等于最后⼀个空闲计数,则将其视为“正确的空闲输

⼊时间”并将其添加到计数器中。

  1. 如果正确的空闲时间计数器次数 > 10,则跳出循环
  2. 睡眠11毫秒

为了测试代码是否在真实系统上运⾏,此恶意软件示例将⽆限期等待⽤户输⼊。如果是在实际系统上,则⽤户有时会按下⼀个键或移动⿏标,并且空闲时间将少于100个滴答

声。如果发⽣10次以上,恶意软件将开始执⾏其有效负载。

但是,传统的沙箱执⾏和分析每个程序的时间有限,因此检测这种类型的逃逸是有问题的。此外,在评估上述恶意软件样本时,常规沙箱需要在指定时间范围内⽣成10次正确的输⼊空闲时间。如果不这样做,该恶意软件将不会执⾏,并且不会被检测到。我们测试的⼤多数沙盒⽆法完成此操作,并错误地得出结论该样品⽆害。

示例2 检测前台窗⼝

Win32 / Gataka变体:使⽤GetForeGroundWindow,并检查是否再次调⽤同⼀API会更改Windows句柄,如果⽤前台窗⼝⼀直没有改变,说明可能没有⽤户操作。在Locky勒索软件变体中发现了相同的技术。

示例3 检测⿏标

Win32 / Sazoora恶意软件,⽤于检查⿏标的移动。

示例4 vb宏

恶意软件活动采⽤了多种技术来检查与受感染系统的历史交互。此类传播Dridex恶意软件的活动⼴泛使⽤了仅在⽂档关闭时触发的“⾃动执⾏”宏。以下是此类活动的VB代码的快照。

示例5 检查注册表项最近⽂档

\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\User MRU

示例6 vb脚本检查最近⽂件

环境检测

恶意软件使⽤的另⼀种技术是对⽬标环境进⾏指纹识别,例如:

  • 对照通⽤沙箱名称或注册表检查主机名。
  • 验证安装的程序,程序数量很少的可能表明机器是假的。
  • 检查⽂件名以检测是否使⽤了哈希或关键字(例如恶意软件)
  • 检测正在运⾏的进程以发现潜在的监视⼯具并检查⽹络地址以检测被列⼊⿊名单的

⼯具,例如AV⼚商。

点击关注,共同学习!
安全狗的自我修养

github haidragon

https://github.com/haidragon

标签:示例,检测,虚拟机,检查,汇总,API,沙箱,恶意软件
From: https://www.cnblogs.com/haidragon/p/16862814.html

相关文章

  • 面向对象汇总
    本周内容概要目录本周内容概要本周内容详情面向对象前戏之人狗大战两种编程思想类与对象1.类与对象的概念2.类与对象创建2.1类的语法结构2.2类的定义与调用2.3对象独有的......
  • vmware虚拟机网络配置详解
    vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网......
  • Oralce资识点汇总
    启服务1.linux下启动oraclesu-oracleesqlplus/nologconn/assysdbastartupexitlsnrctlstartexit停服务2.linux下关闭oraclesu-oraclesqlplus/nolog......
  • vmware15 虚拟机的三种网络设置
    在vmware虚拟机的设置中,共有四种网络模式可以选择:桥接模式、NAT模式、仅主机模式和自定义模式。本文重点讲解前三种网络模式的设置。下图是我的宿主机的IP信息,在某些场景......
  • M1芯片虚拟机搭建Harbor私有镜像仓库!
    看了CSDN上的博主的教程,完美运行。博客地址:https://blog.csdn.net/q_hsolucky/article/details/125236163。前提条件是你需要自己搭建好虚拟机,并安装好dockercompose。......
  • 【重识云原生】计算第2.3节——主流虚拟化技术之Xen[汇总整理]
     最新文章欢迎关注笔者公众号“畅游云海”  《重识云原生系列》专题索引:第一章——不谋全局不足以谋一域第二章计算第1节——计算虚拟化技术总述第二章计算第2节—......
  • win11家庭版安装Linux虚拟机的坑
    1安装环境主机操作系统:Windows11家庭中文版(版本21H2/22000.1098)虚拟机软件:VMware15.5(踩坑后换为16.1)虚拟机Linux:centOS7.820032踩坑记录网上有很多安装Linux......
  • xshell连接虚拟机
    xshell连接虚拟机 1.提前打开虚拟机,xshell才能连上 2.打开xshell,点击会话框或菜单栏的新建图标创建新连接  3.新建会话框左侧的类别,选择连接,输入相关信息 ......
  • 【杂题汇总】NOIP 2022 杂题目录
    这里单纯的是一些题目,看到有意思的题会在这里记下来,也可以当做Todolist啦解析的话在这里[ARC147E]Examination[CF573E]BearandBowling[CF498D]TrafficJamsi......
  • 【线性代数】抽丝剥茧系列汇总篇
    耗时两周,说长不长,说短不短,总算肝完了。ProfessorStrang讲的线代真的深入浅出,这次算是真正线性代数入了门,看到与线代相关的东西不会怯了!目录:【线性代数】抽丝剥茧系列......