How to create a Hacking-Lab Challenge
Learn how to create a Hacking-Lab challenge. 😀
Ethics
Please make your challenge neutral. The challenge description shall not offend
other people
other cultures
sexual orientation
politics
religion
Copyrights
Please respect copyrights. Do not use protected resources (files, screens, sounds, video).
You can use HL images if you want https://bit.ly/hl-images
Step-by-Step
Please follow the steps below to create a Hacking-Lab challenge
Create the challenge description in Markdown
Define the difficulty level of the challenge
Define the category of the challenge
Create the challenge resource
Create a solution for the challenge
ZIP everything and upload it
1: Create the Challenge Description
Please write a challenge description in Markdown for the user. This should give the user the instructions needed to solve your challenge.
# Introduction
please introduce the challenge to the reader. Explain what the challenge is about.
For example
* this is a web security challenge ...
* this is a forensic challenge ...
* this is a reverse engineering challlenge
The reader should have a good understanding what this challenge is about after
reading the introduction
# Goal
Describe the goal or story of the challenge. Do not write about the task. Try to
phrase what the goal of the challenge is.
For example
* find the vulnerability from the vulnerable service and disclose the flag
# Task
Describe how the user should start solving your challenge.
Give advice how to approach the challenge
For example
* start the vulnerable service from `RESOURCES`
* connect with `netcat` to the vulnerable service on port `1337`
* download the binary from the vulnerable service on port `80`
# Step 1: <TITLE>
* do this
* do that
# Step 2: <TITLE>
* do this
* do that
# Expected Result
Please respond to the following questions and submit a short `PDF` file.
for example
1. Explain the vulnerability
2. Explain the exploit
3. Explain mitigation/remedy in the source code
4. Explain possible infrastructure mitigations
# Flag
Please submit the **flag** to get your flag points.
# Flag Format
* `HL{UUID}`2: Define the difficulty level of the challenge
Please define an appropriate level for the challenge
Novice
Easy
Medium
Hard
Leet
3: Defined the category of the challenge
Please choose the appropriate category for the challenge. Multiple selections of categories are allowed. Do not add more than three categories to the challenge.
Web Security
Exploitation
Crypto
Reverse Engineering
Forensics
Penetration Testing
Network Security
Database Security
Malware (Analysis)
Programming
Linux
Windows
OSX
Android
iOS
WiFi
Phone
Defense
Fun
OSINT
Social Engineering
4: Create the challenge resource
Please create the resource needed to solve the challenge. This could be a file or a docker image.
Examples
Web Security: mostly dockers
Forensics: mostly file artefact based
Android: mostly file artefact based (APK)
If your challenge is based on a docker container, please follow the following recommendations
Alpine Linux based
Please use the Hacking-Lab generator to create a sample
Please read more about idocker versus rdocker challenges
5: Create the solution for the challenge
Please create a Markdown that explain how the challenge can be solved.
Step-by-Step guideline
add solution tools if needed (python solver or similar)
6: ZIP everything and upload it
Please ZIP your challenge and upload it to Ivan Bütler
https://fb.compass-security.com/inbox/QW3sH1ere9mwML
The ZIP file should include
Markdown of the challenge
Markdown that specifies the level and category of the challenge
Resources needed for the challenge (files, Dockerfile)
Markdown with step-by-step instructions (how to solve the challenge) and solution tools