-
OSEP (Offensive Security Experienced Penetration Tester)
-
OSED (Offensive Security Exploit Developer)
-
OSWE (Offensive Security Web Expert)
-
三项认证分别考察:红队攻防、Windows二进制(x86)、代码审计
-
每个单项都需要在48小时的视频监考下完成,并需要在考试结束后24小时内上传全英文报告
-
通常在报告提交后一周内会收到结果通知的邮件
在媒体@Paul Jerimy的安全认证图表中,将OSCE3列为仅次于GSE的顶级认证之一,足以说明其在世界范围内认可度
另外,强烈建议先通过另一个更为知名的认证-OSCP,以建立更为全面的安全思维(虽然它作为OSEP的前置认证,但并不比OSCE3的任何一个单项容易)。对于OSCE3的每一个单项,稍后我会逐一进行更为详细的介绍
2、OffSec是何方神圣?
-
Kali Linux:基于Debian Linux研发,应用最为广泛的渗透测试OS
-
Metasploit :强大的渗透测试框架,简称MSF
-
ExploitDB :业内最全的漏洞POC库之一
-
Google Hacking数据库:信息收集必备之一
3、认证有什么价值?
另一方面的价值,也许需要根据每个从业者的工作性质出发去思考,以笔者为例,工作的主要方向为SDL体系建设,那么OSWE认证作为多语言的代码审计课程,一定是需要深入研习的,而OSED可以当做微软的血泪史去品读,当看到GS、SafeSEH、SEHOP、DEP、ASLR、CFG等安全机制的陆续发布和被绕过,就能感受到安全左移的重要意义(写到这里想到Fastjson,相信大家深有体会),最后OSEP课程中也能发现一些针对DevOps的攻击,这警示着我们安全不仅要嵌入流程,流程本身的安全也是需要重视的,相信每一位从业者都能在三个课程中得到不同的启示
另外,在官方discord频道,可以和世界上知名的安全研究者们交流,这非常有趣(现在还太菜,不敢说话)
4、OSCE3学习经验
关于如何报名、考试等流程性内容已经有不少文章介绍,且官网也有比较详细的介绍,这里不再赘述,这里仅提醒一点,需准备好护照,以证明你的英文名身份
OSEP - 检测规避与内网渗透
将OSEP放在最前面,首先是出于对OSCP的尊重,因为他真实折磨过我,另外我曾在2022年3月参加过OSEP考试,由于拖延症严重,在最后考试期限时我还未学习完整个课程,最终我在48小时的鏖战中仅仅收获了10分,这也是我的OSCE3课程中唯一retake的科目
1、基于DOC、HTA、LNK等进行钓鱼攻击
2、绕过防病毒软件的技巧与方法
3、绕过AMSI、Applocker的方法
我认为课程的设计者是一名经验丰富的红队成员,因为AD域渗透和Windows Defender的绕过几乎是密不可分的,我们不仅要会使用工具,还应该具备自己编写工具以绕过检测的能力,比如:PsExec作为横向移动的重要手段,但会在目标上写入文件、创建服务,这是非常容易被发现的,那么通过分析其他相关的Windows API,去编写无需创建服务、无文件的属于自己的PsExec,应对诸如此类的场景,应是红队人员需要具备的素质之一
虽然我非常认可OSEP课程,但我仍认为有几点不足,如果官方在未来不在这些方面进行升级,我们自己也应该在这些方向进行扩展以应对实战场景:
1、没有常见域内提权漏洞的剖析:历史漏洞一定有其学习的价值,甚至是实战价值,比如:MS14-068(伪造高权限PAC)、zerologon(AES算法使用不当)、AD CS+Petitpotam/printerbug+NTLM relay(证书服务)、noPAC(协议机制设计缺陷)等
2、免杀思路相对陈旧(这方面本人也是菜鸡,说的不对欢迎拍砖):对于特征码免杀,可以大致介绍壳编写的思路,或许更具复用性;课程似乎没有对于杀软对API的hook机制绕过的介绍,但我认为对于学习过OSED课程的人来说,重写ring3 API或者syscall绕过动态检测是值得一提的
3、缺乏对常用工具的实战化介绍:个人认为对Bloodhound、impacket包、PowerUpSQL这些工具的灵活使用是域渗透的必备技能之一,但课程只介绍了域内攻击的原理,对于这些工具如何应用于实战,留给了学员自己去摸索,不能说这样不好,但确实需要花费不少额外时间
虽然但是,OSEP课程仍具有很高的学习价值,关于考试难度个人认为高于另外两门,需要反复的练习,另外,OSCP课程学到的知识也不能丢,切记!
OSED - windows x86 二进制与逆向工程
4、学习linux的相关知识
OSWE - 多语言代码审计
由于笔者工作性质,以及具有一定的开发经验,OSWE课程的学习是最为顺利的,但由于课程涵盖的语言和漏洞类型很全面,且extramiles的任务是非常耗时的(比如调试java和.net的ysoserial工具),我并不建议大家像我一样囫囵吞枣地学习它
课程涵盖的语言有:PHP、JAVA、.NET、node.js、python,涉及的漏洞囊括:XSS、SQLi、CSRF、XXE、SSRF、SSTI、原型链污染、反序列化等,可以说几乎覆盖了日常工作中可能接触到的所有通用漏洞类型
由于该课程已经是发布的第三版,所以后续加入的几个章节难度陡升,且几乎都是Offsec团队自己挖掘的CVE,整个漏洞利用过程更像是在炫技,让我印象最为深刻的有:利用SSRF打穿NAT背后的整个微服务体系;利用XSS获取用户页面websocket连接key并通过它挖掘RCE;通过原型链污染篡改渲染变量造成RCE,虽然看完我还是不会,不得不说看的时候是十分过瘾,值得反复品味
回到主题,我认为课程本身最大的意义是了解是每个语言的特性,以及为什么某些语言会更容易出现某种类型的漏洞,另外课程教会了我们如何从MVC的设计理念出发,去快速分析应用的运转逻辑,猜测可能存在的漏洞点,而不是逐行逐字的去阅读代码(大佬和时间多的兄弟们另当别论)
整体来看,个人认为OSWE是非常好的代码审计入门课程,但如果要应用到日常的代码审计工作,还需要学习很多,比如每个语言的开发框架,企业级应用架构,笔者也会在后续从研发基础开始系统性的学习JAVA安全,以更深入理解研发安全体系
关于课程准备和考试:我的OSWE是从3月OSEP失利后开始的,于4月通过考试(通过时lab还剩余N天),由于每天下班较晚,晚上21点-24点是我备战的"黄金3小时",我将这一个月分为三个阶段:1、研发知识回顾(最好是能用每种语言写一个小功能,就算是hello world都是有点用的,让你读代码的时候会更有底气)2、过一遍教材(跟着看代码,思考他为什么要跟进这些函数,哪些是靠分析,哪些是根据经验)3、完成extramiles的练习(当完成所有章节的学习后,再回头进行更进一步的练习,可以温故而知新,虽然这也许会因为遗忘而变得困难)整个考试过程我在24小时之内拿到满分并提交报告,但也存在不小的运气成分,我的代码审计水准和平时经常交流的朋友们差距还很大,OSWE应该仅作为学习过程的里程碑,安全之路还很长,唯有try harder!
5、写在最后-我的安全之路
至此我通过3-7月的"黄金3小时",完成了OSCE3的学习和认证(实际上21年短暂备战过一段时间OSEP,但是拖着拖着就),经过这段很难熬却充实的经历,我也迎来了安全职业生涯的第四年
我认为自己的经历足够有趣,三年前的6月,我于BIT获得材料学硕士学位,在2019年3月于Powder Technology上发表的论文还是这个画风
未曾想到,三年后自己会走上完全不一样的道路,由于当时的科研方向是飞行器热防护,自己也常常调侃到,本质做的都是安全,不算转行
写这段故事是因为最近有位很年轻且厉害的新加坡小哥,因为服兵役上大学晚而苦恼,我想告诉他,23岁,是朝气蓬勃的年纪,珍惜时间,前途依旧是一片光明,我始终相信,做自己热爱的事,什么时候开始都不算晚,和各位共勉!
最后附上offsec官网:
https://www.offensive-security.com/
原文始发于微信公众号(精神与时间房子):拨云见雾 | 记我的「OSCE3」之旅
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论