OSCP Review 2021

I have recently sat for the Offensive Security Certified Professional (OSCP) exam and passed in my first attempt with an estimated score of 77.5 points.

Since I have benefited from many OSCP reviews such as this, I thought it would be a good idea for me to share my experience of the entire journey. The questions I found to be helpful when I was just another PWK student in search for tips were:

At the risk of sounding just like every other post-exam review, here are my (very long) answers to that set of questions.

1. What tips do you have for us?

This question is out of sequence, but I thought it should be addressed first given its importance. Here’s some practical tips that worked for me in no particular order:

Reliance on Hints vs “Try Harder” Mentality

Let’s have a quick discussion over the use of hints. I believe this is a topic that many agonized over while working on difficult boxes. While preparing for my own exam, I came across this interesting perspective from u/FearfulFerret over at r/oscp as thought that I should share.

I decided it would be better to expose myself to as much material as possible in the time before the exam rather than beating my head against wall after wall; this worked well for me, but I think this is an area where everyone will be different. Looking at hints prioritizes exposing you to as large a variety of enumeration and exploitation techniques as you can. Foregoing hints prioritizes your methodology and drive. Work on whichever seems more meaningful to you.

Indeed, work on whichever seems more meaningful to you. Personally, I find little advantage in banging my head against the wall for long hours. To obtain that sweet spot between over-reliance and “trying harder” to the point of tears, I have a checklist to complete before throwing my hands up in defeat.

If the answer is yes for all except the last, I would proceed to take a peek at the hints or walkthrough. If I find that it was something obvious that I missed out on, I would update my checklist (in bold red if necessary) so that I won’t miss it again. If I missed it because of a gap in knowledge, I would take some time to study the vulnerability and make sense of it. This way, I wouldn’t feel as if I had cheated since I am improving upon my process / learning new skills in both options.

That said, we should still remember that there will be no guidance available when we are in the exam. Ultimately, as we learn and become much more confident in our methodology, we should strive to root boxes without hints.

2. What did you do to prepare before starting on the course?

As a student pursuing a degree in information security, obtaining OSCP has always been something I have aimed to achieve. Unfortunately, due to limited purchasing power, OSCP was an expensive endeavor which I was willing to pursue only when I was decently prepared.

To get started on my journey towards OSCP, I first signed up at free platforms like TryHackMe and practiced on vulnerable machines there. This allowed me to get a feel of the methodology. Needless to say, I’ve referenced the walkthrough almost every step of the way.

Once familiarized, I subscribed to HackTheBox (HTB) and started working on boxes listed in TJNull’s NetSecFocus Trophy Room. After each HTB machine, I would do a review by watching Ippsec’s – this helps me to identify alternative attack vectors and at times even understand underlying technology that made the attack possible.

I realized very soon that I had severe knowledge gaps when it comes to privilege escalation. To tackle this, I bought TCM Security Inc’s Windows and Linux Privilege Escalation course bundle. I chose this over the wildly recommended privilege escalation course by Tib3rius largely because it was cheap(er) and featured hands-on labs for every escalation method taught. In hindsight, however, I should have just bought both. I still suck at privilege escalation.

Overall, I would categorize this period as “casual preparation” as they were done extremely irregularly over the course of 2 years – largely due to the lack of discipline, school, internship and general life commitments.

3. How did you spend your lab time?

Before we continue, let’s set the stage for how much time I was able to dedicate to seriously prepare for this certification.

At the point of course registration in March 2021, I was in my last semester of university and had fairly light workload. This allowed me to dedicate 3 days a week for a full month. After which, I would have to stop cold turkey for nearly 2 weeks due to final examinations (gal gotta study and graduate) before being able to spend 24/7 on the subsequent month focusing solely on the certification. In total, I had about 4 months of serious preparation before my scheduled exam in June 2021.

Offensive Security Official Labs

I hit the ground running on the very first day of my 30 days lab time. I could only do this thanks to the preparation done prior to the registration of the course. While I did spend time reading the PDF from cover to cover, I elected to forgo the lab practice. This was decided through a simple cost-benefit analysis that takes into consideration my schooling commitments and limited lab time.

It’s helpful to mention here that I have had weekly study sessions with folks from Responsible Cyber – my previous internship company – who had also registered for the course. These study sessions kept me disciplined and also provided me with a sense of community. Studying alone is lonely after all.

By the end of my 30 days of lab time, I had rooted 20 boxes. The subsequent 2 weeks were then spent on studying for my final examinations.

TryHackMe Buffer Overflow Prep

Once school was done and dusted, I turned my focus back to OSCP.

I first dedicated a weekend into getting used to Buffer Overflow. Since it was a topic already covered at school, I didn’t have much difficulty with it. The most useful resource I would recommend for this topic is TryHackMe’s OSCP Buffer Overflow Prep room.

Offensive Security Proving Grounds

After seeing tons of raving reviews about Offensive Security’s Proving Grounds, I signed up for the practice subscription and promptly had my ass kicked by the easy and immediate boxes available. The difficulty level was so different from the course labs that I privately told my friends that “I’ll be screwed if the difficulty level labeled on the boxes is an accurate reflection of the exam environment”.

While subsequent boxes were rooted with conscious efforts to avoid any forms of hints in order to simulate the exam environment, I am not ashamed to admit that I relied on walkthroughs for the first ~10 boxes. I’ve discussed a bit about the tradeoff of relying on hints vs the “trying harder” mentality above so I won’t elaborate upon it here.

All in all, I completed about 32 boxes from Proving Grounds within a month.

Summary of completed boxes

In total, I rooted 77 boxes with nearly ~50 over the course of 4 months. The full list of machines can be found at the last section.

What was your exam strategy?

3 days before the exams, I stopped working on rooting any more boxes. The time was spent on resting and outlining a general strategy for the exam instead.

Strategy

In terms of tackling the boxes, I figured I would work on it in the following order:

  1. Finish buffer overflow (25 points) within 1 hour and run autorecon on other machines in the meantime.
  2. Obtain 10 points (root) OR 20 points (user) depending on which seems easier via preliminary scan results.
  3. Work on whatever that’s left.

As you can see, I gave up planning by step 2 because there were just too many variables at hand. Other miscellaneous stuff includes:

Reality

In the end, it went as expected; no plans ever survive contact with the enemy after all. Here’s a rough breakdown on how my 24 hours went.

T~3 (3hrs for 10 point and BOF – including breaks + set up time)

T~9 (6hrs for 20 pointer – including breaks)

T~16 (7hrs for 25 pointer – including breaks)

T~18.5 (2.5hrs for sleep)

T~19.5 (1hr for 20 pointer)

T~22.5 (3hrs to wrap up)

Once I had doubled, tripled and quadrupled checked that I had submitted the right proof keys for the right IP address and had all my screenshots with me, I thanked the proctor and ended the exam.

After a glorious 5 hours of sleep, I took my time to compile my report and uploaded it. 3 long days of constantly checking my email later, I have finally got the long awaited email!

I am now an OSCP!

OSCP email

What do you plan to do next?

On top of my head, there’s a couple stuff I want to try out.

Bug bounty is one. I have tried my hand at it but realized that I need to up my game at my practical reconnaissance methodology before getting my hands dirty into the technical bits. One can’t hunt for exploits when one doesn’t even know what assets are available.

Certification wise, achieving Offensive Security Web Expert (OSWE) is certainly a target. Unfortunately, I have little development experience and zero knowledge on source code review. Since I prefer to be decently prepared before I shell out the amount of money OSWE requires, this will be on the back burner for a while.

Another certification that I’m considering is the Practical Network Penetration Tester (PNPT) certification from TCM Security, Inc. It’s fairly new, but I feel that it would be a natural progression from OSCP as the exam scope features Active Directory exploitation to compromise the exam Domain Controller. Definitely sounds like a challenge.

That said, I’ve actually just started a full time position and would need some time to get used to the work environment – I suppose I’ll get into these sometime in 2022. Meanwhile, I shall be content with keeping my skills sharp by rooting active HTB machines.

Special thanks!

No success can be attained alone.

Some of my biggest motivators for this certification – and cybersecurity in general – are my bosses and mentors from the various startups I’ve interned in. They were the ones who introduced me into the world of penetration testing (@horangi), helped me along with explaining sections of walkthrough when I’m stuck (@ecobee) and organized weekly study session to make sure I’m disciplined throughout the final months of preparing for the exam (@responsiblecyber).

Not to forget my university friends who had helped and encouraged me throughout this journey. In particular to Jerome, who had the dubious honor of dealing with my frantic fretting and general exam anxiety. Thanks bruh. Honestly won’t be able to do it without y’all.

Last but not least, to Woman on Cyber (@womenoncyber) for sponsoring my PWK course + exam voucher. Do check them out if you are based in Singapore!

List of completed boxes

TryHackMe HackTheBox ProvingGrounds