About one week ago I took and passed the Penetration Testing with Kali Linux (PWK) cert exam and obtained the OSCP+ and OSCP. Passing the OSCP was on my “to do” list for a long time but I just never got around to it, so it’s good to finally check that one off. I enjoyed the overall experience enough that I already signed up for the next one and start my OSEP journey today!
The OSCP+ Certification
I assume you already know about the OSCP if you are reading this. In case you don’t it is an ethical hacking and penetration testing exam. The exam gives you six machines to hack in 23 hours 45 minutes, and then another 24 hours to submit a report. Three machines are an Active Directory environment, and three machines are standalone challenges. You get 40 points by completing AD, and then 20 points each for the standalone machines (10 for access, 10 for privilege escalation). You need 70 to pass.
OSCP vs. OSCP+
The OSCP+ and OSCP certifications are the same cert, but the OSCP+ is used to line up with the whole continuing education scheme to maintain the plus. Being in the DoD contracting line of work, this makes sense to me. Most of the certifications have continuing education scheme to prove that your knowledge is current. Since I am in that line of work, this for me is a plus. From what I understand the OSCP is still a lifetime certification if you let the OSCP+ lapse by not paying the fees and submitting CEUs. Nice benefit compared with my CISSP that will just go away if I don’t do that.
The value of certifications (is it worth it?)
Certifications are taking some hits lately. Go ahead and Google for yourself and I am sure you will find all forms of social media contain posts expressing both sides of the cert debate (along with every other credential out there). Is it necessary to get a certification? No, probably not. Could it help you land a job? In my opinion yes, but like anything else a cert does not get you a job on its own. What it does do is prove that you went through some form of training, and that you proved you knew enough to pass that particular exam.
The Offsec PWK training
I am married with kids, so spending the money on the training and certification and then the time commitment to complete it is a discussion. It goes something like this:
A huge thank you to my wife for supporting me while I pursued this certification, and to my kids who were great while I took the exam.
Then it was time to sign up for the PWK and get started. I read a lot of criticism of Offsec and their training while preparing for this exam. Most of it seems to come down to price. I agree that $1750 is a steep cost, but it does provide training and certification. I have seen a lot of training+cert packages that costs significantly more, so to me this was acceptable.
Is the PWK training enough?
The PEN-200: Penetration Testing with Kali Linux course provided by Offsec provides everything you really need to pass the OSCP exam. I saw a lot of other blog posts discussing multiple other supplemental training resources like Try Hack Me, but in my opinion these are not necessary to pass. I didn’t use anything except for the PWK training material to study. Then again, I do have an extensive IT background, previously obtained the CEH that I let expire, and produced quite a few Pluralsight courses on hacking tools and security. So you could say I am not new to the field or the material.
I still think that the PWK training material provides everything you really need to know, even without that experience. All my experience did was allow me to spend less time studying the material and practicing. Example: I already know how Active Directory works and can build a domain, so I could just focus on what tools are used and how to use them to get what I need. I went through all of the training modules up to and including “Assembling the Pieces”, and then took one OSCP practice lab from the challenge labs prior to the exam. This was enough for me to pass.
A few notes about notes
Throughout the training I used the recommended Obsidian app to capture the material. My method was to make a folder for each module of the training, and then a note inside for each topic within that module. It took me awhile to make the full use of the app, but later I started really using the markdown features to make the most of this.
In particual I would recommend using these markdown features:
- Use the code blocks. This is done by entering the backtik key three times to create a block. Then whatever you paste in the block will keep its plain text format, and this creates a copy button allowing for easy copy/paste.
- Use the subheadings. I failed to do this until the VERY end and regretted it. If you create subheadings with the “#” characters, Obsidian makes everything beneath it collapsible. This is extrememly valuable when trying to sift through your notes on the exam.
Passing the OSCP Exam Experience
Pre-Exam: Before the exam even started I staged the following to keep everything pretty organized.
Make a directory called OSCP-exam
- Make these subdirectories
- Standalone1
- Standalone2
- Standalone3
- AD1
- AD2
- DC
- tools
- Within the “tools” directory, place the tools you typically need to transfer to other machines, like webshells and privilege exec tools. Easier to have them ready ahead of time then to have to go and find them, then start the server. It’s just a time saver.
- Start a web server with python from the tools directory. Now that’s done and you don’t have to remember to do it later. If you need another tool later, just copy it into this directory.
- Start a terminal for each machine and then change directory into the subdirectory for it. Now all of your terminal windows are labeled so when you end up with a ton of them open (I had way too many by the end), it’s easier to find the one you need.
- Make a quick action cheat sheet in Obsidian of typical things you think you might need.
- Bash one-liner reverse shells
- PowerShell one-liner reverse shells
- msfvenom payload generation
- Command sequences for common tools if you forget them a lot
- PowerShell/wget/curl download commands
- Netcat bind and reverse shells
- Nmap commands for initial enumeration
The Exam: 24 hours of stress with moments of relief and excitement
I can’t say much about the exam experience in detail because I would like to keep my certification. What I will say is that I think I fell for every rabbit hole and distraction they threw at me. I spent a lot of time on exploits that didn’t work, or chasing down something that ultimately went nowhere when the answer was right in front of my face.
To recycle some advice from others that I tried (but sometimes failed) to remember while taking the exam:
- If something isn’t working, move on and try something else.
- Especially if #1 happens, go back and check the enumeration you did… maybe even enumerate again.
- If something is taking longer than it should, you might be in a rabbit hole, GET OUT and see #2.
- Check the exam FAQ and guide. It has some good information, like how long some actions should take and what to do if yours takes longer. Listen to that advice to save yourself some time.
- Passing the OSCP is not rocket science, it is possible, and everything is hackable in some way.
Passing the OSCP exam takes a score of 70/100 points. There are no longer bonus points offered for completing training. I chose the route of going for the full 40 on the AD machines, then start the standalones. This worked well for me. I kept going past 70 with one more privilege escalation to secure 80/100 in case there was an issue with my report. One of the machines, I just couldn’t get. Thinking through it after the exam, I think I figured out what I needed to do, but too late now! Doesn’t matter, passing is passing in the end.
The Report: finally, it’s all over
Once you pass that portion, you have 24 hours to write a report. Other blog posts recommended writing the report as you go, which I did not do and really regreted it. I would recommend following the advice of others. Although I took extensive notes in Obsidian during the exam, I barely got my report done on time, and I was then stressing about it as my word processor messed up the format on occasion, or I wondered if I had everything included, etc.
Write the report during the exam if you can, or take notes that allow you to copy/paste well. I did at least take good notes, so that helped. I also left all of the terminals open after the exam in case I needed to go back and take screenshots of anything, or remember how I did something that I missed in my notes. This DID help me in the report for one screenshot I forgot to take. I HIGHLY recommended to leave everything open after the exam until you submit your report. You won’t have access to any machines anymore, but all of your history is still there.
After about a 5 day wait, I received the email I was waiting for letting me know that I passed and now obtained the OSCP+ certification! Passing the OSCP was a rewarding experience. I am glad I chose to finally sit down for it and knock this one out.
Next Steps
I can finally check off passing the OSCP from my to-do list. I actually enjoyed the overall experience, and learned a lot from the material and the actual exam. Although the process was long, I enjoyed it enough that I immediately signed up for the next step, PEN-300 and the OSEP exam! I am looking forward to learning more and continuing this journey.
My plan is to post some content during my training for OSEP, and will probably modify my home lab to fit better with this process. Check in on my blog from time to time for updates on that if you are interested.
Recommendations on passing the OSCP
- Preparation: Focus on studying the PWK training material. Don’t get too distracted chasing down supplemental training. Overpreparation might just mentally exhaust you.
- Note taking: I used Obsidian with one folder per module, and each subtopic had a note. Use markdown to create headings and copy/paste code blocks.
- AD and privilege escalation are 70 out of the total potential 100 points. Spend some time studying these portions of the material. Remember though you do have to obtain initial access to at least 2 standalone machines to pass.
- Just go for it: If you know me personally and ever asked me for tips on an exam, I probably told you to just go sit down and take it. The same advice applies here. You can endlessly prepare and probably will never truly feel ready, just try the exam. Go into it allowing yourself to purchase a second attempt, this helps me at least.