在一周的焦急等待之后,今天晚上终于看到自己的邮箱里面躺着一封offsec的邮件,颤颤巍巍点开邮件,看到开头的一句话,We are happy to inform you... 顿时感觉心情一片大好,应该是过了。
回顾一下自己学习OSCP的心路历程,其实很简单,因为一年前开始从运维转到安全管理岗位,一个问题一直困扰我自己,就管理层面来说,知道CISSP的几大控制域,熟悉公司内部安全流程,基本上混混也差不多了,但是技术层面,我感觉自己根基不够,一个做安全的人,天天空谈安全控制,谈防御,如果你都不知道黑客怎么攻击你,你怎么谈的上怎么防呢?所谓未知攻,焉知防?
于是从2019年7月开始陆续开始关注OSCP考试,看了网上一些帖子,知道自己的技术是不够全面的,于是开始有针对性的补基础知识:
1. Linux基础
2. HTML的基本语法
3. PHP的基本语法和使用
4. Mysql的基础
5. Javescript的基础
6. Python,这个还好,因为之前有些基础,很快就上手了
以上这些陆陆续续花了3月时间,其实感觉最困难的还是时间的问题, 因为白天要上班,晚上到家已经快7点半了,小孩才3岁,吃完饭总要陪小孩玩一会儿吧, 然后9点多小孩上床后要给他讲故事,讲完基本已经快10点了,之后把小孩交给老婆哄睡,这时候自己才有时间去自学,基本上自学到12点1点睡觉,就这样第二天早上7点起床又是一天工作,真的感觉挺累的,基本靠毅力在坚持,中间有几次感觉就因为太累,睡觉少,抵抗力下降,连续个感冒了几次,但是好在自己一直都坚持下来了,从来没有放弃自己的目标。
有了这些基础之后,网上又下载了第三方的OSCP培训视频,看完之后开始在vulnhub和HTB上找靶机练手,基本上各打了15台靶机的样子,HTB为了打过期的机器,还买了2个月会员。
之后感觉有点感觉了,大概在12月底的时候找offsec官方报名了,买了2个月lab,之前我的计划很好,准备1月份整个月(特别可以利用春节放假的时间)专心打lab的机器,然后2月初考试考一次,如果不过,2月份再加强一个月,这样3月初再考一次,想法是挺好,可惜后来发生的一切打乱了我的部署。
到2月初的时候,我基本上已经完成了20台lab靶机了,正考虑是否报名,突然在2月5号开始,lab的VPN连不上了!!!因为之前也出现过VPN偶尔不稳定的情况,所以我也就想着等等看,后来才发现完全不是那么回事儿,等了三天还是连不上,网上问了一下其他人,发现的确是因为疫情的原因,导致qiang加高了。之后疯狂的想找VPN来连lab,陆陆续续测试了很多VPN,后来发现一个基本能用的,延迟400ms+,慢是慢了很多,很多题目打都打不开,此时已经是快2月20号了,也就是说我基本上浪费了半个月lab时间。 后来,利用剩下的lab时间,到3.1号这11天时间,又陆陆续续打了10几台机器,最终总过lab机器完成了大概35台。
在同时,一直在打听是否可以的VPN可以连接,得到的风声是,考试VPN不受影响。于是就报名了3.4考试。
真的到了考试那天,上午11点开考,上来我就懵逼了,考试VPN被墙,连不上!!!!
只能上代理了。好在加了代理后,还能勉强连上上,延迟420ms+,只能硬上了,还能怎么办?然后弄监考的东西又弄了差不多40分钟(不靠谱的VPN在考试时还经常断,需要重复共享屏幕),真正开始做题已经要到11:40了。
上手第一道选的就是BOF的题目(25分),思路很清楚,但是过程很痛苦,主要就是远程桌面那台调试的机器,因为网络延迟,操作非常痛苦,花的时间都在等待机器反应上了,最后基本上花了2个小时才搞定。
解下来搞的是一台WIN10的机器(20分),思路很快打开,通过上传apache的漏洞上传webshell拿到user权限,但是提权怎么都上不去,陆续花了2个小时没搞定,想起来在lab里面也没有WIN10机器啊!只能放弃继续往下。
于是转到一台linux的机器(20分),也陆陆续续花了2个小时拿到user权限,然后1个小时拿到root,这个题目的渗透方法在lab里面从来没有接触过,但好在一步步做enumeration,细节都没有放过。
此时及已经快考试快11个小时了,我的完成情况是2.5道。心态有点急。
接下来做的是10分的那道题,感觉是10分,应该简单啊,但是问题就出在网络延迟上,通过对url路径的暴力破解,应该是要打开一个页面的, 但是这个页面引用了google的内容,同时因为网络延迟太大,从浏览器没法打开,一直在loading,刷了N次都打不开,鼠标都卡死。此时心态有点坏了,感觉自己可能过不了了。后来转念一想,打不开web我看源码总行吧?恰好这个想法救了我......通过看源码,知道了这个web app的名字,然后通过进一步枚举,知道了版本号,然后找到了对应的exploit,然后顺利拿到了root。
接下来是最后一道25分题,我知道漏洞是什么,但是感觉自己利用的有问题,一直没办法反弹shell。耽搁了1个小时,果断放弃回头看WIN10提权。
考虑到前面的各种困难,直接上了MSF,并且运行了本地提权的脚本来测试各种exploit,都没有效果,通过MSF进行local privilege escalation的推荐,把所有的试了一遍,都没用。没得选择, 只能按照windows 的enumeration的步骤一步步看看。结果也很巧,刚好在考试前研究过普通用户权限应该有的priv,就在这里我看出了端倪,这个普通用户多了一个token的权限,于是果断google,有一个非常有名的exploit的升级版本,我直接下载下来做了相关配置并运行,直接拿到了SYSTEM权限。
此时我感觉考试通过有希望了,完成了4道,拿到了75分,距离考试结束还有8个小时,全力攻击最后一台,可惜,一直到早上8点多,还是毫无进展,人已经困得不行了,于是通知监控结束考试了。
我的最终分数应该是75+5(完成练习和lab的5分)。
想来从开始补习各种基础知识,到完成考试拿到证书,前前后后差不多半年时间。感觉到最大的困难还是时间的利用,有小孩和家庭,毕竟没法全心铺在这个上面。另外就是苦于没有交流的平台和相互学习的渠道,这个不像国内已经成熟的各种考试,比如CCIE,全部的培训班+题库,刷了版本就可以了,OSCP这个考试基本自学,有了困惑,疑问,只能上offsec论坛求助,别人的回复也不及时。
比如, 略举几个坑作为例子:
为什么linux的BOF官方发行版的kali linux做不出?
gcc 编译带的各种参数什么意思(特别lab里面有一道题要用很少见的编译参数)?
Mingw交叉编译时候的各个选项什么意思,什么时候用?
拿到meterpreter shell之后怎么快速的自动migrate防止进程被杀?
诸如此类,坑太多了。基本都靠自己google,自己研究,完全是靠自己花时间人肉来填坑,因为国内没有人,也没有培训机构老师,可以帮你。
总的来说,这个考试带来的成就感非常大,也的确从中学到了很多知识,有的甚至改变了自己对安全的认知和理解,比如最简单的,免杀的处理。最后,感谢家人的支持,感谢offsec。