Fundamental Skills Index



Although we aim to teach you most of the skills you’ll need to become an ethical hacker, it’s good to have a core understanding of the basic concepts, tools, and techniques before some of our more advanced sessions!

These fundamental skills include:

We will aim to teach these skills to you in person in the first few sessions of the semester - for example, in 2021 we have an Introduction to Web Hacking session in Week 2, and an Operating System Security session in Week 5.

However, if you can’t make our first sessions or simply want a refresher, this series will be perfect for you!

As the semester continues, we will cover more advanced topics and eventually progress to hacking some machines from start to finish! By then it will be useful to know the basics so you can keep up with demos and focus on the trickier concepts.

How to Use This Series

There are several key skills in this series, each with a category (e.g. Linux or Web) and a respective experience level (complete beginner, novice, and intermediate).

Complete beginner skills aim to teach a core concept’s theory.

Novice skills focus on a practical tool or a trickier concept.

Intermediate skills may be a practical tool that relies on knowledge of other core concepts, such as basic networking.

Each skill has an individual page (on our website) or an individual note (if you’re viewing this in Obsidian). Each skill page contains:

Where appropriate, we may also post short video demos or a link to an interactive exercise that you can try. We will also always try to provide a Going Further section, with links to extra activities on other platforms you can use to test your skills.

Note: You can also view these lessons on Git:

Learning Path

Note: not all of the lessons detailed below are written yet. Consider this a roadmap for what we want to include!

For all our sessions, especially the Give it a Go sessions, we aim to be able to teach the content to you from scratch. However, if you want to prepare in advance (and you really don’t have to!) we recommend the following:

Remember, these are the fundamentals you’ll need for each stage - we don’t expect you to be able to own a system after reading all the pentesting lessons, but you will need to know them if you set out to do one on your own. We’ll teach you skills regarding specific exploits in the relevant sessions.

Full List, By Category

Note: not all of the lessons detailed below are written yet. Consider this a roadmap for what we want to include!


Inspecting Webpages with the Developer Tools: Web 1 - Inspecting a Webpage - Ready to view!

The Fundamentals of Web Requests: Web 2 - Understanding HTTP Requests - Ready to view!

Learning to Use a Powerful Web Proxy: Web 3 - Burp Suite - Ready to view!

Site Technologies & Features: Web 4 - Common Site Features

An Overview of Site Security: Web 5 - Web Security Overview


Locating Hosts on the Internet: Networking 1 - IP & DNS

How Hosts Communicate: Networking 2 - Protocols

Using Proxies to View and Redirect Traffic: Networking 3 - Proxies


The Linux File System: Linux 1 - Navigating a File System - Ready to view!

Installing New Software: Linux 2 - Downloading Files and Packages - Ready to view!

Linux File Permissions: Linux 3 - File Permissions


Using Different Windows Command Line Interfaces: Windows 1 - Windows Command Lines - Ready to view!


Curl, a useful command line tool for making HTTP requests: Tools 1 - Curl - Ready to view!

Feroxbuster, a scanner for finding hidden pages on a website: Tools 2 - Feroxbuster

Nmap, a powerful port scanner: Tools 3 - Nmap

Wireshark, a network monitoring tool: Tools 4 - Wireshark

Netcat, a networking ‘swiss-army knife’: Tools 5 - Netcat

Penetration Testing Skills

Outline of a Penetration Test: Pentesting 1 - Outline of a Penetration Test

Basics of Shells: Pentesting 2 - Basics of Shells

File Transfers: Pentesting 3 - File Transfers

Accessing a Computer Remotely: Pentesting 4 - Remote Access to a Computer


Automation with Bash: Automation 1 - Bash Scripting - Ready to view!

Automation with Python: Automation 2 - Python Scripting - Ready to view!


Setting up a Virtual Machine for Practicing Linux: Misc - Setting up a Virtual Machine - Ready to view!

Recognising Common Character Encodings: Misc - Recognising Common Encodings