首页
社区
课程
招聘
[原创][翻译]规避技术:macOS
发表于: 2021-6-8 10:59 9867

[原创][翻译]规避技术:macOS

2021-6-8 10:59
9867

备注
原文地址:https://evasions.checkpoint.com/techniques/macos.html
原文标题:Evasions: macOS
更新日期:2021年6月8日
此文后期:根据自身所学进行内容扩充
因自身技术有限,只能尽自身所能翻译国外技术文章,供大家学习,若有不当或可完善的地方,希望可以指出,用于共同完善这篇文章。

目录

macOS沙盒检测方法

1. 硬件模型检测方法

2. 检查是否启用了超线程

3. 内存大小检测方法

4. I/O套件注册表检测方法

5. Boot ROM版本检测方法

6. 检查是否启用了系统完整性保护

识别标志

反制措施



macOS沙盒检测方法
大多数针对macOS的沙盒和虚拟环境检测方法都是基于使用 "sysctl "和 "ioreg "等外壳命令。我们没有提供代码样本块,而是展示了命令和它们的参数。不幸的是,由于Apple的软件许可政策,我们无法收集各种管理程序的命令输出。因此,我们尽可能比较物理机和虚拟机的命令输出。

1. 硬件模型检测方法
所使用的命令:


如果在本地Apple硬件上运行,返回值包含硬件的型号名称:


在虚拟化的硬件上,该值可能包含管理程序的名称:


这种技术在MacRansom恶意软件中出现过。如果命令输出不包含 "Mac "子串,恶意软件认为它是在虚拟机中运行。

2. 检查是否启用了超线程
2018年之前发布的大多数Apple硬件(MacBook、Mac mini)都启用了超线程。这意味着物理核心的数量等于逻辑核心的一半。然而,一些管理程序不提供改变逻辑核心数量的能力,逻辑核心数量总是等于物理核心数量。
所使用的命令:


在物理硬件上,该命令的输出值必须等于 "2"。这一技术在MacRansom恶意软件中出现过。

我们应该注意到,新硬件的超线程功能被禁用,例如,配备6核英特尔酷睿i7处理器的Mac mini。因此,这种方法应该被认为是过时的。

3. 内存大小检测方法
这种方法类似于用于PC的内存大小检测方法。当运行几个虚拟机时,每个虚拟机被分配少量的内存,而Apple物理硬件通常有超过4Gb的内存。
所使用的命令:


该命令以字节为单位返回RAM的大小,例如:17179869184。

4. I/O套件注册表检测方法
有几种方法可以使用I/O工具包注册表来检测虚拟机。
检查 "IOPlatformExpertDevice "注册表类
所使用的命令:


IOPlatformExpertDevice类的以下字段可以被检查,以检测一个虚拟机:

Field

Physical hardware example value

Virtual machine example value

VM detection rule

IOPlatformSerialNumber

"C07T40BYG1J2"

"0"

Equal to "0"

board-id

<"Mac-87C4F04823D6BACF">

<"VirtualBox">

Contains "VirtualBox", "VMware", etc.

manufacturer

<"Apple Inc.">

<"innotek GmbH">

Doesn't contain "Apple"


检查USB设备的供应商名称:
所使用的命令:


在原生的Apple硬件上的输出样本:


在虚拟化的硬件上,该值可能包含管理程序的名称:


通过检查命令输出是否包含管理程序名称,例如 "VirtualBox"、"VMware "等,可以检测到一个虚拟机。
另一个选择是用"-l "选项调用ioreg命令,使其显示所有对象的属性。输出应与已知的hypervisor名称进行核对,例如:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 6
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
收藏了,等更新,一直想看mac的这类文章
感谢楼主
2021-6-10 21:27
0
雪    币: 1140
活跃值: (266)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢楼主
请问有没有MacOS内核编程的
2021-7-24 00:00
0
游客
登录 | 注册 方可回帖
返回
//