What are CTFs?

Competition in which teams compete to hack or find flags that give them points. As CTFs often mirror actual cybersecurity challenges, they provide practical experience and exposure to diverse scenarios, preparing individuals for the dynamic and evolving landscape of cybersecurity. Many employers in cybersecurity and infosec recognize CTF participation as a strong indicator of a candidate's practical skills and dedication to staying current in the field. Think of the hacking scenes in ‘Mr. Robot’ CTF as a representative model for understanding cybersecurity in context, taking its novel illustration along with its educational value. A lot of it is sped up for time but all of it is actual true to real life.

How do I get started?

There is nothing to start; look up a CTF task and do it. If you're stuck, look up a solution for it. If it's an ongoing CTF, there probably won't be a direct solution to it available online, but you can try to find similar questions (search for library name or similar keywords followed by "CTF writeup") and use their solutions to find yours. Here are some sites to start you off with:

Resources:

  1. picoGym
  2. CTFtime → contains upcoming and past CTF events that are or were hosted.
  3. OverTheWire
  4. CTFLearn
  5. Root-me

1. Linux

CTFs require that you know Linux commands. Linux offers a powerful platform with which to deploy programs, test and analyze encrypted flags, and pentest systems, and hence is widely used in the professional world as well. There are even distributions built specifically for pen testing, such as Kali or Parrot.

The recommendation, while you learn, is that you deploy a distribution such as Kali Linux or Ubuntu Desktop, as these are going to be easier to learn. Also, it is recommended to use a virtual machine for these.

Open preinstalled Linux images:

  1. Kali Linux
  2. Ubuntu preinstalled images

2. Programming

Basic programming is required in order to help do what we call "automating the pain away." As such, it's important that you begin learning a programming language, with which we are well suited to assist you. Popular options for professionals in this discipline include python, javascript, and C based languages.

References: