终于收到了 Offsensive Security 的官方邮件通知最终结果,我的 OSWE 之旅也算是尘埃落定。打算以本文回顾一下自己的 OSWE 的准备过程,包括 AWAE 课程的学习和准备以及我在考试过程中踩得一些坑,希望对 OSWE 有兴趣的人能有所帮助。
Offsensive Security,作为安全圈的人应该都熟悉这家公司,Kali 就是他们家的。他们家最广为人知的课程也是 Pentration Testing with Kali Linux(PWK),其对应的考试为 Offsensive Security Certified Professional(OSCP)。我最初结识 Offsec 也是通过 OSCP,认识了一些考 OSCP 的小伙伴,结果一直因为没(bao)有(ming)准(fei)备(tai)好(gui),迟迟没有报名。结果大佬们一个个都通过了,报名费也从799美元涨到了999美元。
所以,当 AWAE 去年年末打折的时候,我毫不犹豫的就报名了。因为相对于 OSCP 来说,我也更喜欢 OSWE,因为自己毕竟是开发出身,对于代码审计也很感兴趣。疫情期间,的确有更多的时间可以看课程。有一个建议就是,当你的 lab 开始之后,可以第一时间就是预约考试,因为 OSWE 相对来说考试可以选的场次更少,越早越好,一共有3次可以重新预约考试的机会。Lab 结束之后,我也一直拖了好久,主要当时认识了几个小伙伴考试都失利了,所以我也没啥信心。最后还是硬着头皮预约了考试。
AWAE(Advanced Web Attacks and Exploitation) 是一门关于应用安全的审计课程。AWAE 经常被拿来和 OSCP 的 PWK 来进行比较,官方也有暗示 OSWE 是 OSCP 的进阶版本,OSCP 注重于漏洞的利用,而 OSWE 则更进一步,侧重于市从白盒角度去审计代码,发现安全漏洞。不过 OSCP 并不是 OSWE 的先决条件,有人认为必须先考 OSCP 才能考 OSWE,这是不正确的。因为我就没有报考 OSCP 直接考的 OSWE。不过,另外一方面,如果你通过了 OSCP,对于 OSWE 绝对是有帮助的。我也在考试过程中体会到正因为我缺乏 OSCP 的经验,导致我犯了一些低级错误。
关于 AWAE 的课程内容,官方有给出大纲。而且今年有课程的内容有比较大的更新,当时如果你的 lab 还有效的话,可以免费更新,不过我当时的 lab 已经失效了,就没有花钱更新了。新加入的内容包括了新的漏洞类型,包括 XXE 漏洞、弱随机口令生成漏洞、DOM 型 XSS、SSTI 以及 websocket 命令注入等。
AWAE 的课程内容其实在网上很多都已经有了相关的介绍。AWAE 的课程其实主要就是一个 PDF 以及 视频。我建议可以把 PDF 看完再去看视频,因为视频没有字幕,而字幕其实就是 PDF 文档。AWAE 的课程主要涵盖的是比较常见的漏洞类型,不过课程里面介绍的一些技巧还是非常重要的,因为很多技巧可能在考试中都会涉及。所以对于课程的内容一定要熟悉。建议 PDF 和视频可以多看几遍,exercise 以及 extra mile 都可以认真地做一下,如果实在卡住了,可以去论坛看看,如果你一页页翻得话,肯定可以找到对你有所启发的评论。我当时是买了一个月的 lab,加上当时是疫情期间,所以可以学习的时间也比较多一点,而且当时的 lab 还没有更新,所以机器少一点,一个月差不多刚好可以学完。不过现在的课程内容丰富了不少,一个月时间可能就比较紧张了。
得益于我国的网络环境,lab 可能无法直连,当初我也被折磨了很久。后来,我琢磨出最佳的方案就是,VPS 直接拨 openvpn,然后直接在服务器上操作。如果需要访问 web 应用的话,可以通过服务器的 socks 端口进行转发。实在是需要界面操作的话,我更推荐使用 x2goclent 而不是 VNC,相对来说使用体验优秀很多,不过还是会比较卡的,要有心理准备。学习过程中也应该做好笔记,包括踩到过什么坑,以及如何解决的,建议都做好记录,后面可能会有用。
对于考试准备首当其冲推荐的就是 Burp 的 Web Security Academy。这绝对是应用安全中的一门最有价值的课程之一,并且还是免费的,简直就是业界良心。后来发现某个国内安全厂商还白嫖过来写公众号文章。这门课程介绍了多种漏洞类型,对于每种漏洞类型都有教材讲解,并且有相应的 Lab 可以进行练习。另外一个我准备的就是 Pentester lab。这个平台学习的好处就是很多练习。不需要 HTB 那样复杂的靶机环境,所以不会受网络的影响很大。而且里面是有一个 code review 系列,我觉得对于 OSWE 的准备有一定的意义。不过这个平台是收费的,但免费也可以使用,只不过很多练习都是收费的。我以前是玩过 HTB 的,不过我打靶机不是特别厉害,HTB 上的确也有那种结合代码审计的靶机,但我觉得难度其实都挺高的。
考试应该是重头戏,应该是大家最为关注的部分,毕竟证书还是比较有意义的。其实 OSWE 的考试过程可能和 OSCP 比较类似,OSWE 的考试形式也就是给你 2 台靶机和 2 台对应的调试机器。需要完成代码审计,并且完成 auth bypass 以及 get shell,才能拿到所有的分。另外重要的一点就是,你需要将整个利用过程通过脚本实现,即通过脚本既可以完成 auth bypass 以及 get shell。所以,OSWE 考试需要一定的开发能力,并且要很好地调试自己的代码,因此需要一定的开发能力。
Offsensive Security 大多数考试都是需要监考的,包括 OSCP 以及 OSWE。关于监考的介绍可以参考这份文档。官网也有考试的相关说明文档。如果考过 OSCP 的,对于监考肯定就有经验了。监考程序就是一个 web 应用,并且需要安装一个 Chrome 插件,需要分享你的屏幕和摄像头。这里注意的一点是如果你有多个屏幕,那么你要选择对应的数目。并且考试的可能需要经常刷新,那么你可能需要重新选择的你的屏幕。我监考一开始折腾了好久,当时需要看我房间的环境,包括窗户和门口,还要看我的桌子并且还要看我的桌下,因为我的电脑是连着网线的,当时搬来搬去还挺麻烦的。接着就是验证你的 ID,我是把护照给监考看的,后来又问我有没有有报名地址的证件,我是没有的,就问我要了其它证件,我就展示了港澳通行证。展示完证件之后还要对着摄像头给监考看。不知道是不是因为外国人识别中国人比较困难,他看我反正看了很久。这一切程序结束了之后,就是考试正式开始了,会收到考试的 VPN 文件。然后你拨上 VPN,然后把连接信息给监考看就可以了。我监考折腾了好久,本来是应该五点钟考试准时开始的,硬是搞到了五点半多,后来和官方发邮件了,也给我延了半小时。考试过程中,你遇到的任何问题,包括网络或者其它的问题,监考都不会回答你。在考试过程中,随时都可以休息,毕竟48小时是个体力活,不过每次离开和回来最好都说一声。
OSWE 的考试既需要对代码的审计,寻找漏洞,又需要 exploit 的能力,对漏洞进行利用,缺一不可。考试中,很重要的一点就是千万不要钻牛角尖,不存在这个漏洞肯定存在这个地方,或者漏洞就时应该这样利用的。如果这里不行,可以换个地方看看,如果这个 payload 不成功,可以尝试换一个。切不可死钻牛角尖,认为它肯定是这样的。或者可以直接去休息下,或者看看教材有没有相似类型的,翻翻笔记,或许能有所启发。考试之前,官方发的邮件记得仔细阅读,不要一上去就急着做题目,48小时其实对于题目的完成应该是足够的。我建议考试的时候是边尝试 debug 机器,边验证靶机。我当初一开始就是完全在 debug 机器尝试,后来希望在靶机上可以一键 shell,还是太天真了。后来在靶机上遇到了各种各样的问题,也有可能是网络原因导致的不可利用,导致我当时非常的慌。所以,建议还是先拿到 proof 再说,exploit 的脚本可以放在后面慢慢试。不要做没有意义的事情。考试的时候,就是因为有个地方用 Java 些比较简单,我就想用 Java 来完成这台机器的 exploit 的脚本。殊不知 Java 在编写的时候没有 Python 的 requests 库那么方便,而且很多东西还要再去查,而且还需要变异的时间,后来我还是放弃了,感觉当时浪费了我不少时间。另外一个建议就是在平常的准备过程中,也到锻炼自己写 exploit 脚本的能力,这样也避免在考试过程中花费太多的时间写脚本。
我的考试过程是从第一天的早上4点45分持续到第3天的5点15分,因为监考的原因帮我延长了半个小时,直到最后一刻我还在尝试我的 exploit 脚本。老实说,如果再给我一次机会,我可能并不会选择报考。考试过程真的太累了,48个半小时,我几乎只睡了4个多小时,当然还有其它的休息时间,但是都没有睡着。尤其是第一天,到了凌晨,其实我也是很困的,但是就是睡不着。当时那种焦灼的心态,还是比较难受的。我记得当时 exploit 在我的 debug 机器好好的,到了靶机突然又不可以了,我真的是非常崩溃。而且考完试,我的颈椎就变得不好了。
考试结束之后就是写报告了,报告的要求在官方的文档里面都有说明。所以在考试的过程中,记得做好截图和笔记。官方是不允许对考试过程做录屏的,很多小伙伴可能担心不录屏可能会有所遗漏,其实还好,只要多截些图应该都没有问题的。个别的遗漏也不会影响整个报告。考试完之后我就睡了一觉,然后去吃了顿火锅,就回来写报告了。报告几乎是一气呵成,写英文报告对于我来说还是比较简单的,加上之前有做过笔记,所以主要工作就是理清思路,写清楚。整个写报告的过程大概花了三四个小时。写完报告我也没怎么修改,就提交了。提交报告记得一定要按照官方的要求命名文件名称,加密上传,如果因为个人原因导致报告的问题,可能会不通过,而且官方也并不会提醒你。当你把报告的上传链接发送给官方之后,会收到一封回执邮件,仅仅是确认收到。
官方对于报告是有提供一个模板的,包括 .doc 格式以及 .odt 格式。但是 word 有一个问题就是越到后面保存就会变得很卡,尤其一般这个报告写得应该还是比较长的。另外一个问题就是格式问题,后面我在调整目录的时候就导致很多地方的格式又乱掉了,很多地方又得重新调整。所以后面我创建了一个 Tex 的模板,oswe-report-template.Tex 相对于 word 来说,格式是一直稳定的,所以会省略很多调整格式的烦劳,所以一般在科研论文的写作中,很多人都比较喜爱使用 Tex。我基本上是按照官方的模板百分百还原了,感兴趣的可以尝试看看。
报告提交之后,10个工作日以内会给出结果的,我差不多是6天的时间。收到结果的邮件是凌晨,当时我凌晨醒了一下结果就看到了。虽然没有想象中那么兴奋,但是知道结果之后我还是睡不着了。毕竟,之前也是一直焦灼地等待结果。邮件主要就是确认一下证件上的姓名,如果姓名没有问题的话就是反馈一下收件地址,因为新冠的原因,证件寄过来可能非常久。
AWAE 的准备过程以及 OSWE 的过程都是一个比较复杂和纠结的过程。这个过程可能不是非常美好的,不过我也在准备的过程中结识了很多优秀的小伙伴。这整个过程其实就是一个爬山的过程,你必须一直坚持着往上爬,否则可能就是半途而废没有结果了。但当真正一切结束,经历完这个考试,你或许也能体会到 Try Harder 的含义吧!
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/132118.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论