Code Monkey home page Code Monkey logo

acherus's Introduction

Acherus: The Docker Hold

"Behold, Acherus, the grand citadel of death! It has no equal in this world! Not even the mighty Naxxramas could withstand a direct assault from the Ebon Hold." Instructor Razuvious

Acherus is a containerized hacking environment, based on kali image, and inspired from Exegol and dwn. It aim to simplify deployment and maintainability of an up-to-date hacking environment, with the ability to throw it and recreate it at any time.

Acherus comes with a binary written in Go that act as a docker-client rewrite specifically for Acherus.

Warning

This project is a low-cost Exegol, I'm using it because I have fun to and it's implemented with all dotfiles and keybinds I like, but if you are searching for a stronger / stable one, go for Exegol.

Requirements

  • Docker
  • Golang
  • Root user or user in docker group
  • A bit of disk space :

Installation

To install acherus binary, type the command below.

go install github.com/zblurx/acherus@latest

Note: Make sure that your go binary path is in your PATH variable !

Quick Start

$ acherus init
[*] Pulling Acherus. Can take some time...
[*] Ready !
$ acherus go
root@acherus [/] ~>

Usage

$ acherus
Usage:
  acherus [command]

Available Commands:
  completion  generate the autocompletion script for the specified shell
  destroy     Delete targeted container
  go          Execute and attach to container
  help        Help about any command
  init        Build image
  list        List available container
  reset       Reset Image
  suspend     Suspend targeted Acherus Container

Flags:
  -h, --help      help for acherus
  -v, --verbose   Verbose mode (usefull for debugging)

Use "acherus [command] --help" for more information about a command.

List

To list image and containers:

$ acherus list
[*] Image List

|--------------|-----------------------|----------|
|      ID      |         TAGS          |   SIZE   |
|--------------|-----------------------|----------|
| d36dae842e7d | zblurx/acherus:latest | 13.83 GB |
|--------------|-----------------------|----------|

[*] Container List

|----------|-----------------------|--------------|--------------------------|
|   NAME   |         IMAGE         |      ID      |          STATUS          |
|----------|-----------------------|--------------|--------------------------|
| /acherus | zblurx/acherus:latest | c8c5ca0f476c | Exited (0) 2 minutes ago |
|----------|-----------------------|--------------|--------------------------|

Init

To install Acherus docker image, you can use acherus init:

$ acherus init --help
Build image

Usage:
  acherus init [flags]

Flags:
  -d, --dockerfile-path string   Dockerfile path
  -h, --help                     help for init
  -l, --local                    Load Acherus from a local Dockerfile

Global Flags:
  -v, --verbose   Verbose mode (usefull for debugging)

$ acherus init
[*] Pulling Acherus. Can take some time...
[*] Ready !

Go

acherus go is the command to create the container and execute commands in it:

$ acherus go --help
Execute and attach to container

Usage:
  acherus go [flags]

Flags:
  -d, --detach           Don't attach to the container
  -e, --execute string   Execute specific command (default is /bin/bash)
  -h, --help             help for go
  -l, --local            Create container based on local image
  -m, --mount string     Mount directory into acherus container (-m "source:dest")
  -n, --nat              Nat the container (default is binded to host)
      --netadmin         Create a container that can interact with network interfaces
      --privileged       Create a container in privileged mode
      --recreate         Force creation of the container (if the container already exists, will delete it)
  -t, --tag string       Tag the specifc container (default "acherus")

Global Flags:
  -v, --verbose   Verbose mode (usefull for debugging)

$ acherus go
root@acherus [/] ~>

Persistence

Each container has a shared folder with the host computer, located in ~/.acherus/acherus[-tag] on the host and in /data in the container. Command history is backed up into this directory, so you can access it even outside the container, in addition from Responder and Metasploit logs.

Keybinds

Even if Acherus uses bash, it hold a bunch of keybinds and aliases to speed up everything:

Keybinds:
Ctrl+n -> cd ..
Ctrl+k -> cd /data
Ctrl+r -> fzf history


Aliases:
**Lots of commands**
a="arsenal"
d="cd data"
publicip='curl ifconfig.me'
[...] (Check in runeforge/files/.bash_aliases)

GUI

Acherus supports GUI applications on Linux. For exemple, you can use firefox, wireshark, bloodhound, and many more !

Network

By default, Acherus bind the container to your host network interfaces. If you want to run the container on it's own network namespace just do:

$ acherus go --nat [...]

If, somehow, you need to use an isolated network namespace, but need host network capability (for example, connect to an openvpn server only in the acherus container) there is an option for that:

$ acherus go --nat --netadmin [...]

If network is not working anymore after vpn connection, it's dns fault

If you need wifi capabilities, for example to use a specific wifi card, just use the --privileged option:

$ acherus go --privileged

acherus's People

Contributors

zblurx avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.