ROP与漏洞开发:EXP-301 OSED课程与考试深度解析

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

ROP与Roll:EXP-301 Offensive Security漏洞开发工程师(OSED)回顾与考试

2021年6月23日 · 1969字 · 10分钟阅读

三强法则 🔗

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

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

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

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

你应该知道什么 🔗

Offensive Security建议以下先决条件来参加Windows用户模式漏洞开发课程:

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

以下可选技能被推荐:

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

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

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

你将学到什么 🔗

与教授渗透测试广泛主题的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应用到我自己的漏洞研究中,并成功构建了真实世界漏洞的利用,这些漏洞现在待全面披露。

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

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

你还应该自学什么 🔗

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

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

我如何准备考试 🔗

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

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

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

我还高度推荐加入官方的Offensive Security Discord服务器。你可以在学习课程时与其他学生和Offensive Security工作人员聊天,这真的有助于消除误解或澄清概念。大声喊出@TheCyberBebop @epi @bonjoo @hdtran等等!

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

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

三重威胁 🔗

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

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

training binary

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