反虚拟机、反沙箱技术整理汇总安全狗的⾃我修养 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

反虚拟机、反沙箱技术整理汇总相关推荐

  1. 【深入理解Java虚拟机】保姆级整理汇总 第一部分:走近Java (一) Java技术体系

    目录 一.开篇感言 二.正文 1.Java技术体系 1.1 Java技术体系介绍 1.2 JDK和JRE范围 1.3 Java主要产品线 1.4 Java发展史 1.5 Java虚拟机家族 一.开篇感 ...

  2. 反虚拟机技术虚拟机硬件化处理过检测

    过检测虚拟机下载: k7.8x64下载地址①:https://yunpan.360.cn/surl_ydaQm3pwpEk k7.8x64下载地址②:https://pan.baidu.com/s/1 ...

  3. APK反编译及防护技术

    (一)背景 Android APK安全已经是当前安全测试关注的重点,尤其是在互联网公司,很多系统涉及政务信息与支付的,安全问题更是需要重点关注.Android端的项目越来越多,面临的安全问题也很多.本 ...

  4. 反浏览器指纹追踪(反浏览器指纹追踪技术)

    浏览器指纹追踪是一种在网络上追踪用户信息的方法.而在大数据时代,更多的人不希望自己的信息被过多收集.为了反制浏览器指纹追踪行为,反浏览器追踪技术也在不断发展. 什么是反浏览器指纹追踪技术? 浏览器指纹 ...

  5. IP反查域名的方式方法汇总

    众所周知,通过域名可以查询到网站的ip地址,但是通过ip地址能不能查到域名,这其实也是可以的,今天聚名企服就为大家讲讲IP反查域名的方式方法. 1.已知IP地址查对应的域名 cmd-nslookup ...

  6. 2023最新使用python进行shellcode免杀过360火绒 ,反虚拟机

    本源码仅供学习交流,不得用于违法范围,本源码已放到QQ交流群 群文件中QQ群:798134185 反虚拟机方案根据虚拟机系统文件 cpu核心数  开机启动时间  c盘大小判断 生成c语言的payloa ...

  7. JavaScript一些常用 API整理汇总

    JavaScript一些常用 API整理汇总 Array new Set() 数组去重 const arr = [3,4,4,5,4,6,5,7]; console.log(new Set(arr)) ...

  8. 桩筏有限元中的弹性板计算_PKPM2010年11月结构技术问题汇总

    2010年11月第一周结构技术问题汇总 1.JCCAD地质资料中只输入一个土层,微风化岩,压缩模量输入30000Mpa,保 存后再进入压缩模量发生变化,如何处理? 答:因为只输入了一个土层.可在微风化 ...

  9. 前端面试题整理汇总(一)

    前端面试题整理汇总(一) 优才网 关于前端面试题,优优之前推荐过,如下,点击即可查看: 5个经典的前端面试问题 2016年十家知名公司前端面试经验总结 前端面试会问哪些问题? 前端开发面试题汇总[HT ...

  10. Python常用6个技术网站汇总分享!

    Python是一门面向对象的编程语言,它具有丰富和强大的库,能够把用其他语言编写的各种模块轻松地联结在一起,因此也常被称为"胶水语言".Python技术会随着互联网的不断发展一直迭 ...

最新文章

  1. EL之Bagging(DTR):利用DIY数据集(预留30%数据+两种树深)训练Bagging算法(DTR)
  2. MYSQL查询空值/NULL值
  3. KMP算法详解及各种应用
  4. 分布式中的 transaction log
  5. bigdecimal 平均数_MapReduce实例-必须用Combine--求平均数
  6. python消息订阅_python rabbitmq消息发布订阅
  7. 最小生成树之prim
  8. 计算机教师研修计划书,教师信息技术个人研修计划书
  9. C++ Primer 第五版 第6章 6.2——函数参数传递习题答案
  10. Yaffs2根文件系统制作
  11. redis命令执行流程分析
  12. 读完这个我懂了JNDI
  13. 分布式配置管理平台 - Disconf介绍
  14. 全网首发:LINUX编译JNA:编译libffi
  15. 车位编号lisp_CAD自动编号操作
  16. 打补丁更新不适用计算机,安装补丁“此更新不适用于你的计算机”解决办法
  17. 排队论(Queuing Theory)
  18. 11部委印发《智能汽车创新发展战略》,加快智能汽车应用北斗高精度时空基准服务
  19. 使用python bloomfilter实现大文本去重
  20. 汉王速录笔linux驱动下载,汉王速录笔v600驱动 官方版

热门文章

  1. 几种常用的传感器(加速度传感器、重力传感器、方向传感器、陀螺仪)简介
  2. Arduino开发ESP8266之ADS1115模数转换
  3. 模拟高清和数字高清摄像机的区别,全局快门CMOS 图像传感器,Interline Transfer CCD图像传感器
  4. 服务器配置Token验证失败
  5. matlab对数组中的某一列进行排序
  6. 计算两点间距离C++
  7. 设置360浏览器默认以极速模式打开
  8. MAC 访问 Windows 共享文件夹
  9. Lambda表达式与函数式接口详解
  10. “汇新杯”互联网产业模式专项赛介绍