Haaukins : A Highly Accessible & Automated Virtualization Platform for Security Education

Haaukins is a highly accessible and automated virtualization platform for security education, it has three main components (Docker, Virtualbox and Golang), the communication and orchestration between the components managed using Go programming language.

The main reason of having Go environment to manage and deploy something on Haaukins platform is that Go’s easy concurrency and parallelism mechanism. Want to get more insight about architecture of Haaukins visit architecture page

Our primary aim to involve anyone who desire to learn capturing the flag concept in cyber security which is widely accepted approach to learn how to find vulnerability on a system.

Despite of all existing platform, Haaukins provides its own virtualized environment to you with operating system which designed to find vulnerabilities.

Prerequisites

The following dependencies are required and must be installed separately in order to run daemon in your local environment.

  • Linux
  • Docker
  • Go 1.13+

There is no prerequisites for installing client to your environment.

Note: Linux can be used in virtualized environment as well.

Installation

To install daemon or client of Haaukins, there are some options, via binary files, which are ready to use, visit releases page.

More information about installation process, checkout following pages ;

  • Installation for client
  • Configuration for daemon
    • There are some configuration files to configure daemon, those configuration files should be in same directory with the binary file that you have just downloaded from releases page.
    • Want to try daemon on you local computer with pre-configured vagrant file check out this repo for more information.

Getting Dependencies

Haaukins platform uses go modules since version 1.6.4, hence it is quite easy to manage dependencies, you just need to run go mod download

Testing

Make sure that you are in $GOPATH/src/github.com/aau-network-security/haaukins/ directory, to run all test files, following command can be used

go test -v -short ./…

Re-compile proto

Haaukins platform uses gRPC on communication of client and daemon, so after updating the protocol buffer specification (i.e. daemon/proto/daemon.proto), corresponding golang code generation is done by doing the following:

cd $GOPATH/src/github.com/aau-network-security/haaukins/daemon/ protoc -I proto/ proto/daemon.proto –go_out=plugins=grpc:proto

Version release

In order to release a new version, run the script/release/release.go script as follows (choose depending on type of release):

$ go run $GOPATH/src/github.com/aau-network-security/haaukins/scripts/release/release.go major
$ go run $GOPATH/src/github.com/aau-network-security/haaukins/scripts/release/release.go minor
$ go run $GOPATH/src/github.com/aau-network-security/haaukins/scripts/release/release.go patch

The script will do the following:

  • Bump the version in VERSION and commit to git
  • Tag the current HEAD with the new version
  • Create new branch(es), which depends on the type of release.
  • Push to git

Travis automatically creates a release on GitHub and deploys on server.

Note: by default the script uses the ~/.ssh/id_rsa key to push to GitHub. You can override this settings by the HKN_RELEASE_PEMFILE env var.

R K

Recent Posts

Starship : Revolutionizing Terminal Experiences Across Shells

Starship is a powerful, minimal, and highly customizable cross-shell prompt designed to enhance the terminal…

21 hours ago

Lemmy : A Decentralized Link Aggregator And Forum For The Fediverse

Lemmy is an innovative, open-source platform designed for link aggregation and discussion, providing a decentralized…

21 hours ago

Massive UX Improvements, Custom Disassemblers, And MSVC Support In ImHex v1.37.0

The latest release of ImHex v1.37.0 introduces a host of exciting features and improvements, enhancing…

23 hours ago

Ghauri : A Powerful SQL Injection Detection And Exploitation Tool

Ghauri is a cutting-edge, cross-platform tool designed to automate the detection and exploitation of SQL…

1 day ago

Writing Tools : Revolutionizing The Art Of Writing

Writing tools have become indispensable for individuals looking to enhance their writing efficiency, accuracy, and…

1 day ago

PatchWerk : A Tool For Cleaning NTDLL Syscall Stubs

PatchWerk is a proof-of-concept (PoC) tool designed to clean NTDLL syscall stubs by patching syscall…

2 days ago