Home - Hazelwire/Hazelwire GitHub Wiki

A word of welcome

Welcome to the Hazelwire wiki! Right now it's pretty empty but hopefuly more information will be added soon. Because we made this as an university project a lot of shiny documentation is available (requirements / manuals / design document etc), but these documents will all be available sometime in the near future. To get started read the pages below.

For the most complete usage reference we have right now see: https://github.com/downloads/Hazelwire/Hazelwire/hazelwire_manual.pdf. Because the project is developing quite rapidly (or we are rather slow with documentation) it will not be a 100% up to date. In the future we will not update this PDF anymore but instead move all of the documentation to the wiki for easier updating.

Requirements

  1. Linux based OS (tested with debian / ubuntu / linux mint)
  2. Virtualbox
  3. Java Runtime Environment

Developer Resources

If you want to develop modules or make your own basevm check out these links.

BaseVM Specifics

Module Specification

Module Packaging Tutorial

What is Hazelwire?

Hazelwire consists of two seperate parts bundled together:

Virtual Machine Generation

The Generator is the part of the project that generates the actual vulnerable images contestants are going to run. It does so in 3 stages:

Input

The Generator takes two types of things as input, you are going to need at least one module and a basevm. This basevm is a virtualmachine image (.ova) with the clean operating system you want to install the modules on.

Modulation

You can modulate this input with the Generator GUI. This is where you can select/deselect modules and configure user-specific settings (flagpoints or a port for instance). There is also a configuration window that's basicly a GUI frontend for the configuration file at this moment. After you have configured all the modules and selected your basevm it's time to hit the generate button.

Output

What will happen under the hood is the following:

  1. Import the basevm .ova image into virtualbox and start it.
  2. Create an ssh connection and create the directory structure.
  3. Generate new config.xml files with the user specific settings embedded and transfer these together with the modules over SFTP to the VM.
  4. Generate a BASH script with some default installations like openvpn (this will change in the future to an appended file, so users can easily set it) and a gdebi installation line for every module.
  5. Call this installationscript and hopefuly everything goes ok.
  6. If everything went fine, export the VM with all the modules installed to a user defined file.
  7. A manifest file will be created. This is to tell the game framework what ports are used for what services and how many flags need to be generated / transferred to the participants.

Game Framework

If you have a generated virtual machine the next thing you probably want to do is actually playing. This can be done with the Game Framework. For specific instructions on how to install and operate please refer to the manual. Which you will find here if you are too lazy to scroll back up: https://github.com/downloads/Hazelwire/Hazelwire/hazelwire_manual.pdf

⚠️ **GitHub.com Fallback** ⚠️