Quickstart Guide

So, you have axiom installed, you're feeling pretty good about yourself, you're 10 minutes away from feeling the power of axiom!

Ensure your build has occurred successfully

If you've followed the installation steps with success, you should have run the axiom-configurearrow-up-right script at some point. axiom-configure automatically starts axiom-buildarrow-up-right. During this time, Packer by HashiCorparrow-up-right will create an image. You should notice "Shutting down gracefully... Creating snapshot....".

You should have a valid build in your account now, if, in doubt, you can run axiom-buildarrow-up-right and create a new base snapshot just in case!

You can also manually edit your account details such as API key, image id, CPU, RAM etc, in the profile.json you just created cat ~/.axiom/accounts/personal.json.

If you have a valid build in your account, skip to axiom-initarrow-up-right.

ax configure

Setup and configure the axiom controller and validate cloud account 💻

chevron-rightax configurehashtag
Description:
Examples:
  axiom-configure --setup # kick off Ax configuration wizard
  axiom-configure --shell zsh # Set default shell to zsh via command line
  axiom-configure --config <personal.json file> # Use personal.json from a file for account setup
  axiom-configure --config <personal.json string> # Use personal.json data supplied by command-line for account setup (must be vaild personal.json data wrapped in single quotes)
  axiom-configure --shell bash --unattended --config <path to personal.json file>  # Use bash for default shell, do not promot, use personal.json data from file for axiom setup
Usage:
  --setup (optional)
    Start axiom-configure wizard, install dependencies, kick off axiom-account-setup and axiom-build
  --config <axiom.json data>
    Setup account with data from file or supplied from the command line (must be vaild data from a personal.json axiom file)
  --unattended (optional)
    Avoid any promots, defaults to Oh My Zsh unless --shell argument is also provided
  --shell <bash, zsh, omz (Oh My Zsh)> (optional)
    Add axiom to path, backup .zshrc/.bashrc to .zshrcbak/.bashrcbak
  --debug (optional)
    Enable debug mode (VERY VERBOSE!)
  --help
    Display this help menu
ax configure --setup

You can provide your config file before or after running axiom-configure.

axiom-configure --setup --shell bash --unattended --config ~/.axiom/accounts/do.json



ax build

Pick a Packer provisioner 🐣

You must run axiom-configure before anything else. This creates your axiom.json file which is required by other commands.

You can provide your provisioner inline or after running axiom-build.

We currently offer four different base provisioner files, and 2 custom provisioner file to build images.

  • Defaultarrow-up-right is our latest iteration of axiom provisioners. It comes with many tools installed and has been optimized for readability. Recommended for axiom-fleet.

  • ReconFTWarrow-up-right provisioner includes all tools in ReconFTW and works with most modules. Recommended for ReconFTW.

  • Barebonesarrow-up-right is our decently secure base install, comes with Docker, Go-lang, Interlace and nmap installed. Recommended for templating.

  • Extrasarrow-up-right has more tools installed than our Default provisioner

To use your own Provisioner, read Bring Your Own Provisionerarrow-up-right.

ax images

Manage images/snapshots with axiom-images 💿


ax init

Initialize a single instance 🌱

the --deploy option allows you to install a deployment profile (stored in ~/.axiom/profiles/)


ax exec

Execute a command against one or many instances 🤖


ax ssh

axiom-images

Manage images/snapshots with axiom-images 💿

chevron-rightaxiom-images usagehashtag

axiom-init

Initialize a single instance 🌱

chevron-rightaxiom-init usagehashtag

the --deploy option allows you to deploy a profile (stored in ~/.axiom/profiles/). --restore will restore a profile. These options can be used together.

You can run this command without any parameters, and it will pick a name for you. This name is picked at random from a list of legends!

If you supply an argument, it will be used as the instance name, in the above example we spin up an instance called "jerry".

axiom-ls

Now you have spun up an instance, you can run axiom-ls and get a list of all running instances.

List your instances - axiom-ls


axiom-exec

Execute a command against an Instance 🤖

chevron-rightaxiom-exec usagehashtag

axiom-ssh

Connect to an instance - axiom-ssh 🔗

chevron-rightaxiom-ssh usagehashtag

Connect to your instance - axiom-ssh <instance>

Now you have an instance, and it has a public IP address, you can connect to your new instance using axiom-ssh

If you want to be dropped into a tmux session, that will remain after you disconnect, use the --tmux flag.

To detach from this tmux session, run ctrl+a d, this will disconnect you from the box but leave your tmux session running (and any command running in that session!)


axiom-backup

Backup an initialized instance to the cloud 🧳

After running axiom-init you can set up config files, unique wordlists, private tools etc, take a snapshot of that image and use it to deploy future axiom instances/fleets.


Backup an Initialized Instance - axiom-backup <instance>

After running axiom-init you can set up config files, unique wordlists, private tools etc, take a snapshot of that image and use it to deploy future axiom instances/fleets.


axiom-rm

Remove one or more axiom instances


Delete your instance

Once you're done with your instance, delete it using the command, axiom-rm <instance>

The -f flag will not prompt on deletion, I generally use this, but if you want to be ultra sure omit the -f flag.

More Info

In Summary, a few useful commands to get you up and running, to use basic instances, and interact with them. Please refer to Filesystem Utilitiesarrow-up-right for more details.

Last updated