2022 OSCP Exam Review

2022 OSCP Exam Review,第1张

上周五我参加了OSCP(Offensive Security Certified Professional,进攻性安全认证专家)考试,并于周六提交了考试报告,就在周日晚上大概十二点,我收到了来自offsec的邮件,通知我已经通过了认证。

我最终解决了AD的三台机器+两台独立机器的完全控制权限+另一台机器的初始shell。另外我还做完了课本习题和lab里的超过10台机器的报告,如果所有报告都没有被扣分的话,我最后的成绩应该是90+10分。

我大概花了一年多的时间去准备这个考试,期间有过很多困惑,踩过许多坑,我在学习的过程当中受到过很多人的启发,因此现在我也想写一篇学习回顾,以(希望能够)帮助那些当初和我一样不知道如何入门的学员,如果你是渗透测试的大佬,那么这篇东西只是浪费你的时间,因为它真的很基础。

我本职工作是一个程序员,此前没有任何渗透测试经历,当时的我知道nmap是扫描器,kali是专门做渗透测试的,但没怎么用过,说是零基础也不为过。因为出于兴趣我想系统学习渗透测试,就在一年多以前我知道了OSCP这个认证,那时候我想以考促学,并且OSCP学费还挺贵的,我觉得这样或许能push自己一把。我没有一开始就报名,我记得当时我注册了offsec的账号,为了了解购买流程我还下了一个订单,但是没有付款。然后过了没多久,新加坡的David就打了一个越洋电话给我,问我是不是有兴趣学习,还说可以给我申请一个很优惠的折扣。我说我对于这个东西完全是零基础,我可能现在还不合适去报名。然后David说没关系,还建议我先到HTB打打靶机学习。应该说这还是挺良心的,不会让一个0基础的人盲目去报名。事实证明,延迟报名的决定非常正确,如果你像我当初一样对渗透是零基础,那建议还是补一下基础知识,我后面会分享到我当初遇到的那些我感觉很好的课程和平台。

众所周知,OSCP在2022年1月初启用了新版本的考试结构。

旧版本的考试结构:

1台简单机器 10分

2台中等机器 20分x2

2台困难机器 25分x2,其中一台为bof题,必出,圈内评价是送分题。

总分达到70分通过考试,完成所有课后练习+10台lab报告可以另外+5分

新版本的考试结构:

AD包含3台机器,总共40分,只有攻入DC才有分,没有过程分,也就是要么40分全拿,要么0分。

3台独立机器,每台20分,bof题不是必出,而且需要提权。

完成所有课后练习+10台lab报告(包含4台域机器)可以另外+10分

总分也是达到70分通过考试。

应该说新版本考试结构难度增加了不少。

我在考试之前在各个平台打了一些靶机,我后来统计了一下:

TryHackMe:53

OSCP LAB:75

HTB:60

PG:40

vulnhub:11

我认为TryHackMe是很好的专题学习平台,以及是很好的基础学习平台,但是我不推荐打太多里面的靶机,因为他们多数都是CTF形式,与OSCP相去甚远。从技术的角度,一个零基础学员从任何方向出发当然都是进步,但是从考试的角度,我们还是要有的放矢,毕竟时间也是资源。

我完成了TryHackMe里的 Complete Beginner , Offensive Pentesting , CompTIA Pentest+ 三个路径,这三个路径的学习让我对渗透测试有了一个初步的了解。我非常建议初学者跟着这些路径学习。而且TryHackMe非常良心,他的很多房间都是免费的,就算续费每个月也只是需要10美元。这个花费对于你将可以学到的知识来说简直是不值一提。

后面TryHackMe又出了好几个学习路径,我现在还没有去做,在这里不评价,我想我后面有时间会去做一下。

我在今年三月份报的名,报的是两个月的课程。需要注意的是,今年4月以后OSCP只有三个月的课程了,价格是1499美元。

我在第一个月完成了课本上的所有习题以及打了40台靶机,在第二个月我完成了剩下的35台靶机。这两个月可以说是我目前人生最累的两个月,几乎每天下班以后我都要肝到晚上一两点,第二天还要上班。这期间有痛苦,有绝望,有焦虑同时也是收获满满。OSCP之旅绝对是一个折磨之旅,我看到有朋友的评论是"比高考还累"。

OSCP Lab是一个多级的网络,它外网有40台左右的机器,但是我觉得它最有意思的是内网,有些内网你还需要转发多次才能访问。这样的靶机环境一般在其他平台很少遇到,因此会是一个很不错的学习体验。我看到有些早期的学员说内网很卡,我这边觉得还好,可能是offsec后来升级了OSCP LAB的网络。但是我自己为备考也拉了一条300M的网线,以及买了一个美国节点的vps,整个OSCP Lab的旅程中我觉得网络非常舒服。

这里有一个小技巧,我不知道这算不算offsec的一个bug,OSCP Lab其实是有多个节点的,而且同样的vpn可以登录不同的节点,我一般扫描探测和爆破的时候用的是美国的vps(跟lab的延时大概是10ms以内),其他手动的枚举或者拿shell时用的是本地kali机。需要注意,因为lab各个节点是独立的,在美国vps触发的rev shell,在本地kali是接收不到的。但是vps可以省去你很多探测和爆破的时间。

鉴于OSCP现在只有3个月lab time的选择,这是绝对够时间打完OSCP所有lab的。关于什么时候应该去论坛看hint,我的理解是,当你觉得你已经穷尽了你目前所知道的所有方法和技巧还是没有进度,那就去看。我认为不必去忌讳看hint这个东西,你就是来学习的,不懂很正常,基本上你不可能去hack一个你完全不懂的东西。相反的,如果你都觉得OSCP Lab对你一点难度都没有,那么OSCP只是浪费你的时间,你应该去挑战更难的东西。

我强烈推荐这个HTB的OSCP vm like list,同时这也是很多OSCP前辈的一致推荐。如果你备考的时间有限,我建议你就好好打一下这个list里面的机器。

这个是offsec的亲儿子,也有很多前辈推荐里面的机器作为OSCP的练习,考试里单机的难度大概相当于里面的中等难度机器。

vulnhub好像是被offsec收购了,好多机器都在PG里。我打的不多,感觉有些还是偏向CTF。。

我听说有人打了30多台就通过了OSCP考试,有的大佬打了400多台。。。我的理解是,越多越好,你在练习中踩的坑越多,在考试的时候才会越游刃有余,Practice make prefect。

官方有一个靶机数量与通过率的表格,打过的靶机数量和通过率是正相关的,这也符合人的直觉。

对比各个平台靶机的难度,我主观上的感觉是:HTB >PG >OSCP Lab

我觉得备考打这三个lab就够了

如果你实在备考时间有限,那推荐上面的1和3。

OSCP的教材和视频都是全英文的,你在备考中看到的所有文章,资料等等99%都会是英文,所以英文是逃不掉的。

我自己也是英语渣,但是好在计算机类的英语词汇固定,语法结构也简单,看多几次也就知道了,实在不懂还可以在线翻译嘛,所以在英语上不必有太大的压力。如果你实在很想学习,你总是会想得到办法的。

从你决定要开始OSCP之旅,无论以前你有没有记录笔记的习惯,从现在都要开始记录。开一个博客,或者自己记录一份文档。

记录一切你遇到的东西,命令,技巧,原理,靶机wp。记完以后尝试去整理他们,反复阅读,这也是一个学习的过程,而且很重要。

这一年来我大概记了十几万字的笔记和wp,我习惯用markdown格式记录,这样我可以用sublime快速查找我想知道的一切记录过的东西。

我预定的是周五早上9点钟的考试,前一天晚上我还吃了安眠药睡觉,因为我习惯性焦虑,容易考试前失眠。好在那天我睡的还挺好。

我为考试准备了咖啡,巧克力,红牛,面包和一些饺子,整个考试期间我喝了三杯美式咖啡和一瓶红牛,这的确让我考试的时候异常亢奋,但是第二天我非常痛苦,完全没办法睡觉。

我用了6个小时完成了AD部分的内容,之后3个小时,我拿到了一台主机的完全控制权限。然后我又花了几个小时,拿到了一台单机的foothold,但是后面提权的部分,我在这台机器卡了很久,一直到凌晨一点,我跟监考人员说我太累了需要休息一下。然后我睡了大概一个多小时(其实也没睡着,因为我喝太多咖啡了),在凌晨两点我醒来,我决定先放一下那台机器的提权,再看看另外一台单机,从凌晨2点一直到早上6点,我完全卡死在这台机器的foothold里,然后我跟监考人员说我要休息一下,之后我躺在床上突然想到了一个点,于是马上起来验证,结果成功进入这台机器,此时距离考试结束还有两个多小时,我发现我唯一那次msf的机会还没用,于是我决定上msf,用了10分钟拿到了这台机器的system权限。我用剩下的时间补充了一些截图,然后结束了这个23小时45分钟的考试。

我在OSCP之前学习过CRTP的课程,老实说OSCP的AD部分的内容,无论广度和深度完全都比不上CRTP。但是我在这里不是说你在考OSCP之前要去考个CRTP,完全没有必要,而且我也没有过CRTP考试。。(T_T)。OSCP考试里ad方面的知识全都在教程里,没有任何超纲的东西。但是考试时ad部分难的可能是ad之外的东西。。。

关于考试,我的建议是每隔一两个小时,要起来喝水,走动一下,或者躺一下。就我做程序员的经验,我职业生涯中遇到的所有技术上能说的是难题的东西,要么是我躺在床上想到解决方法,要么是我走在路上想到的解决方法,但是绝对不会是坐在电脑前想到的。一旦卡住了就起来走走,放轻松。OSCP考试除了考验技术以外,我觉得很大一部分也是考验一个人的心理承受能力。因为这种24小时的考试真的是太变态了,如果心态崩了那本来很容易的东西可能会被你miss掉。

第二天我陆陆续续花了一天时间写完了报告,多数都是先写中文,然后放到deepl上去翻译的,我没有任何渗透测试工作经历,因此我不太知道一个合格的渗透测试报告应该是怎么样的,好在官方有个报告模板,我就按照那个模板来写。一直忙到当天晚上差不多12点,我提交了我的考试报告和练习报告。

以下是我备考过程当中遇到的一些我觉得很好的资源:

hacktricks :黑客圣经,你在备考中每天都应该会去翻阅它。

PayloadsAllTheThings :各种cheetsheet,和hacktricks有重合的地方,但是更侧重各种命令的记录,我弄rev shell的时候经常翻阅。

gtfobins :linux提权宝典。

bufferoverflowprep :最好的Buffer Overflow练习,专门为OSCP准备。

linux提权房间1 :tryhackme上的一个提权房间

linux提权房间2 :另外一个linux的提权房间,专门为OSCP制作,在 udemy 上有对应的视频课程。

windows提权房间 :上面提权系列的windows姐妹版,也是专门为OSCP制作,在 udemy 上有对应的视频课程。

what-to-do-with-new-oscp :老外整理的关于OSCP里AD部分的学习资源集锦。

hackingarticles :三哥整理的一个博客,有很多很好的思路和方法的介绍。

0xdf :0xdf的博客,HTB官方打lab人员,能学到很多技巧。

IppSec :IppSec的youtube频道,也是HTB官方的,同样的也可以学习到很多技巧。

我觉得一旦你觉得要准备OSCP的时候,一定要好好跟家里人/女朋友/老婆沟通,跟他们解释为什么你需要那么多时间自己一个人在电脑前鼓捣。我觉得整个备考期间我牺牲了好多跟女友和家里人相处的时间,每每回想总是心中有愧,我要感谢我的女友小头,她一直很理解和支持我去做这一切,接下来我想花多点时间陪伴身边的人。

一个给定的视频序列,无论它每一层的SPS是否相同,都参考相同

的PS。VPS包含的信息有:

①多个子层和操作点共享的语法元素

②会话所需的有关操作点的关键信息,如档次、级别:

③其他不属于SPS的操作点特性信息,例如与多层或子层相关的虚拟参考解码器( Hypothetical Reference Decoder,HRD)参数。对每个操作点的关键信息的编码,不要求可变长编码,这样有利于减轻大多数网络组成单元的负担。H265/HEVC的扩展版本将会在当前PS中添加更多的语法元素,以使会话更加灵活高效并使编码码率具有更高的自

适应性。

SPS中所含的语法元素,其内容大致分为以下几个部分。

①图像格式的信息。 包括采样格式、图像分辨率、量化深度、解码图像是否需要裁剪输出以及相关的裁剪参数。

②编码参数信息。 包括编码块、变换块的最小尺寸和最大尺寸,帧内、帧间预测编码时变换块的最大划分深度,对4:4:4采样格式的三个通道分量是否单独编码,是否需要帧内强滤波,帧间预测过程中的某些限制条件[如非对称模式(AMP)的使用、时域MV预测的使用]是否使用量化矩阵,是否需要样点自适应补偿(SAO),是否采用PCM模式及在该模式下的相关编码参数。

③与参考图像相关的信息。 包括短期参考图像的设置,长期参考图像的使用和数目,长期参考图像的POC和其能否作为当前图像的参考图像。

④档次、层和级相关参数。 具体内容见38节。

⑤时域分级信息。 包括时域子层的最大数目,控制传输POC进位的参数,时域子层顺序标识开关,与子层相关的参数(如解码图像缓冲区的最大需求)。

⑥可视化可用性信息 ( Video Usability Information,wUI),用于表征视频格式等额外信息

⑦其他信息。 包括当前SPS引用的VPS编号、SPS标识号和SPS扩展信息。

PPS中所涉及的具体的语法元素,图像参数集的内容大致分为以下几个部分

①编码工具的可用性标志。 指明片头中一些工具是否可用。这些编码工具主要包括符号位隐藏、帧内预测受限、去方块滤波、PB图像的加权预测、环路滤波跨越片边界或者Tile边界、 Transform skip模式和Transquant bypass模式。

②量化过程相关句法元素。 包括每个Slce中QP初始值的设定以及计算每个CU的QP时所需的参数。此外,还有亮度量化参数的偏移量和由它导出的色度量化参数的偏移量等。有关量化过程中QP的具体计算。

③Tile相关句法元素。 包括Tile划分模式的可用性标志,以及在使用Tile划分模式时的一些参数,例如Tile的划分形式,总行数、总列数及第几行、第几列的标识等。

④去方块滤波相关句法元素。 包括去方块滤波的可用性标志以及使用去方块滤波时的一些控制信息和参数,如去方块滤波的默认补偿值β和tC

⑤片头中的控制信息。 包括当前片是否为依赖片、片头中是否有额外的 Slice头比特、图像解码顺序与输出顺序的先后关系以及 CABAC中确定上下文变量初始化表格时使用的方法等。

⑥其他编码一幅图像时可以共用的信息。 包括ID标识符、参考图像的数目和并行产生 merge候选列表的能力等。其中ID标识符用于标识当前活动的参数集,主要是当前活动的PPS的自身ID和其引用的SPS的ID。此外,PPS中还包括变换矩阵信息是否存在的标志位,这一变换矩阵信息若存在,便会对SPS中的该信息进行覆盖。

一幅图像可以被分割为一个或多个片( Slice),每个片的压缩数据都是独立的, Slice头信息无法通过前一个Sice的头信息推断得到。这就要求 Slice不能跨过它的边界来进行帧内或帧间预测,且在进行熵编码前需要进行初始化。但在进行 环路滤波 时,允许滤波器 跨越 Slice的边界 进行滤波。除了 Slice的边界可能受环路滤波影响外, Slice的解码过程可以不使用任何来自其他 Slice的影响,且有利于实现并行运算。 使用 Slice的主要目的是当数据丢失后能再次保证解码同步。

根据编码类型不同, Slice可分为以下几部分。

① I Slice: 该 Slice中所有CU的编码过程都使用帧内预测。

② P Slice: 在 I Slice的基础上,该 Slice中的CU还可以使用帧间预测测,每个预测块(PB)使用至多一个运动补偿预测信息。 P Slice只使用图像参考列表list0

③ B Slice: 在 P Slice的基础上, B Slice中的CU也可以使用帧间预测,但是每个PB可以使用至多两个运动补偿预测信息。 B Slice可以使用图像参考列表list0和list1。

H.265/HEVC对H.264/AVC的改进之处还在于Tile概念的提出。一幅图像不仅可以划分为若干个 Slice,也可以划分为若干个Tile。即从水平和垂直方向将一幅图像分割为若干个矩形区域,一个矩形区域就是一个Tile。每个Tile包含整数个CTU,其可以独立解码。划分Tile的主要目的是在增强并行处理能力的同时又不引入新的错误扩散。Tile提供比CTB更大程度的并行(在图像或者子图像的层面上),在使用时无须进行复杂的线程同步

Tile的划分并不要求水平和垂直边界均匀分布,可根据并行计算和差错控制的要求灵活掌握。通常情况下,每一个Tile中包含的CTU数据是近似相等的。在编码时,图像中的所有Tile按照扫描顺序进行处理,每个Tile中的CTU也按照扫描顺序进行编码。一个Tile包含的CTU个数和 Slice中的CTU个数互不影响。 这是3×3的划分,整幅图像被划分为9个Tile,每个Tile都为矩形。在同一幅图像中,可以同时存在某些 Slice中包含多个Tile和某些Tile中包含多个 Slice的情况。

在H265/HEVC中, Slice和Tle划分的目的都是为了进行独立解码但是二者的划分方式又有所不同。Tile形状基本上为矩形, Slice的形状则为条带状。 Slice由一系列的SS组成,一个SS由一系列的CTU组成Tile则直接由一系列的CTU组成。 Slice/ss和Tile之间必须遵守一些基本原则,每个 Slice/SS和Tile至少要满足以下两个条件之

①一个 Slice/ss中的所有CTU属于同一个Tile

②一个Tie中的所有CTU属于同一个 Slice/SS。

下面的例子将分别对同一幅图像中的 Slice和Tile划分做详细说明。

vps厂商是怎么判断对外进行漏扫的

VPS厂商一般会通过定期的端口扫描来判断对外进行漏扫。端口扫描可以帮助VPS厂商检查是否有未授权的开放端口,以及确定端口上运行的服务是否安全。此外,VPS厂商还可以利用安全工具,如Nessus,来识别潜在的漏洞,以确保VPS的安全性。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/737210.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-12
下一篇2023-08-12

发表评论

登录后才能评论

评论列表(0条)

    保存