目录
OSCP备战走向巅峰
——之华丽转身
前言
解题思路
报告注意事项
报告格式
备考内容整理
思维导图
成果展示
加油!!!
今天是2021年的第三天,庚子年冬月二十;本来之前就想写了,一些客观因素的问题导致没有写成,准备备考OSCP也是自己的一个想法和做法,毕竟从事于这个行业,还有当前的趋势下,一年以前开始着手准备。当时就是听说有这么个证书还永不失效,简单的想法是既然自己从事于安全行业,这个证书就当是一个里程碑吧,不管是以后不做或是换行等等。它也是一个很好的见证,见证了自己的青春岁月,见证了自己所具备的专业的技术能力和永不止步的进取精神,等下我会从几个方面讲讲我是如何备考OSCP的;
19年的时候,当时的工作不是很忙;所以想利用闲暇时间来给自己充充电的想法,那个时候并没有想去考这个,因为OSCP的实验室和考试的费用很高,然而当时的我根本没有那么多的薪水。只能勉强维持自己的生活,哪还有什么富裕的金钱来准备这个呢;之后,看到有人发表的文章提到了关于这方面的知识,于是就开始整理和学习,先是从vulhub开始练习毕竟是免费的,不用花钱可以白嫖;因为我有些基础所以上手就比较容易,就开始了漫漫长夜的里程了,刚开始的时候是自己去搜索寻求别人怎么做的这个题目的,我认为先学形,再学意,在哲学上讲,量变达到一定程度才能形成质变;基本上是每天一个vulhub,大概有40多套吧,除了那些打开不能用的以外基本上所有的都做过了。在这期间呢,利用了搜索引擎比如,百度、Google、bing等等,去搜集信息。其实OSCP核心的考点就是考验信息收集的能力,这也是渗透测试的本质和精髓之所在,同时就是权限提升考验对漏洞的利用情况;所以我认为如果你想考OSCP证书,如果你是零基础可能准备起来稍微费点劲,因为首先你得熟悉kali系统和你的英文水平,为什么这么说呢,考试机器就是kali,而内容就是老外出的题,人家可不会给你出个汉语集成的,不过有些同学可以安装一个插件去进行页面翻译也是可以;但是我是特别建议,还是希望你有一定的英文水平,没有四级水平三级也行,我呢是在学校的时候考过的四级看一些专业的词汇也得查,建议你还是学一点,这样你可以节省大量的时间去做题而不是去翻译;还有就是熟悉pwk它是考试的基础,先学会了里面的东西让自己整体有个知识点,再去做题会好一些。我是有些基础所以没做,先是去做的vulhub,之前就玩过vulhub所以上来先做个vulhub,一会儿我会把我的一些资料整理发到下面供大家学习参考;还有我希望你可以学习一下《web安全攻防》《web安全深度剖析》,当然是给没有基础的同学提的建议;当时做了好多的vulhub靶机感觉快要吐了,为什么呢,有时候根本搜不到或者你就算搜到了文章也是残缺不全,还有就是根本不对的思路;这是常常思考如何去解决一系列的问题,不过还好我比较有意志力不停的坚持,想起高中老师和《火蓝刀锋》的一句经典台词:“要想获得你从未有过的东西,必须付出你从未有过的努力”;
接下来就是HTB的内容,做的不是很多,但是基本上也是把Wirteups都看了一遍,做了比较和笔记,找到各种靶机之间的差异,形成了一套综合的解题思路,之后挣钱攒钞票买了两个月LAB,做了十几套的靶机,每个靶机都有不少的兔子洞,毕竟这些靶机系统是比较老旧的系统;有Windows和Linux的,比如:Windows xp ,Windows 2003,Windows 2008,ubuntu 12.0.4等等;思路决定出路,思维方式决定解决方式,当我们遇到了这些我们从未遇到过的事情的时候,请你 calmness!一切回到起点,从新开始,观察每一个看似不可能存在问题的点,那就是容易出现问题的点,多占在出题人的角度思考问题,假如今天你出题,你怎么会设置漏洞,怎么设置障碍物,怎么设置陷阱。当你觉得自己的水平有限的时候,不妨休息休息,大脑的CPU可能已经处理不了这么多的文件了,它也需要休息了。当你休息后再去思考这些事情,我相信就算是没有思路也会有峰回路转的想法;我在学习和练习的时候也曾想过放弃,也曾觉得枯燥无味,后来想想这都算什么呀,不过是你为了获取某些不属于自己的东西而付出的代价。只要代价合理一切可以;当你在犹豫做某些事情的时候,何不立刻行动,就算错了又能怎么样呢,在这个世界上又有谁能分得清是对是错,不过是在人们的一念之间罢了,事后回想也许是最好的回忆,最值得去干的事情呢。
有的时候我们会感觉到为什么他或者她会成功呢?有人说运气好,有人说背景好。我认为都对,只是其中的一部分,正所谓天时不如地利,地利不如人和;当机会摆在我们面前的时候,我们得有能够抓住他的信心和与之匹敌的能力,才能拥有。
曾经有位英国教授这样说过,我把它翻译成了中文:不要害怕失去,尝试再一次失去;意思是当你真正的一无所有的时候,你才知道自己想要什么。送给正在浏览文章的你,祝你好运!
结合了一些前辈的思维方式进行了整理;不过都是些大同小异的地方;关键还是自己能形成一套属于自己的解题思路;据了解分析现在考试应该有两套题,一套稍简单,但差距也并没有很大,好好准备75分应该大部分人都能拿到。OSCP考的是利用现有漏洞,只需稍微修改或者不改,所以不要考虑的太复杂,发现可疑点直接搜exploit-db,如果找对突破口其实还是比较直接的,还有一点,漏洞的利用有时候单看exploit-db 还有些疑问,这时去搜索htb的writeup 看看有没有类似的教程会节省很多时间。最后建议把htb退役的机器easy和medium的都打一遍,或者至少跟着writeup走完,这样应对考试应该就没有问题了。bof基本功要扎实,端口扫描要全端口TCP+UDP;信息收集要细致,什么banner信息、snmp信息、端口信息之类的要仔细,尤其是在没进展的时候看看snmp的信息里是不是有不常见的敏感信息;提权linux下suid很重要,win就要看第三方软件和服务了;还有小伙伴遇到的是1bof+2service+2web,基本上bof属于送分,2个系统服务的漏洞也比较简单,一个是10分的不需要提权,另一个是linux提权考的第三方软件权限配置不当,总体难度不大。难点在于2个web系统的提权上,web题目的入口基本是很直接的,拿到user权限基本上是送分环节,提权是重点,尤其是windows提权,小伙伴遇到的这两台web都是windows提权,版本很高,折腾了很久也没搞定。最后是剩下两个提权没做,基本看分数是可以通过的。因此,还没有参加考试的小伙伴要注意下windows的提权,教材里的方法是必须掌握的哦。基本就算挂nmap跑4台靶机的端口(bof就不用跑啦)同时开始做bof题目(大概耗时30分钟做完)剩下题目按分值看是25、20、20、10;最少题目通过路线:25+20;降低难度通过路线:20+20+10(一般来说分值高的难度大)也就是说最多扔一道25分的,或者扔一个20+一个10分的。你会发现做完bof你必须至少要再做出一个20分的,因此一般套路是bof做完先看20分的那两道,迅速搞定一个20的。再看25分的,花些时间认真搞一下,如果不行转战剩下的20+10。时间分配上也很重要,要留出休息时间,连续答题2-3小时一定要休息10分钟,吃点东西喝点水。还有就是属于bof+3web+1server的组合,基本还是常规套路:1、nmap过全端口;2、枚举端口服务,看版本,找expdb;3、枚举web使用的cms,找expdb;4、提权linux用LinEnum.sh,Windows用accesschk.exe+WinPrivCheck.bat;这一路下来基本搞定了4.5道题,就剩一个提权没拿下来。
又有前辈是这样的想法:据悉最近的考试中遇到的兔子洞不少,比如看似低版本的ftp不一定能溢出成功、高端口的RPC服务也不一定能拿不到shell、看似低版本的linux内核不一定能用exp提权成功;至少目前bof还是稳定的,不要将题目拷贝出来在本地windows环境中调试,很有可能环境不一样,会出现很多灵异现象,还是要安安稳稳在那台win7的靶机上调试吧;提权还是提权:目前的题目已经很少有能直接内核exp提权的了,我之前考试的时候还是有的,所以多提权是考试通过的关键,linux就多看看root权限运行的服务或者进程,windows就多找找第三方软件然后到expdb上撸一遍,或者dll劫持之类的。
还有这样的解题思路:
1、linux的exp提权:先uname -an看内核版本,然后到exploit-db上找exp;有些需要gcc编译,需要注意库版本。
2、linux的进程或服务提权:先查看进程和服务信息,关注以root运行的服务和进程,接下来套路就是exploit-db找exp或者利用服务自身机制提权,比如调用服务的命令执行接口等。
3、linux的配置错误进行提权:关注etc/corntab文件,关注下有root运行的文件路径,如果该文件可以修改,就可以用root权限执行命令。
4、windows的exp提权:比对版本和补丁信息,然后到exploit-db上找exp;有些调用c++支持库,需要注意没有相关dll需要上传。
5、windows的第三方软件或系统服务提权:如果发现系统是2016、2019这样的,基本就不要想exp提权了,可以看下net start启动的服务或者使用的第三方软件,到exploit-db上找exp,或者sc改下服务然后restart下服务。
也有这样的思路:
bof依然稳定,思路套路与真题一样,改变了eip,badchars,jmpesp地址而已,真题打熟练了,稳拿25分。
有的bof题目没有变可以先稳拿25分。
后面两道web题目,一个是exploitdb上能找到RCE利用,但提权没提上去;
另一个是robot.txt报出目录,文件包含漏洞获取passwd,破解账号密码可ssh,提权成功;
另外一个是snmp获得系统软件信息,然后用了msf打成功获得root;
最后一个没做出来。
编写考试报告+lab靶机10台报告,提交之。
真题回忆版:
1、20分web题:当然80端口是虚晃一枪,另一个端口才是正解入口,然后老规矩robots.txt找路径,发现一个web系统,老规矩admin之,进去后到exploit-db找exp来打,各种rce都可以拿到shell,提权是linux内核提权稳稳提权成功。
2、10分系统题:端口开了不少,一个一个枚举服务,然后找exp,最后一个重复类型的服务使用了低版本,直接exp打就是root权限。
3、20分web题:首页猜路径,需要结合社工,找后台目录,爆破账号密码(需要结合之前页面上的提示信息),注意爆破有次数限制,会锁定账号,进后台后文件上传绕过后缀名黑名单即可上传webshell,反弹拿到shell,提权之。
4、25分缓冲区溢出题目:没变化,不多说,秒杀。
5、25分web题:老规矩admin之,看phpinfo之,进web系统,到exploit-db找exp来打,获得shell,提权要结合系统服务,这是唯一一台win的机器,也可以用msf提之,注意是64位的。
另外报告一定要注意:
1、截图要完整;
2、local.txt和proof.txt都完整;
3、考试面板里的flag要ip对应写正确;
4、报告格式可以用自己的模板(有同学用自己的模板写的报告,顺利通过考试);
5、漏洞等级等说明、入侵痕迹清除部分不写不会扣分(有同学没写这些也顺利通过考试啦);
6、渗透和提权的过程一定要写完整,命令、poc代码之类的必须完整。
https://blog.csdn.net/qq_34304107/article/details/87617133
1、可以使用官方的报告模板;
2、也可以使用需求里那个lab模板(已经有同学用这个模板通过了考试);
3、技术步骤要清晰,建议每步列一个小标题(1、扫描探测;2、漏洞发现;3、漏洞利用;4、权限提升……)
4、截图!!!尽量截全屏;在交互式shell下截图;重要的地方可以划线划圈标注出来;
关于交互式shell:
这里要说下不要在webshell下执行命令截图(读取proof.txt和ip地址),因为webshell下执行的shell不是交互式shell,官方审核报告的时候会扣分的,当然也有下伙伴用蚁剑或者冰蝎之类的工具执行命令并截图,原则上来说这些有的也属于非交互式的,但确实有同学只截了命令部分(界面是黑框和cmdshell样子差不多)官方也没过了。但还是建议稳妥一些,拿到webshell后反弹回来cmdshell的好。可以发现udf提权不是第一次遇到了,在之前国外泄露出来的题目中也有udf提权的,说明官方比较喜欢用这个伎俩。
这个只是其中比较重要的一部分,有需要的同学找我或者公众号吧;
推荐几个不错的windows提权资料:
http://www.exumbraops.com/penetration-testing-102-windows-privilege-escalation-cheatsheet
https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/
https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md
还有一个很适合oscp考试中用来扫描的工具:
https://github.com/Tib3rius/AutoRecon
linux提权辅助,考试中推荐顺序如下:
LinEnum.sh、linuxprivchecker.py、linux-exploit-suggester.sh、perl-linux-exploit-suggester-2.pl
windows提权辅助,需要结合accesschk.exe配套使用:
WinPrivCheck.bat
https://cyb3rsick.com/2019/01/20/192-168-x-53-offsecsmtp-outofbox-machine-writeup/