Offsec OSMR课程以及认证心得分享
大家好,最近几个月以来我在网络安全社区不是很活跃,因为我在学习 Offsec 的 OSMR 课程。这是一门有关 Mac OS 内部原理,以及漏洞利用开发的课程。课程的体量十分庞大,远远超出了我的预期,内容对于我来说也是十分的新鲜,这使得我投入较多的时间。幸运的是,最近我通过了 OSMR 的考试,期间的努力学习得到了回报。
相对于 Offsec 的其他认证,例如 OSCP/OSEP/OSWE,OSMR 较新,认证持有者较少,因此相关的心得与分享也比较少。尤其是中文的 OSMR 心得,我目前尚未遇见,那么,我希望自己的分享能填补上这块空白。接下来,我会分别简要地介绍自己学习的动机,课程基本信息,考试相关,以及个人评价。
动机
我有见证 OSMR 课程的首发,在当时觉得很新奇,但并没有报名和学习的想法。因为在平常的工作中,涉及 Mac 的攻击与利用几乎没有。但我在工作中的一次以 Mac 为主的红队项目让我意识到 Mac 攻击与利用的重要性,以及魅力。
在此之前,我有过 Mac 的使用经历,但对于 Mac 操作系统核心的了解很肤浅,觉得 Mac 在一些地方比较像 Linux,应该有挺多地方可以照搬和融会贯通吧。但在那次 Mac 为主的红队项目中,我的傲慢与无知被颠覆了。项目开始之前,领队发给了我一些公司内部的 Mac 安全的资料连接,介绍了 Mac 的一些安全机制,例如 TCC,沙箱,GateKeeper,SIP 等,以及在 Mac 上的初始访问的方法。光是这些名词我听都没听过,以及浏览了 Mac 上的初始访问方法,让我意识到 Mac 和 Linux 有着很大的不同,我对这个操作系统根本不了解。当时的客户给我们分别邮寄了员工会持有的 Mac 笔记本,以适配 assumed breach 的情景。既然有了设备,那么本地侦察和审计自然是需要做的,我有点手足无措。好在的是,我的领队给我发了一些链接,例如怎么寻找和利用 dylib 劫持。虽然我在其他的阶段有了一些发现,但就 Mac 设备的本地侦察和利用上面,很遗憾我没有帮到什么。
在这个红队项目之后,我决定以后会学习 OSMR。不过那时候我还在追求 OSCE3,因此不在近期的计划中。但如今,我也没什么借口了,在老板和雇主的支持下,我报名了 OSMR 课程。
课程基本信息
OSMR 是一门 300 系列的课程,因此显然具备一定的难度,更多信息,例如课程目录,可以查看 OSMR 官方页面:https://www.offsec.com/courses/exp-312/。
OSMR 是 EXP,即漏洞利用开发的分类。因此,尽管不是必须,掌握一些前置的技能很有帮助,例如 C 系编程语言,AMD64/ARM 汇编,脚本编写,逆向工程,DEBUG。关于是否需要持有物理 Mac 设备来学习,这个问题值得讨论一下。恰好在我考试前两天,OSMR 迎来了重大更新。在之前,OSMR 主要是基于 AMD64 架构的,但现在和以后,会逐渐完全迁移到 ARM 架构,而 AMD64 架构的内容被封存了。
对于这样的重大内容更新,我十分满意,这体现出 OSMR 课程的与时俱进,内容很新。但与此同时,因为架构的转变和基础设施的局限,尽管之前学生可以使用 Offsec 提供的 Mac VM 来练习,但以后需要构建自己本地的 Mac VM 用于学习和练习。因此,这个问题的答案为:是的,从现在开始,你需要持有 ARM 的 Mac 设备用于学习。
正如我刚刚所称赞道的,OSMR 的内容十分与时俱进,这很重要,因为 Mac 的系统原理以及安全控制机制更新地比较勤快。自 OSMR 发布以来,教材内容已经得到了数次更新,以下这些内容是自首发以来新增加的章节。
The Art of Crafting Shellcodes (Apple Silicon Edition)
GateKeeper Internals
Bypassing GateKeeper
Injecting Code into Electron Applications archived
Mach IPC Exploitation
Chaining Exploits on macOS Ventura
如今,OSMR 教材的内容十分庞大,而且这些内容对于大多数人是很新奇的,因此会需要数月的投入时间。教材中所教的内容也比较难,需要花足够的时间来理解掌握,做笔记,以及形成自己的方法。
考试
考试形式
考试难度
过关标准
备考练习
与 OSED 对比
个人评价
优点
不足