*本文原创作者:安全圈套的套哥,本文属于FreeBuf原创奖励计划,未经许可禁止转载
最近刚刚通过了OSCP的认证,整个申请考试和备考过程中遇到不少问题,通过与小伙伴交流和自己的摸索终于通关。网上对于OSCP认证的中文介绍很少,也没看到详细攻略,但在国内已经越来越受到企业的认可,参加考试的人也越来越多了。
本文简述OSCP考证相关问题,给需要的朋友参考。
一、OSCP认证是什么?
首先介绍下OSCP认证,目前安全技术类的证书有很多,像是CEH,Security+,CISSP等等。除了众多侧重于笔试的安全认证,OSCP(Offensive Security Certified Professional) 是为数不多得到国际认可的安全实战类认证。目前在国外受到广泛认可,在台湾、香港等地区也比较流行,国内刚刚起步,拿到认证的还不是很多,主要集中在安全企业和审计公司。
OSCP认证,是一个专门针对Kali Linux渗透测试培训课程的专业认证。该认证机构声称,OSCP认证是一个区别于所有其它认证的考试,考试全程采取手动操作的方式,而不设笔试环节。
认证条件:无
考试形式:OSCP的认证考试也是另类的存在,考生拥有24小时的时间(实际是23小时45分钟)去完成考试,具体如何分配时间由考生自己决定。题目是5台主机(随机抽取),目标是攻入并拿到最高权限(ROOT/SYSTEM)。基于难度级别,成功执行的攻击会获得相应的积分。24小时结束之后,你还有24小时去完成并提交考试报告(需要详细说明攻击步骤和里程碑截屏来证明确实攻破并获得相应权限)。
考试费用:$800美元(30天实验室访问+认证)当然也有更多时长的实验室访问套餐,详情如下,具体选哪个可根据自身情况自行选择:
二、课程内容有哪些?
OSCP的整个课程还是比较体系化的,涵盖了渗透测试中的大部分内容,内容包括:被动信息收集、主动信息收集、漏洞扫描、缓冲区溢出、Win32缓冲区溢出攻击、Linux缓冲区溢出漏洞、漏洞利用、文件传输、提权、客户端攻击、WEB应用攻击、密码攻击、端口重定向和隧道、Metasploit框架、免杀、渗透测试实战演练等。
整个知识框架还算完整,但其中的web应用攻击和缓冲区溢出部分内容感觉还是不够深入,与国内的教程比起来略显简单。web渗透中并没有各种绕过waf的奇淫巧技,缓冲区溢出部分也没有突破系统的各种防护手段……
三、学习方式是怎样?
目前官方推荐自学,官方会提供教材(约350页的PDF教材)和教学视频(约8小时的mp4视频)以及为学员提供的交流论坛和在线的lab实验室环境。
注册、约定lab时间并付款后,官方会在lab开始那天邮件你教材和视频文件的下载链接,并开通论坛账号及实验环境vpn链接,你就可以学习教程并链接lab环境进行实验练习了。
其中注册环节可能会遇到一些坑,这里就不细说,可以参考《OSCP认证教程第一集:注册教程》文章。
通过自学教程你会掌握渗透测试中的大部分基本技能,在通过lab环境下的实战靶机练习将理论练习实际会对学习的知识有更深入的理解。其中lab环境下大概有53台靶机,靶机上预置了有漏洞的程序或者服务,你需要通过运用教程里学到的技能来获得服务器的最高控制权,并在靶机里获取proof.txt文件。
我在买的是30天的ab实验,然而由于一些个人原因并没有投入大量时间,靶机做了20多台。但基本了解了lab环境和漏洞发现及利用的方法。个人认为做练习只是一方面,掌握方法才是学习的关键,因为漏洞是不断出现的,题目是永远做不完的,只有掌握原理及方法才是关键。当然如果有时间还是要尽量多做些lab的,毕竟是花了钱的哈。
四、怎么考试呢?
通过30天的lab学习后我约了考试,约考的链接会在之前官方发你的邮件中有。我是lab结束后才开始约考的,约考的时候才发现考试空挡已经排到了3周以后……早知道应该提前把考试时间约好,因为刚做完lab的时候状态是最好的,过个3周有些内容已经开始慢慢忘记……
考试是在线进行的,并且有视频监考。具体来说就是你在约定的考试时间会收到官方的邮件,会给你一个考试环境的vpn连接文件,使用方法与lab的一样,并告诉你考试题目的IP地址(一般会是5台目标机器),题目满分是100分,70分通过。
考试之前是要进行身份确认的,会通过摄像头进行身份的确认,所以你要准备好护照(为什么是护照呢?因为官方会要求政府颁发的、有照片的、英文的证件,国内符合要求的也只有护照了),身份验证后就可以vpn连接考试环境了。
我约的是早上8:00的开始,早早的就起来做好了准备,7:45准时进行身份确认,其中遇到了网络不稳的情况,官方那边一开始一直看不到我这边的摄像头,重启了下家里的路由器就好了(也有小伙伴用4G手机热点开始的,因为部分地区的小区宽带连不上考试环境),然后vpn连接进考试环境,网络还算稳定,忙乎到8:30才算正式开始考试答题。
我先选择了一道25分的缓冲区溢出的题目,花了大概2个小时,总算完成了poc的编写,拿到了shell,一看还是system权限,稳稳的拿到了proof.txt。其中遇到了一点小波折就是badchars漏了一个字符的,碰巧shellcode里有用到了这个字符,反复调试了好几遍才发现。不过还好没有ASLR、DEP等机制需要破,所以OSCP里面的漏洞挖掘还是比较基础的,因为真正的挖掘是在OSCE认证里,这也是我下一步要搞定的认证啦。
解完这道理就有点饿了,然后和监考说了下休息半小时,吃了点水果。从考试开始不光是有摄像头监控的,我们的电脑屏幕监考也是可以看到的,所以当我们离开摄像头,桌面停止操作的时候是要和监考说一下的。
半个小时后回来,在和监考打个招呼,发现监考的昵称换了,估计是几个人轮流监考……监考确认好后继续答题,选了另一个25分机器,很快通过一个web程序漏洞拿到了shell,但是只是user权限,找了很多本地提权的exp都没打成功……思路卡住了,果断换了一道10分的,看分值我以为应该是一个送分的题,结果真的是没那么简单,各种枚举都没发现问题,这时候心里有点慌,想换下一道但有不甘心,重新整理思路,重新扫描分析,折腾到傍晚才通过一个服务漏洞拿到了shell,正在我担心要怎么提权的时候,一看是root权限,顿时心情好了很多。
到这里已经做出了两道半题目,算了下应该最少有45分了。
在做缓冲区溢出的时候,为了节省时间我同时开了nmap跑其他机器的端口信息,简单看了下剩下2台的信息后实在太困了,和监考说了下,就去睡觉了,我还特意问了下去睡觉的话可不可以关机,监考说没问题,我就关了摄像头和电脑,定了闹钟睡了5个小时。
醒来先是看了剩下的2个机器,一个隐蔽的web程序可以拿到shell,不出所料是个use权限,又是提权,搞了好久还是没搞定。剩下1台各种尝试,未果……2台20分的机器,我只拿到10分……
算了下分数25+10+10+12.5=57.5,于是回过头来做前面那个25分的提权,各种百度无果,无聊中换成谷歌试试,结果还真有意外出现,找到国外一篇文章,研究了下,改了改利用代码,欧耶,成功拿到了system权限。稳了稳心情,默默的计算了下应该正好70分了,一看时间已经到了早上5:00,还剩将近3个小时,因为担心后面写英文报告会被扣分,所以还是想再拿些分数才放心。
想到考试指导上说有一次使用msf的机会,想着应该是哪台机器会用得上,我就纠结了,用在那个提权上还是剩下那台呢?最后选择用在最后那台20分的机器上,各种漏洞自动过了一遍……没结果,后悔没写练习和lab的报告了(提交练习和lab报告会给加5分的)。看了下时间,已经没多少时间了,整理下了截图,并确认了下所有提交的proof.txt,然后和监考确认考试结束。
这种24小时的考试真的是精疲力尽,又再次确认了下截图,每个flag的截图都有ipconfig或者ifconfig,关键步骤都有截图……然后就放心的睡觉了,因为还有24小时的时间要写一份英文的报告,这是考试的最后一步,也是我最薄弱的部分,睡醒了按照官方的模板,把握做出来的三个半机器的渗透过程都写了出来,当然是用最简单的语法和单词,主要全依赖了谷歌翻译,全篇都是短句,因为截图比较多,通篇用的最多的就是like this然后下面放上截图。
整理完报告发现居然写了60多页,最后做成pdf压缩,上传到官方给的url,再把下载连接发给官方指定邮件。
报告发送后24小时内会收到一封时间,告诉你已经收到你的报告,5个工作日内将告诉你开始结果。然后我等了5个工作日,在第6个工作日的上午收到了邮件:
五、考试难不难?
个人认为OSCP还是模拟实战渗透的,不像那些CTF需要各种脑洞大开。如果你在工作中就是做渗透测试的,那应该算是中等难度,如果是初学者,我建议还是需要认真的学完教程,并在lab环境中拿到30台以上的靶机。缓冲区溢出部分难度不大,教程和考试都是属于比较基础的难度。
对于我个人来说,提权比较头疼,因为考试之前我也做了准备,网上找了各种提权一条龙的工具包,考试的时候用了发现就是一条虫啊,派的上用场的不多,所这部分还是要多积累,多做练习。
总体上来说难度适中,毕竟70分就可以通过。
六、备考有什么建议?
a.学好英文很重要。不管是报告还是网上查资料,都需要英文的读写能力,如果英文好会有很大帮助。(虽然后来我也有和官方沟通,对于非英语母语的考生报告里的语法和单词错误是不会扣分的。)
b.学习的时候要做笔记。考试的时候由于紧张会很容易手忙脚乱,所以提前做好学习笔记很重要,没有思路的时候可以看下笔记也许就有新的发现。
c.练习和lab报告。在lab练习期间最好把练习和lab中靶机的渗透过程写成报告,官方说提交练习和lab靶机10台不同漏洞利用的报告会在最终考试成绩上加5分,虽然分数不多,但在关键时候就是救命稻草了。
d.多交流。官方也有交流的渠道,如论坛、IRC,当然需要英文沟通了,所以我在这方面就……你们多努力吧。
七、哪些好的资料可以分享?
我在学习和备考的时候参考的一些不错的资源,汇总如下:
注册指南:《OSCP认证教程第一集:注册教程》
Linux提权指南:https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
Windows提权辅助脚本:https://github.com/pentestmonkey/windows-privesc-check
模拟练习平台(跟Lab环境类似):vulnhub、hackthebox
badchars工具:https://github.com/mgeeky/expdevBadChars
还有就是github上可以搜索“OSCP”找到很多资源,但是每个人的基础不一样,别人总结的不一定适合你,建议大家还是多多总结多多交流。
你可能觉得我上面列的太少。但上面这些是我觉得有用的,也是我看过和用到的,当然我也可以搜索下oscp、渗透测试等关键字给你列上一堆链接参考,但那些我可能真的没看过也不知道对你是否有用。
*本文原创作者:安全圈套的套哥,本文属于FreeBuf原创奖励计划,未经许可禁止转载
来源:freebuf.com 2019-04-09 09:30:50 by: 安全圈套的套哥
请登录后发表评论
注册