首页
社区
课程
招聘
[原创]分析实战读书笔记13_虚拟机检测
发表于: 2021-3-18 14:09 6665

[原创]分析实战读书笔记13_虚拟机检测

2021-3-18 14:09
6665

本章简单记录一下常见反虚拟机的技术手段,作为字典,方便查找

net start | findstr VM

通过cmd命令查看所有名字包含VM的服务

image-20210312141939235

VMare的安装目录包含VMware字样,可以遍历文件夹检测VM痕迹。

通过遍历注册表可以查询包含VM字样的注册表项从而探测VM。

image-20210312142432478

虚拟机镜像中的MAC地址常以00-0C-29开头,如下图

image-20210312142702633

VM镜像中的磁盘ID常包含VM字样

image-20210312143008670

分析师们常拥有多个VM镜像以应对不同类型的样本,大多数镜像中的磁盘大小不会太大。而如今物理机的存储量都是巨大的。

通过搜索从0开始的整块物理内存来查找VM字样,通常这种方法可以检测出上百处涉及VM的字符串。

VMware采用二进制翻译的方式来模拟指令的运行。大量的指令会产生内核态的陷阱指令或中断指令,VMware截获所有异常并处理它们,来模拟出物理机的效果。

在x86体系结构中,一些指令在获取硬件相关信息时不产生异常,这就导致VMware无法截获并进行模拟。为了避免性能损失,一些指令VMware并未将它们虚拟化,这就导致了同样的指令在实体机与虚拟机中会有不同的结果。如sidt,sgdt,sldt

sidt是用户态指令,并且不产生中断,虚拟机监视器探测不到sidt指令的执行,无法进行模拟执行。因此在虚拟机中执行sidt指令时会返回虚拟机的IDTR,Red Pill通过这种差异来监测虚拟机的运行。

实体机: sldt返回0

虚拟机: sldt返回非0

VMware会监视in指令的执行。触发条件:

image-20210312151809429

本章简单介绍了一些反虚拟机技术,其中有些技术已经淘汰无人使用,有一些技术现在依然是很有效的检测手段。对于虚拟机的检测可以从各个方面入手,分析师们只能慢慢积累,将所见的反虚拟机手段记录下来。方便日后进行镜像的配置。

这个恶意代码使用了什么反虚拟机技术?

image-20210312154228194

如果你有-一个商业版本IDA Pro,运行第17章中代码清单17-4所示的IDA Python脚本(提供如
findAntiVM.py),看它发现了什么?

每种反虚拟机技术成功执行后会发生什么?

针对你的虚拟机,这些反虚拟机技术中哪些技术会生效?

为什么每个反虚拟机的技术,会生效或失败?

怎么使这些反虚拟机技术无效,从而让恶意代码运行?

这个DLL导出了什么?

image-20210312163604768

尝试使用rundll.32.exe 安装后,都发生了什么?

image-20210312163657131

它创建了哪些文件,这些文件都包含什么内容?

image-20210312164253189

它使用何种反虚拟机方法?

image-20210312164415328

在恶意代码运行时,怎么强制安装它。

怎样可以永久禁用这些反虚拟机技术?

每个安装的导出函数是如何工作的?

 
 
 
 
 
 
 
 
mov eax,0x564D5868
mov ebx,[esp+x]
mov ecx,0xA
mov dx,0x5668
in eax,dx
mov eax,[esp+x]
cmp eax,0x564D5868
mov eax,0x564D5868
mov ebx,[esp+x]
mov ecx,0xA
mov dx,0x5668
in eax,dx
mov eax,[esp+x]
cmp eax,0x564D5868
str技术    NoPill技术
str技术    NoPill技术
 
 
执行401000处的退出+自删除

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 3
支持
分享
最新回复 (1)
游客
登录 | 注册 方可回帖
返回
//