忙了一年,该来回填一下年初的坑了。

年初时候报了OSCP,打了一个月靶机,最后通过了考试,拿到了证书。

当时说要写篇博客来分享一下整个学习的过程,现在年末了,有一点点时间,也觉得这个坑不能拖到明年,就来简单写写自己的学习过程吧。

简介

来自维基百科上对OSCP这个认证的介绍:

Offensive Security认证专家(Offensive Security Certified Professional,缩写 OSCP),是Offensive Security提供的一项道德黑客认证,它教授渗透测试方法和Kali Linux发行版(BackTrack的后续版本)中所包含工具的使用方法。[1]OSCP是一项实践的渗透测试认证,要求持有者在安全的实验室环境中成功攻击和渗透各种实时机器。[2]它被认为比其他道德黑客认证更具有技术性,并且是少数的需要实际渗透测试技能证明的认证之一。[3][4][5]

简单来说,OSCP 就是关于渗透测试的认证,当报名参加这个认证之后,会有一个课程包,课程包里有一份教材和视频,以及相应时长的练习靶场访问权限;当觉得自己可以了的时候一次考试机会,通过这个考试就可以拿到 OSCP 证书了。

动机

之前就一直有听别人说过这个证书。对这个证书的印象就是觉得酷,作为从业者其实公司有在引导我们多去考取一些信息安全相关的证书,这个证书就恰好在公司的证书目录内。进一步了解过后知道了它是24小时纯实操考试,当时没改制前是24小时打五台靶机+撰写报告,改制后是要打一个域+三台靶机+撰写报告,没有理论题,时间足够长,能让自己玩得爽,和那些发一堆题库让你记忆的考试不知道酷到哪里去了。24个小时的实操考试,也让自己觉得是对体力和脑力的挑战,反而让自己感到更加兴奋了。

还有一点,这个证书一旦拿到,终身有效,不用续证,省心。

报名

目前报名其实有三种选择。

  • 90天课程包 — 1499刀
  • Learn One — 原价2499刀,年底1999刀,可以顺带学下和考下 OSWP(无线安全),KLCP(Kali基本操作),一些基础课程
  • Learn Unlimited — 5499刀,可以学和考所有在线课程,看这里 https://www.zhaoj.in/read-8104.html

但我那时报名的话其实还有30天和60天的选择的,那时花了999刀就拿下30天的了,从那之后官方就一直在调价和调形式,很迷。但那时候没找亚太大区的主管 David,要找了他的话其实还有优惠,能省更多钱。后面加上他,报名 Learn Unlimited 啥的他也给了很大的优惠,对于 Offsensive Security 家培训和认证有兴趣的小伙伴可以私聊我要联系方式,具有有啥优惠就看自己的嘴皮子了。

官方的注册链接在这里:

https://www.offensive-security.com/pwk-oscp/

注册报名的时候最好使用自己公司或者学校的邮箱来注册,他们的注册验证流程卡得比较严,用对公邮箱可以减少很多麻烦。听说用公司邮箱可以少传一些资料,QQ邮箱之类的可能多需要一些资料。

国内现在可能也有很多家在宣传自己的有在做OSCP培训的,看自己需要要不要去他们那里加训和报名了。但我自己个人的态度就是觉得官方的课程包和靶场已经足够,学习这些东西也是自己的事情,培养自学能力和提升自己技术水平一样重要,别人 Push 着自己往前走容易形成怠惰和依赖。

在注册完之后大概半天或者一天左右就会有一封邮件过来让你提交自己的证件做进一步身份验证了,如果那时候是用对公邮箱注册的话应该就会只需要护照扫描件。现在因为疫情等原因护照比较难办,我是因为以前就想着出去玩,在15年的时候就办了护照,所以这一点对我来说并没有什么障碍。

当回复完邮件,把护照扫描件发过去之后,对于中国等某些国家和地区的学员会发过来一个连接测试包,收到后需要尝试着用这个连接包连接上他们的Lab进行连接测试,以避免后续的学习过程中因为连接问题影响体验。但在国内其实因为出口带宽等各种众所周知的原因连接经常会出问题,但这些问题实测用各种工具来解决是可以的,有需要和疑问的同学可以私聊交流。

确认完自己连接测试没问题,回复这封邮件之后,就会让你选择课程和练习的开始时间了,听说现在都是购买课程时候直接指定开始时间,更加方便了。

选择完成后,就静等课程开始了。在课程开始那天的早上八点(GMT 零点)就会发来一封邮件,里面有教材,视频的下载方法(现在都是直接在他们的面板上查看,方便了)以及Lab也就是练习靶场的访问方式。还有就是考试的预约链接(现在也能直接在面板里操作了,赞),如果有自己中意的考试时间就可以在一开始就预约好,避免到时想考的时候只剩下那些凌晨两三点开始的阴间时间了。所以我在一开始就预约了一个月之后的考试,时间非常符合我的作息,早上十点钟开始。

学习

讲道理,教材和视频我基本没怎么看,自己一看书就犯困,看视频也是这样的感觉。但其实这八百多页的教材我搂了一眼,觉得写得还是很不错的,体系很明晰,如果没有这方面的基础的话仔细读读还是会非常有收获的。

而且每一小节后面都有对应的练习题,关于考试有个政策就是如果做完练习题和写完十台靶机的报告可以获得十分奖励分,有什么用后面在考试那一节详细提;但让我老老实实看书在当时看来比登天还难,所以我一开始就没想着要这十分了。

而我最看重的就是他们的 Lab 也就是实操靶场。里面分成四个网络,当时共75个机器。四个网络之间有依赖关系,比如需要拿到 Public 里特定的机器才能解锁 Dev Network 里的机器。这些机器总的来说还是值得一做的,可能有些机器上的系统或者是服务版本比较老,比如当时做的时候甚至发现里面有一台 Windows 2000 的机器,但攻击的方法论无论在什么时候都是很适用的,现在遇到了,绕过去,以后可能还会遇到,倒不如趁现在把它搞定了。

涉及到的知识点在教材中基本都有,信息搜集,漏洞识别和利用,后渗透的一些操作等等,这个课不会让现挖漏洞,用到的漏洞在网上基本都能找到Exp。

在进行靶机练习的时候,对我很重要的一点就是多写笔记。可以看到我自己博客上对于当时打过的每一台靶机都写了比较详细的解题思路和相应的思考。好记性不如烂笔头,如果只是单纯无脑地去练习,一味的追求数量而不求质量,不思考,不沉淀东西下来,那就白做了。自己以前刚刚开始打 CTF 的时候就经常写WriteUp,遇到了新知识记录下来,表达出来,这些东西才算是自己的了,这样学习,对于我来说效果非常好,所以开个博客写写笔记还是很有益处的。

而打完这75台靶机前前后后一共花了我大概 21 天的时间,综合国内外的数据来看我应该算是比较快了。一个很重要的原因就是杭州滨江区那时候有疫情,又临近过年了,本来我买了票打算回老家,但因为这个疫情走都走不了,就被迫留在杭州每天打靶机为乐了。现在回想起来真是一个无比正确而且舒服的选择,正确是因为如果自己不去学习不去打靶机,那估计就是打半个月原神了,那整个人估计都会废掉;舒服就是第一次尝试过年没回老家,不用到处走亲戚之类的,安安静静待着做自己想做的事情,真的有够爽爆。

在打完靶机之后还有些时间才到考试时间,我就到 HackTheBox 上充了个会员打打靶机,保持保持战斗状态。但前面也说了,练习求质量不求数量,对于这些靶机也都要写博客记录让自己吸收。

考试

接下来就到重头戏–考试了。

考试的话,考的是新版了,24个小时,三个单点靶机题,一套域环境,三个靶机题每个靶机拿到低权限得十分,高权限十分,分别获得 local.txt 和 proof.txt 在考试靶机面板里提交进行证明;域环境的话没有过程分,拿下域控才能得到四十分。如果有做课后练习和提交十台靶机的WriteUp可以获得十分奖励分,但我觉得性价比太低,前面说过没搞了。对了,考试中对靶机可以重置五十次,对我来说是够了。

首先就是要准备设备了,当时自己使用的还是MBP,笔记本的话屏幕只有一个,如果想边操作边写报告的话很不方便,所以我就上公司的跳蚤群花300块钱收了个27寸的带鱼屏显示器。

然后就去超市买了点红牛之类的饮料,困了打算喝一喝。吃的话也懒得点外卖下去拿,也懒得泡泡面,就买了一箱若饭喝,很节约时间。

之后就在当天早上九点坐等考试开始了。

在考试开始前他们会发一封邮件,里面是考试要注意的一些事项,以及监考工具的账号和密码。对,没错,就是监考工具,需要在考试的全程直播自己的屏幕和摄像头影像给监考官。

考试事项中要注意的有两个点。

第一点就是禁止使用的工具,MSF,SQLMAP 等等自动化辅助攻击的工具,以及那些商业化的工具比如 CS 等就不允许使用,好像本意是不想让我们成为脚本小子,只会工具不知道原理操作了。

第二点就是报告,报告官方有Word和ODT模板,我当时都没用,网上找了个 Github的报告生成器,填进去Markdown内容就会生成报告。但后来考其他考试才发现其实WPS也挺好用,这里推荐还是用 Word 或者WPS,直接往里粘贴图片就好,所见即所得。

在考试前十五分钟进入监考工具之后,先给上权限允许分享自己电脑的屏幕和摄像头,然后监考官就出现了,这个监考工具不会录制声音,所以和监考官的交流都是打字进行。

监考官会先要求出示证件,把护照拿出来给监考官看即可,有时看不清就凑近一点避免反光就好。

然后会要求举着电脑拍一圈房间和桌面还有桌底,确认没有其他人和违禁设备在。

然后会要求把手机放到远离自己的地方,考试中可以用电脑上网查资料,但不允许用手机。

完成这一切之后,到了考试既定的开始时间,邮箱里就会收到连接考试环境的 VPN 包了,下载连接上即可。然后考官会要求执行下里面的一个信息收集的脚本,执行之后把结果发给考官即可。

我自己抽取到的题目算比较好运,一套域环境+一台 Windows 靶机+两台 Linux 靶机,没有改制之前考试中一定会出现,改制后可能会出现的缓冲区溢出的题目。

头三个小时,我是打算先从 Windows 靶机和 Linux 靶机入手,先把单点靶机拿下,但做了一圈信息收集下来没什么收获。心里有点点慌,感觉时间过去很久了,但其实这才刚刚开始,心态很重要,所以就跟考官申请休息,起来活动活动,吃点东西了。

然后转头看了看域环境的入口机,发现入口机是个Web服务,很容易就拿下了,然后进去后把域的操作试了一圈,有一个能打,拿下第二台机器,再从第二台机器拿下了域控,40分到手,时间就到七个小时了,这时候就再休息休息,吃个饭。

吃完饭,回来看单点的机器,重新扫了一遍,发现有新的发现,然后着重对之前没注意到的点进行测试,成功拿下这台Linux机器。当时这些机器有个共同的点,pkexec没更新,所以我就用 CVE-2021-4034 五分钟就给提权到 ROOT 了。花了一个多小时,拿下20分。

另外一台 Linux 机器再试了试,花了将近一个半小时也拿到低权限了,同样的也是pkexec没更新,所以也就用 CVE-2021-4034 五分钟就给提权到了,这也逼得他们后来把机器全部更新了,不然有这种通杀的提权洞确实不大合适。就这样将近两个小时,拿下20分。这时已经可以算通过了,但自己比较兴奋,也不想睡觉,就来看最后一台Windows机器了。

Windows机器稍微久一点,两个小时拿到低权限,提权的话 Windows 当时没什么通杀提权洞,然后就挨个试,终于试到一个能有用的,打上去,花了三个小时拿到这20分。

这时时间来到了凌晨,成绩上就是满分了,但还有一件很重要的事情,该写报告了。

需要在报告中有详细的截图,详细的说明各种漏洞以及利用的具体方法。

写完,也快到早上了,导出,确认下该截图的都截图了。跟考官说一声结束考试,提交报告,睡觉。

睡到下午,打算出门剪个头,发现有邮件过来了,告诉自己考试通过,获得了证书。

在当时考试通过还会有实体证书和钱包卡寄来,但现在改了,只有考过三个高级证书,获得 OSCE3 才有这种待遇了,有点可惜。

总结和感受

写这篇文章的目的,就是希望能鼓励更多还在犹豫的小伙伴一起来学习和考证。有想法就大胆去做,种一棵树最好的时间是十年前,其次就是现在了。

总的来说,对于红方人员来说 OSCP 乃至于 Offensive Security 其他证书都是很值得一考的,相较于其他着重于理论的证书和考试,显然这样学到的东西更多也更扎实,有兴趣而且还有疑问的话欢迎钉钉或者给我发邮件继续聊聊。

对于我自己来说,最重要的就是让自己从以前只会单点渗透的WEB狗这个身份中抽离出来,了解过渗透测试的一些基本思想和操作后,在日后无论是工作还是出去参加比赛之类的帮助都是很大的。在考完这个之后,用其中学到的思想和方法论挖到了友商的高危漏洞;而21天不间断的靶机练习和24小时的考试则是磨炼和考验出了脑力和体力上的耐性和策略,让我们在今年七月的鹏城杯靶场赛48小时马拉松中获得了第一名。