当前位置: 首页 > OSCP进攻性安全认证专家 > 正文

Offensive Security Certified Professional (OSCP) 考试回顾

序言

在今年二月份终于成功拿下OSCP之后,盼星星盼月亮盼了一个月把证书盼来了。第一件事当然是赶紧发朋友圈晒,虽然这个领域的朋友都是工作中认识的外国人,不用朋友圈,但是将近一年的幸苦和努力还有爱人的支持和付出,不晒是不行的,即使没有任何共鸣。也因为这位兄弟的提醒,让我找到一个写这篇文章的理由。因为真的很奇怪,不管网上有多少OSCP Review,当你自己经历过那个痛并快乐着的体验之后,真是有抑制不住的欲望想把他写下来记住,不管你觉得会多没有意义。

整体印象和资历要求

这个课程和测试绝对是我经历过短期之内收获最大的,最艰难的(包括高考),和最考验意志的经历。

我本人的工作是从码农转变做Penentration Testing (Pentest)的,但是不是传统意义上的network/server pentest,而更多的是测试web app这一块。虽然对httpweb方面的知识很熟,写点码也不是问题,但是对OSCP还有PWK所主要覆盖的这些以测试/黑服务器为主的这方面的知识和经验可以说是几乎为零。知道一点点网络知识(TCP vs UDP),对command line算是熟悉,用过nmap,但是实在说不上熟悉,对Linux的系统结构了解也是甚少。

加上这个是自学,所以基本上就是资历少就多花些时间学,如果他的学习材料上的一些基本概念也不懂,就自己再多花些时间上网补充一下。如果本身资历多,已经非常精通hacking,那基本上就可以快速过一遍这个教程看看都覆盖了什么,然后用Lab实际的体会一下整体难度就可以了。下面是官方推荐的基本能力背景

Penetration Testing with Kali Linux is a foundational course, but still requires students to have certain knowledge prior to attending the online class. A solid understanding of TCP/IP, networking, and reasonable Linux skills are required. Familiarity with Bash scripting along with basic Perl or Python is considered a plus.

基本上官方的推荐就是有一些技术背景就可以,对读码不害怕,能读懂,也可以写一些基本的码就可以。我个人觉得差不多。最有帮助的还是要对这方面感兴趣,才能持续的在一遍遍受打击之后继续给你动力。

流程简介

先说说从开始到结束的整个流程步骤吧。其实说白了很简单,也没有太多可选的。 1. 注册Penetration Testing with Kali (PWK) 课程 – https://www.offensive-security.com/preregistration.php 2. 通过PDF和视频自学完成之后,在他们的Offsec Labs里面(大概50多个机器?)拿不同的机器黑一黑来积攒经验(非常重要) 3. 注册考试

下面我就来分段说说每一个步骤吧

注册

首先,因为各种原因(下面会提及),虽然这个是自学的课程,但是你并不能随时注册随时学。当时的流程是,先填注册表,然后等回信。一两天后回信告诉你如何继续注册。这个时候你就可以通过一个特制链接去注册。里面可以选课程开始时间,和第一次Lab时长 (30天,60天,90天)。价格也不等。

 2月注册的时候,可以选的最早开始日期是416日。不知道现在是不是还是要等两个月还是更长。 等你选好开始日期和时间还有时长之后,他会准点在那个时候给你发一个邮件,里面包含如何下载教程PDF(我这版有将近400页,听说内容会时不时的有修改)和教学视频。你的Lab使用期限从那个时候也就开始倒计时了,虽然一开始自学的时候很少用到Lab。这个可能是第一个需要把大家分开注册的原因,就是控制Lab的用户量。太多人同时hack一个服务器,想想就知道不是好主意。

第二个原因应该就是防盗版。在这个注册页(https://www.offensive-security.com/preregistration.php)你就会发现他让你用非免费的邮箱(公司的,大学的,或者你自己域名的),除非你给他寄ID来证明身份。所以填表和等回信之间我猜也是做一些身份确认。因为你收到PDF和视频就会发现,全都有你的联系信息的水印(姓名,地址,邮箱等等),这样你就不能把这些材料公开贴出来。因为这些水印的关系,所有材料都是给每个人重新生成一次,所以你要及时下载保存PDF和视频,因为72小时后就删除,再生成一遍要$100. 虽然这些材料即使被传播出去,所有人还是会买一些Lab time来练习,但是你就可以不利用宝贵的Lab时间来学习了。Lab一开始就不能暂停。假如你一开始买了60天,从你收到PDF和视频开始,这60天就开始倒计时,假如你用了50天学完全部的内容,基本上你就只有10天在Lab里面practice. 所以不让你在买Lab时间之前看到材料是能增加收入的。不过买最新的材料总是好的,有时候有些hacking tools会有更新,新的材料总是和他们发布的最新的Kali版本最匹配。

总的来讲,如果你只能业余时间来学这个,或者英语不是很好,可能最好一上来先选30天,拿到材料慢慢学,就当这30天完全是为了跟着材料做练习(虽然用的很少,但是一些练习还是会用到Lab的),因为以后还能续时间。如果你是学生,有个暑假,或者单身平时不是很忙,那最好一下60-90天,毕竟一次买很多平均每天的价格还是低一点。

Penetration Testing with Kali (PWK) 课程

官网上有现在最新的大纲(目录):https://www.offensive-security.com/documentation/penetration-testing-with-kali.pdf 可以先看看具体学些什么,根据自己现在的知识来预测需要学多久,来决定第一次买多长时间。

这些知识基本上就是给你奠定一个理论基础,让你知道一些现有的程序/tools,非常有用,但是和咱们平时学习做题不一样。就好像告诉你车的运行原理,告诉你什么是电钻,怎么用电钻。然后就开进来一两不知道怎么坏的车让你修。

我第一次买了60天,因为官网说大部分人基本60天就可以了,我觉得我有点基础,应该还行。现在回头想,可能是full time 60… 平时工作+陪家人,再找空余时间学习,本来计划30天学完,30Lab,最后用了将近40天才学完… 中间Web app那一部分还基本上略过,因为我本身就很熟悉这一部分。之后的几天凭我的基础在Lab里根本不够。

我本人不是很爱读,所以我基本上就是看他的视频,看完一章之后我再快速过一遍PDF来看一下有没有PDF上有的但是视频里没有的或者不一样的(偶尔会出现这种情况),然后做一下练习题。最后考试是以交测试报告的形式,如果在附录里面附上你做练习题的答案,会适当的加最多5分。我一开始就是简单的把我哪个练习题都运行了什么指令给复制粘贴到了一个note里,直到最后要考试之前做准备的时候才又把所有指令过了一遍,然后把运行结果截图,按照他的模版把报告基本做到只需要把最后考试的东西再加上就可以交的状态。

整个课程并不难,都是对各种常见的service还有tools的介绍,加上一些hacking的原理。Buffer Overflow部分是我花时间最长的地方,弄懂这个确实对你在这个领域继续发展有很多帮助。虽然在Lab里很少用到,但是我还是强烈推荐弄懂它的原理,并且能够做明白关于Buffer Overflow的练习。

The Lab

这部分是整个课程的重点。也是让你觉得最物有所值的部分。在这里学到的感觉比在教程里还多。在这里你会体验到极致的快乐、郁闷、还有痛苦。你会慢慢的培养出hacker mindset,开始学会了如何面对一个未知,培养没有目的的好奇心,然后如何通过好奇心去搜索资料,最后学会了如何去发现和自学新知识。很多你通过这个Lab发现和自学的知识可能都已经过时,但是整个这个过程会让你收益匪浅。

一开始和教程一起买的Lab time用完了之后还可以用他给的一个专用链接来续。续时间就便宜不少, 30 ($300), 60 ($450),还有90 ($600)。我本人后来续了两个60天,每次续之间还休息了几周。

这个Lab还分Public network, IT network, DEV network,  admin networkpublic network里面有大约40个机器你可以hack,这些也是你能直接连接上的。IT & DEV各有4-5个机器是在防火墙后面的。admin network又和IT network之间有一道防火墙。从public network里,其中有些能帮助你连接到IT or DEV,然后你就要用你学到的技巧来pivot,借用这一个机器来hack其他的在同一个网络里的机器。

在课程开始后,你还会得到官方论坛的注册方法,里面有一个板块就是大家对各种Lab machine可以互相提问。为了帮助大家更好的学习,所有人都会被要求只能给非常避讳的提示,版主如果看到任何回复觉得提示太明显都会很快把回复编辑掉。大家通常也都知道自学的重要性,不会一上来就要提示,会实在没辙了,然后讲述一下自己都做了啥,发现了啥,但是实在不知道该咋办了才来提问。大家也都知道关键不在于成功hack某一个lab machine,而是在斗争中学习,最后慢慢发现一套最适合自己的自学方法,然后慢慢适应自学等等,这样才能在最后考试中有希望通过。也有很多人会给你的提示都是 “enumeration, enumeration, enumeration!” “Try Harder!”等等毫无意义的,我个人觉得算是一种tough love吧。

还有一个官方的IRC channel,里面你可以和版主们问问题,还有一个chat bot能给你非常隐晦的提示,有时候还一点用没有,只是为了逗乐。但是很可能国内把IRC服务器屏蔽了,不过确实不是很必要的一个途径。我整个过程中也只上过这个IRC channel几次,并没有用其中任何功能。

每一个机器最终的目的都是要让你自己的access变成root (Linux) or Administrator (Windows),有的机器当你hack进去之后直接就是root,有的则需要privilege escalation,本篇最后资源部分有一些比较好的关于privilege escalation的文章和一些辅助程序,都是在论坛中大家推荐而发现的,我个人也觉得非常有用。当你是root/administrator之后,在roothome directory下面或者AdministratorDesktop下面有一个proof.txt,官方解释就是这个就好像一个模拟奖杯一样让你开心的。如果你做过Capture The Flag (CTF) 竞赛,这个就好像CTF里面的Flag一样。虽然对于这个机器来说,基本上就差不多了,但是后来我发现有些机器上还会藏着一些hack其他机器的信息。幸好我一直记录了每一个机器我是怎么hack的,所以后来又重复hack了很多机器然后来回找有没有一些关于其他机器的信息。如果一开始不知道该往哪儿看,就先记下怎么hack的,之后有了更多的privilege escalation的经验,就对哪些文件夹/路径下会有有帮助的信息而了如指掌,再回来慢慢找。

有些机器里不仅有proof.txt还有network-secret.txt,这个就代表你找到了进入到防火墙后面的network的入口。到时候你自然就知道怎么做了。官方的FAQ对这两个txt文件也做了解答(下面资源有链接)。官方FAQ还解答了很多人常有的疑问:我大概什么时候就差不多准备好了呢?

This is, of course, a very difficult question to answer. In general, we suggest at minimum hacking all the machines in the student network apart from pain, sufferance, and humble. This will give you the bare skills needed to pass the exam. Of course, we cannot guarantee this estimate.

也就是说建议hack所有public network里的机器,除了三个最难的。这也是我最初的目标。很多厉害的或者有时间有兴趣的最后把所有机器都hack了一遍,当然更好。我后来是把public network基本上都hack了,包括那三个难的,不过有两三个论坛里说需要从其他机器上找线索的我后来没找到线索也就算了。不过我在ITDEV也各自hack了两三个。最后基本上就是没Lab time了。虽然很想回去再hack一些当时没时间hack的,但是介于时间和金钱的考虑,还是忍住了。不过后来发现了很多免费的止痒方法。在后面资源里有,也都可以为你作为练习用。他们的Lab还非常好就是会与时俱进。经常会更新一些机器来反应一些新的漏洞。

另外一个大家会关心的就是关于使用metasploit. 这个官方FAQ也说过。Lab里面你随便用,但是考试最多用一次。用msfvenom, multi-handler等教材里提到的辅助工具是可以的。我个人一开始也很紧张。在Lab里刚开始就是能用metasploit就用,想着要是metasploit成功了,我再试试找exploit code看看能不能手动hack. 到后来Lab里经验多了,慢慢的对metasploit的依赖越来越少,对看exploit code和改exploit code越来越熟悉,到后来完全就不用了,而且回头又把当初用了metasploit的机器重新hack了一遍。

最后再说一下我的心得。每个机器都不一样,虽然大概意思都是在某个地方有个安全漏洞,可能是软件bug,可能是人为设置错误,但是没有一个程序或者固定流程能保证成功。但是在这个过程中能学到如何去接近一个问题,如何去分析,并且积攒了很多自学的经验来帮助你举一反三。我从一个对network/server hacking完全没有经验的人也能到面临一个新挑战不害怕,就是因为这些经验给我了分析问题的方法

第一步:enumeration, enumeration, enumeration 这一步非常重要。基本上你面对一个黑匣子,最重要的就是收集越多的信息越好。你没有人去问,没有官方文件来读,怎么办?用各种各样的程序和工具来一点一点enumerate. 比如先用nmap来快速的enumerate哪个端口开着,然后再用nmap来仔细enumerate到底每个端口在运行什么service,每个具体的service 可能还能用nmap特殊的script或者其他特殊软件来继续enumerate是什么版本,有没有安装特别插件,这个service有没有一些不常用的默认设置在特殊情况下能提供更多关于这个机器的信息,有没有关于这个service还有插件的官方资料可以供参考等等。

第二步:search and run exploit 通过你收集的信息,有些时候就能直接发现一些隐藏的地方或者是错误设置的地方有一些重要信息能让你直接登陆。更多的时候是需要找有没有已知的安全漏洞和public exploit. 信息越多,你能找到的exploit就越准确。而且在运行这些exploit的时候,有些也需要根据不同客观条件和你收集的信息来进行修改或者选择。没有成功不代表你找错了,但是这个时候就考验你第一步的结果了,能不能利用你有的信息来快速判断你应该换一个试试,还是有足够的信心说这个exploitperfect match,我应该继续研究为什么没有成功。

第三步:enumeration, enumeration, enumeration 对,你没有看错,和第一步一样。这个时候你应该已经有一个shell了,能在这个机器上运行指令了。但是很有可能你不是root/Administrator,所以你要继续enumerate这个机器本身。看看能收集到什么信息能帮助你继续escalate privilege.

第四步:privilege escalation 这一步也有可能是需要通过上一步找的信息来search and run exploit,但是也有可能是一些管理员和程序员不小心犯的常见错误。在这一步human mistake造成的漏洞会比第二步时更频繁,非常切合实际。这个时候后面资源部分里贴的两个帖子和一些常用工具就比较有用了。

第五步:post-exploitation 有些人管第三步开始就叫post-exploitation,我同意,但是在这里,我就用这个词来代表已经达到考试的目的了,拿到了proof.txt这个奖杯。但是在真实生活中,你就可以开始寻找机器里有没有什么宝贝,也许是机密文件,也许是帮你转移到其他机器的钥匙?像我之前说的,教程和privilege escalation guide里面会提到一些会有宝贵信息的地方,和如何针对每个机器的具体情况来猜测哪些地方会有宝贵信息。比如这个机器可能运行了某一个service,所以这个service本身的log可能就很有用,或者这个service如何验证用户可能对你有帮助。所以如果到这一步你手足无措,不如先记下来前四步的细节,以后经验多了再回来。

Offensive Security Certified Profession (OSCP) 考试

我想能读这个的八成都知道这个考试的形式吧?给你24小时,5IPGO! GO! GO! 然后再有24小时让你写报告。一共100分,每个机器的分数不等,如果需要priviege escalation的都会在proof.txt之外还有一个local.txt,能get access to the machine然后用低权限的shell读取到local.txt就会有分,其他情况不会额外给分。在资源部分有一个关于考试的FAQ里面有各种相关介绍。能拿到70分就算过了。像上面说的,如果把所有教程里的练习都做了,把结果记录下来和report一起交了,能酌情加5分。教程里还会说如果你能记录你黑Lab里某一个domain下的所有机器的方法,并和report一起交,还能酌情再加5分。有一个同事最后还真的就需要这额外的10分才能过。所以不要小瞧哦。

所有的课程,包括Lab续时都自带一次考试机会,所以我建议如果你一开始只买了30天,不管啥样,不如考一次感受一下,没人管你考过几次。当然,我自己本人这方面做的不好。买了两次续时之后才有胆量去考试。有另一个同事,考了5次才通过,但是过了就是过了。如果单买考试,$60一次。官方有对考试频率的限制,下面资源链接里有,在这里给大家截出来

Exam Retake Cooling Off Period – After the 1st failed exam, a student may schedule an exam retake after 1 week. – After the 2nd failed exam, a student may schedule an exam retake after 2 weeks. – After the 3rd failed exam, a student may schedule an exam retake after 3 weeks. – After the 4th failed exam onwards, a student may schedule an exam retake after 6 weeks.

第一次和第二次之间隔一周以上,第二次和第三次之间隔两周以上,第三次和第四次之间隔三周以上,第四次以后每次之间隔六周以上。

注册考试时间的时候和一开始一样,一个链接注册,挑日期和时间,如果你想Lab结束立马考,至少提前3周以上开始注册来保证你挑到合适的日期和时间。有人选早上,有人选晚上开始。我个人偏向从一大早开始,六七点,因为会很紧张/兴奋,所以早起不是问题,而且这样大部分时间都在正常活动时间,等到夜里如果还没有完,可以根据自己情况决定是要睡觉还是继续。我个人是不太能熬夜的,所以基本上到了晚上12点还没有足够分数就可以决定放弃了。但是确实知道很多人正经靠咖啡通宵考试,考到最后只剩几分钟来了灵感把足够的分数挣到。

其他的tips吗,就是平时在Lab里什么状态就什么状态。比如平时是听摇滚在沙发上,就没必要为了考试非得坐在桌子前然后一切安静。争取在Lab里时找到自己一个最佳状态,让自己能在最熟悉和舒服的环境里开始考试。不要不吃不喝的。每完成一个box,喝点水,放松一下。如果stuck在一个机器上很久,休息一会,吃点零食,要正常吃饭,有的时候调节一下回来再看会有新的启发。特别累了就睡一小觉。论坛上很多人说他们经常有非常郁闷的时候,然后休息一下回来再看就有新灵感的经验。我个人有过这样的经历,在Lab里和考试里都有,不过没有他们说的那么频繁。

我个人考了两次,第一次9点开始,不到3个小时就黑了3个拿到了55分,觉得自己好厉害,这没问题啊!算上我的附加分,我只要在拿到一个local.txt就可以了。结果后面12个小时另外两个机器都非常接近command execution,但是哪个也没有能够成功。这个时候基本上就是很困很累了。决定上床睡觉了。大概4点又醒了,回到桌前决定再尝试一下,基本上还是stuck,两个小时之后又回去睡了。最后还是把我所有的交了,当然自然是fail掉。伤心和挫败感很强。有点手足无措,不知道自己还能再做些什么,如何提高等等。决定给自己先放个假,再买一次30天的能再在lab里面hack一下没成功的几个,看看能不能再学到点什么。

后来第二次考试,约的6点开始。按理说他是随机给你安排5个机器,每人每次都不太一样。扫描了一下,发现我没弄出来的那两个机器还在!!瞬间晴天霹雳。我心想,得了,我也别看别的了,就这俩挑一个最有希望的继续吧。怎么也得弄出来一个才行。于是我就挑了一个我最有头绪的继续。两个小时毫无进展。挫败感油然而生,这个时候困劲也上来了。决定cry myself back to sleep,准备考第三次,就回去睡觉了,睡了两三个小时快到中午了起来继续。这次就是我说的灵感来了。突然想到一个可能性,简单的测试了一下发现有戏,继续探索,大概不到30分钟左右就发现了应该如何get shell,然后大概又有30分钟左右成功escalated the privilegeAdministrator! 当时激动的浑身打颤。决定先吃午饭平静一下再继续。吃完午饭,剩下的三个很快就全部拿下。最后剩下另一个我第一次没有弄出来的,我决定不弄了,用这个时间写报告,确定我按照要求把所有该截的图都截了,如果没有还可以重新截图。如果等明天没有machine access了再发现有的图没截对就真是煮熟的鸭子飞了。于是一鼓作气把report写了,都弄完晚上5点左右,还不到12个小时。当天奥斯卡,结果都弄完了还能吃个饭再看奥斯卡。

一些新的考试要求(20171210日更新)

偶然听说考试有了新形式,很是好奇,就查了查官方考试要求说明(链接在资源区里有),以下几点是我发现的区别。*所有信息还是要以官方网站为准,所以考前一定要读资源区里链接的考试要求说明*

1. Lab report和课程练习要单独在一个report里面,不能和考试报告在一个文件里了 2. Lab report现在是明确要求随便选10个以上机器来写详细的hack方法,不能包含Alpha这个机器,因为论坛里有详细的如何黑这个机器的方法 3. 课程练习必须在Lab report后面 4. 一共只能奖励5分(以前是可以最多到10分) 5. metasploit里面的auxiliaryexploit,和post modules还是只可以在一个机器上用,但是现在附加了meterpreter payload也只能在一个机器上用。而且如果你在一个机器上用了,没成功,也不能在另一个机器上用了

确实比以前更严格了,回头看,其实真正最有影响的还是第4点,让心里更没底一点,其他的都不是大问题。如果你要是发现什么其他和原文不一样的新要求,告诉我,我也会为了后来人更新这个帖子

后续

交完report的确认邮件说3个工作日回复,但是基本上不管是pass还是fail,基本上24小时左右就都能有答复了。当看到确认通过的邮件之后,那真是一块大石落地,然后就是翘首以待证书了。整整一个月之后,收到邮件说证书已寄出,DHL的追踪号,从以色列寄出来的,然后又过了几天就收到了,一起的还有一张卡。当然第一件事就是要给证书裱起来 :)

资源

https://support.offensive-security.com/#!pwk-support.md 官方FAQ,这里面有很多链接,里面我觉得信息比较重要的主要在这几个里面 + https://support.offensive-security.com/#!pwk-general-questions.md – 这里面有关于proof.txt / network-secret.txt 的官方回答 + https://support.offensive-security.com/#!oscp-faq.md – 这里面有关于他们推荐的考试最低准备程度,还有一些其他关于考试的FAQ + https://support.offensive-security.com/#!oscp-exam-guide.md – 这里面是所有考试前必须熟记的规则等等,包括metasploit的使用和如何提交最后的报告

https://www.offensive-security.com/faq/ 另外一个FAQ – 这里面有很多上面重复的信息,但是主要有对于上PWK课程的建议背景条件

https://www.offensive-security.com/information-security-training/penetration-testing-training-kali-linux/ 有一些和上面重复的信息,但最主要的是最底下有价钱和前面链接的课程大纲下载

https://www.offensive-security.com/kali-linux-vmware-virtualbox-image-download/ 下载Offensive Security官方的Kali. 不管是Lab还是考试,都不需要任何额外安装或者升级,虽然在论坛里会有人说他们升级了才成功。

https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/ Linux Privilege Escalation (作者是Offensive Security的工作人员)

http://www.fuzzysecurity.com/tutorials/16.html Windows Privilege Escalation

http://netsec.ws/?p=331 – msfvenom常用指令cheat sheet http://netsec.ws/?p=337 – 生成tty shell的一些指令cheat sheet http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet – reverse shell one-liners https://github.com/gabemarshall/Brosec – 这个是一个朋友开发的,基本上就是把上面三个里面一些常用的指令给整合在一起,可以选择用哪个指令,然后自动复制到剪贴板里。还挺实用的,去github页里看看具体用法就知道了。在这里推荐一下。

下面这两个我建议在手动跟着前面的两个privilege escalation guide做过几次之后再用,效果最好 https://github.com/GDSSecurity/Windows-Exploit-Suggester – 帮着自动搜索Windows privilege escalationexploit https://gist.github.com/sh1n0b1/e2e1a5f63fbec3706123 – 整合了很多常用指令来帮你收集对Linux privilege escalation可能会有帮助的信息

https://www.vulnhub.com/ 有漏洞的虚拟机合集,可以下载用来练手

https://www.hackthebox.eu/en Offsec Labs很像。需要先通过他的第一关才能注册到他的VPN network去继续

作者:

 n0tl33t

原文链接:http://www.51pentest.com/newsinfo/1331704.html

打赏

本文固定链接: https://www.moondream.cn/?p=2394 | 月梦工作室

该日志由 moondream 于2020年09月20日发表在 OSCP进攻性安全认证专家 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Offensive Security Certified Professional (OSCP) 考试回顾 | 月梦工作室
关键字:

Offensive Security Certified Professional (OSCP) 考试回顾:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter