How to create a Hacking-Lab Challenge

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

  1. Create the challenge description in Markdown

  2. Define the difficulty level of the challenge

  3. Define the category of the challenge

  4. Create the challenge resource

  5. Create a solution for the challenge

  6. 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

  1. Novice

  2. Easy

  3. Medium

  4. Hard

  5. 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.

  1. Web Security

  2. Exploitation

  3. Crypto

  4. Reverse Engineering

  5. Forensics

  6. Penetration Testing

  7. Network Security

  8. Database Security

  9. Malware (Analysis)

  10. Programming

  11. Linux

  12. Windows

  13. OSX

  14. Android

  15. iOS

  16. WiFi

  17. Phone

  18. Defense

  19. Fun

  20. OSINT

  21. 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

  1. Markdown of the challenge

  2. Markdown that specifies the level and category of the challenge

  3. Resources needed for the challenge (files, Dockerfile)

  4. Markdown with step-by-step instructions (how to solve the challenge) and solution tools