攻防交织:EXP-301 攻击性安全漏洞开发(OSED)课程与考试深度解析

本文详细回顾了Offensive Security的EXP-301课程与OSED认证考试,涵盖x86漏洞开发基础、ROP链构建、自定义shellcode编写及IDA逆向工程等核心技术,并分享实战备考策略与考试经验。

ROP and Roll: EXP-301 Offensive Security Exploit Developer (OSED) Review and Exam

Jun 23, 2021 · 1969 words · 10 minute read

The Rule of Three 🔗

Windows用户模式漏洞开发(EXP-301)课程及配套的攻击性安全漏洞开发(OSED)认证,是作为攻击性安全认证专家三级(OSCE3)认证的一部分最后发布的三门课程之一。自2019年新任CEO Ning Wang上任以来,攻击性安全公司彻底革新了其悠久的课程和认证体系,最终在2020年底宣布了新的OSCE3。正如我在攻击性安全经验渗透测试员(OSEP)评测中讨论的,从营销和销售策略的角度来看,这很有意义。尽管攻击性安全以其无过期认证而闻名,但此后它已淘汰了其中一些,包括旧的OSCE以及最近的攻击性安全无线攻击(OSWP)。它还推出了一些经常性收入的订阅产品,如攻击性安全试验场、PWK365等。哦,而且它还将考试重考的价格从150美元提高到249美元。这些对攻击性安全来说都是很好的商业决策,但对于普通的网络安全专业人士来说,EXP-301/OSED值得吗?

谈到学习漏洞开发,自2009年Corelan经典的漏洞编写教程系列以来,基础并没有真正改变。你从基本的溢出和结构化异常处理程序开始,然后转向越来越具有挑战性的绕过技术,如数据执行保护和地址空间布局随机化。你学习进行返回导向编程、自定义shell编码以及更多中级主题——全部在x86架构下。这是因为即使现代漏洞开发环境与2009年相比发生了巨大变化,但基础在很大程度上保持不变。然而,对大多数人来说,这仍然是一个陡峭的学习曲线,因为你必须围绕栈和汇编代码重新配置你的思维过程——这些并不是最直观的概念。

这就是为什么x86的基础漏洞开发课程在今天仍然相关,而且我觉得EXP-301在这方面做得非常好。你当然可以只做Corelan的免费漏洞编写教程系列,但你不会使用WinDBG和IDA等现代工具。此外,EXP-301提供了大量材料,指导你每一步,直到最终在你脑海中豁然开朗。我无法强调这一点——无论你是在x86还是x64架构下工作,在x64dbg还是WinDBG中,除非你对在汇编领域操作栈达到了高度熟悉,否则你将面临无尽的困难。实验室在磨练漏洞开发的特定方面非常出色,然后考试以经典的“Try Harder”方式将它们全部整合在一起。当EXP-301利用攻击性安全的漏洞开发传统时,它表现得尤为出色。

在2021年2月底通过OSEP后,我在2021年3月至5月参加了60天的EXP-301/OSED套餐,并最终在6月中旬通过了考试。在撰写本文时,这需要花费1299美元。由于我的工作角色相当多学科,我发现有必要建立我的漏洞开发技能,而OSED来得正是时候。我也不能否认OSCE3“光环”认证的诱惑推动了我参加它——营销起作用了!虽然我之前做过Corelan系列和偶尔的漏洞开发教程,但我并没有完全理解。此外,虽然我在应用安全和渗透测试方面更得心应手,但我觉得没有二进制漏洞利用,我的攻击技能缺乏那种额外的冲击力。以下是我的评测,以及一些最大化你OSED体验的技巧和窍门。

What You Should Know 🔗

攻击性安全建议以下先决条件来参加Windows用户模式漏洞开发课程:

  • 熟悉调试器(ImmunityDBG、OllyDBG)
  • 熟悉32位的基本漏洞利用概念
  • 熟悉编写Python 3代码

以下可选技能被推荐:

  • 能够基本阅读和理解C代码
  • 能够基本阅读和理解32位汇编代码

然而,虽然我认为这些先决条件对于课程的前半部分足够,但一旦你进入返回导向编程和逆向工程,理解32位汇编代码就不再是可选的。你真的应该在参加课程前尽可能建立对汇编和逆向工程的熟悉度。此外,通过先完成一些Corelan漏洞编写教程,你可以在早期部分节省大量时间——EXP-301与它跟踪得非常紧密。

与所有攻击性安全课程一样,EXP-301在推荐的先决条件之上教你所有需要知道的知识,但除非你有时间持续彻底学习材料,否则你可能会发现没有额外准备很难完全掌握概念。

What You Will Learn 🔗

与教授渗透测试中广泛主题的PEN-300/OSEP不同,EXP-301坚持基础并深入。如前所述,你从缓冲区溢出和SEH覆盖的基础开始,但课程很快转向使用IDA进行逆向工程、自定义shell编码你的egg hunters和反向shell、ROP链,最后是格式字符串攻击。

我发现EXP-301在三个领域特别强:逆向工程、自定义shell代码和ROP。虽然有些人可能会质疑在Ghidra存在的情况下教授IDA Free的有用性,但我会说在这个级别上两者是相当可互换的。此外,IDA Pro仍然是高级用户的标准,所以最好先熟悉IDA。有趣的是,通过迫使你依赖IDA Free有限的功能集,课程从长远来看让你更擅长逆向工程。虽然我认为自己相当精通逆向工程的基础,完成了去年Flare-On挑战的三分之二,但我仍然依赖糟糕的分析模式并严重依赖伪代码拐杖。在IDA Free中只有汇编反编译和有限的签名,我不能再这样做了。

ROP链和自定义shell编码可能极其难以掌握,因为对大多数人来说直观理解这些概念很困难。在课程之前,虽然我知道ROP的基本原理,但我几乎无法入门。EXP-301正确解释了过程的每一步,通过多个练习处理每个汇编指令,直到它对你来说自然流畅。到课程中期,我足够自信地将ROP应用到我自己的漏洞研究中,并成功为现实世界的漏洞构建了利用程序,这些漏洞现在待全面披露。

然而,两个格式字符串攻击章节有点弱。放在课程末尾,它们分别涵盖格式字符串读取和写入。虽然概念教得很好,但我肯定可以多用一些练习来利用它们。也许课程本可以教授更多攻击向量和格式字符串变体。

总体而言,每一章都很好地建立在上一章的基础上,为漏洞开发奠定了坚实的基础。

What You Should Also Learn By Yourself 🔗

作为一门漏洞开发而非漏洞研究课程,EXP-301只涵盖通过逆向工程路线寻找漏洞。你不会学习模糊测试或源代码审查,这些本身可以是整个课程。你可能想学习这些以便自己正确进行漏洞研究。你可以查看我的Peach Fuzzer教程,作为模糊测试的初学者快速入门——那里有很多文章和教程。EXP-301和Corelan教程的一个大区别是,前者只处理基于网络的漏洞利用,而Corelan涵盖的一些漏洞利用是基于文件的。这是另一个需要覆盖的巨大领域。

除此之外,明显的下一步将是高级Windows漏洞利用课程涵盖的概念:内核漏洞利用、类型混淆、堆喷洒等——接近真正的精通。你不会真的期望这些在一个基础的漏洞开发课程中,但它们是走远所必需的。

How I Prepared for the Exam 🔗

为了准备考试,我试图完成所有练习和额外里程,只错过了两个超级难的(你会知道它们是什么;课程告诉了你这么多)。我还完成了所有实验室机器。

此外,我致力于构建我的自动化。Epi有一个很棒的OSED-scripts仓库,自动化了漏洞开发中的各种任务,如分类ROP小工具和生成自定义shell代码的构建块。然而,如果你在不理解的情况下使用它们,那就是灾难的配方——通过阅读代码并用它们逐步完成各种练习,专注于理解这些脚本如何以及为什么工作。我在练习时向仓库贡献了我自己的添加和编辑,这帮助我更好地理解底层概念。你可以做我所做的,修改仓库或编写你自己的自动化,但最终目标应该是巩固你的基础,而不是走捷径。

除此之外,我还在自己的漏洞研究中应用了一些课程知识。如前所述,这些漏洞待全面披露,但我对它们非常兴奋,因为它们展示了我课程中学到技能的立即应用。

我也强烈建议加入官方的攻击性安全Discord服务器。你可以在学习课程时与其他学生和攻击性安全工作人员聊天,这真的有助于消除误解或澄清概念。大声喊出@TheCyberBebop @epi @bonjoo @hdtran等等!

我对考试非常担忧,而我是对的。虽然OSWE和OSEP考试通常与基于课程和实验室的预期一致,但OSED考试完全是另一回事。它有点像通过哈哈镜看我课程中学到的一切——相同但不同。Try Harder不同。在每一个转折点,我都觉得障碍被特意放在我的路上,使事情更困难。我建议你正确阅读说明并管理好你的时间。到考试结束时,我完成了所有三个挑战,尽管其中一个只在开发机器上工作。我在写报告时才意识到为什么——一个真正的facepalm时刻!只能说在那48小时的考试中我没睡多少。

我在周三提交了报告,并在下周二下午收到了我通过的激动消息。我还收到了第二条祝贺消息,说我获得了OSCE3。

Triple Threat 🔗

要回答“EXP-301值得吗?”的问题,你可以从两个方面考虑。作为一门基础的漏洞开发课程,我认为它很棒。它真的让你达到对基础的熟悉水平,如阅读汇编代码和操作栈,这是免费文章难以实现的。作为OSCE3的一部分,我认为它是对你全面技能和承受痛苦能力的很好证明,但不是严格必需的。虽然攻击性安全角色往往是相当跨学科的,但完全可能停留在应用安全或渗透测试领域,而不需要阅读一行汇编代码。只有在你确定需要漏洞开发技能或有资源为了完成三部曲而挥霍时才承担这个。

至于下一步是什么,攻击性安全继续在CEO的新方向下刷新其产品线。它最近宣布无线攻击课程将被淘汰,可能为现代物联网课程铺平道路。以其当前的价格价值比,攻击性安全介于大众市场Udemy风格课程和天价SANS及定制培训之间。就个人而言,我有兴趣看看它从长远来看如何搅动这个市场。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计