Being curious

02 Sep 2019

Achieving OSCP

Lessons I learnt from completing the Penetration Testing with Kali Linux (PWK) course and passing the Offensive Security Certified Professional (OSCP) exam.

My background isn’t in Cyber Security. I was a Project Manager for a long time who tinkered with security things in my spare time. Achieving OSCP was a goal I set myself as part of shifting careers into the Cyber Security industry. It also aligned with me being naturally curious.

End to end OSCP took me approximately three months to attain. This was made up of 60 days of lab time with a following month spent on cleaning up documentation and final preparations. During my time I compromised lab 29 machines, completed and submitted a lab report. I passed the exam on the first attempt. Prior to attempting the certification I had been attending security conferences (bSides), tinkering with a number of things on the side (Vulnhub machines & other general CTF challenges) and completed a few basic courses and books.

Reflecting on what I learnt or gained a better appreciation for from the experience led me to the below. These aren’t technical things – there are no shortage of technical OCSP guides on the Internet. In my view these things are what set me up for success.

First is to understand what it means to be a hacker. It means finding ways around impediments, stepping outside of the box, pushing the limits of what is possible and ignoring the fact there is a box all together. It’s from this that the mentality of try harder comes. Being a hacker isn’t about starting with all the answers. A hacker is someone who questions, troubleshoots, perseveres, researches and pushes through until they have a solution.

Second is to spend time working on communication. Be in the habit of documenting everything; screen shots, notes, command outputs – anything of interest. Be able to explain in non-technical terms why something found is significant – what could a malicious person do with it to cause problem? How could it be fixed?

Third is aim to understand things from base principles. Be able to do things manually first and automate from there. Understand that automated tools come with limitations and drawbacks. Relying on them will limit the scope of what is possible and cause things to be missed. Without an understanding of base principles existing tools can’t be improved or new ones created.

Fourth is to never stop learning. Read books, watch talks, attend conferences – learn from what others have done. There is always new things being done and more things to learn. Watching a solution to a problem isn’t a sin if you learn something from it and improve. Look at how old knowledge can be applied in a new ways. Learn by doing, don’t just run what others have created. Create new tools, method and guides, improve existing ones.

Last is understand the endurance aspect of sitting the exam and prepare for this. Don’t have everything else in order and fail due to not going the distance. Forty-eight hours is a long time to go straight. Practice for this – mark aside a fixed time, pick a target scope and spend time working through them. Document what’s achieved during the time. Look back afterwards and reflect and learn from it.

Remember through it all not to give up. Nothing process (this one included is perfect). There is a real sense of satisfaction to be had at the end when they tell you that you have passed the exam and been awarded your OSCP.