๐Ÿ› ๏ธAx Utility Scripts

Utility scripts to help you interact with axiom instances!

ax

A wrapper for various axiom scripts in ~/.axiom/interact

Description:
  Welcome to the Ax Framework! You can use this wrapper to execute the various axiom scripts (located in ~/.axiom/interact/)
  To supply additional arguments to a script, simply append them to the command
  For more options, print the help menu for any script (ax init, ax fleet, ax scan, ax images, etc)
  Or you could just run the scripts without the wrapper (axiom-exec for example)
Examples:
  ax configure --setup --shell zsh --unattended  # Kick off axiom configuration wizard, add axiom to zsh path, avoid any prompts
  ax account-setup  # Kick off axiom account setup wizard
  ax account linode  # Switch to linode account (must be a valid axiom.json in ~/.axiom/accounts)
  ax build default # Build the Packer image with the Default provisioner located in ~/.axiom/images/provisioners/default.json
  
  ax init --run # Create axiom instance with random instane name
  ax fleet -i 10 -r nyc1,nyc3,fra1,sfo2 # Spin up 10 instances with random fleet prefix using Round-robin region distribution
  ax ls # List all instances on the account
  ax ssh testy01 # SSH into instance testy01
  ax select testy\* # Select all instances in testy fleet (this updates ~/.axiom/selected.conf)
  ax scp custom-wordlist.txt 'myfleet*':/home/op/custom-wordlist.txt --split # Split and upload local wordlist to all instances in myfleet
  ax scan input.txt -m nuclei --nuclei-templates /home/localuser/custom-templates/ -o outputfile.txt # Run a distributed scan, upload custom nuclei templates
  ax rm testy\* # Delete all instances in testy fleet
  ax rm '\*' # Delete all instances on the account
  
  ax images ls  # List all images on the account
  ax images create # Create a new image/snapshot of a running axiom instance
  ax images select axiom-testy01-1710180715 # Select image named axiom-testy01-1710180715 to use for future ax init and ax fleet
  
  ax sizes ls  # List all available sizes (cpu and ram) to use for instances
  ax sizes select s-4vcpu-8gb # Select new default instance size to use for future axiom-init/axiom-fleet
  
  ax power on rez\* # Power on all instances in fleet 'rez'
  ax region ls  # List available regions
  ax region select nyc1 # Select region 'nyc1' (this updates ~/axiom.json with the new region)
Usage:
  account
   Select Axiom account (axiom-account)
  account-setup
   Start Axiom account setup wizard (axiom-account-setup)
  build
   Start Axiom build wizard (axiom-build)
  configure
   Display commands to manage the configuration of axiom (axiom-configure), install dependencies, kick off axiom-account-setup and axiom-build 
  deploy
   Deploy a profile stored in ~/.axiom/profiles/ (axiom-deploy)
  exec
   Evaluate shell one-liners or execute single commands on one or more instances in parallel (axiom-exec)
  fleet
   Display commands to manage fleets (axiom-fleet)
  images
   Create a new snapshot of a running axiom instance, select the new snapshot to deploy future axiom instances/fleets, get and delete images (axiom-images)
  init
   Display commands to manage initializing one axiom instance with differnet options, such as image, region, size and axiom deployment profiles (axiom-init)
  ls
   List all instances on the account (axiom-ls)
  power
   Display commands to manage powering on or off instances by name (axiom-power)
  region
   Display commands to list regions or select a region (axiom-region)
  rm
   Remove instances from the account (axiom-rm)
  scan 
   Display commands to manange the distribution of arbitrary binaries and scripts across fleets of Axiom instances (axiom-scan)
  scp
   Display commands used to upload and download files from fleets (axiom-scp)
  select
   Select instances to use for exec and fleet (axiom-select)
  sizes
   Manage the default instance size used by axiom-init or axiom-fleet (axiom-sizes)
  ssh
   Display commands to manage Axiom's ssh config file or connect to a specific Axiom instance (axiom-ssh)
  sync
   Make a copy of an instances home directoy and sync to your local filesystem (axiom-sync)
  update
   Run 'cd ~/.axiom && git pull' to update to the latest version! (axiom-update)
  <additional args>
   To pass additional arguments to the script, simply append them to the command!

ax configure

Setup and configure the axiom controller and validate cloud account ๐Ÿ’ป

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.

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

  • ReconFTW provisioner includes all tools in ReconFTW and works with most modules. Recommended for ReconFTW.

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

  • Extras has more tools installed than our Default provisioner

To use your own Provisioner, read Bring Your Own Provisioner.

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

Connect to an instance ๐Ÿ”—


ax sizes

Change the default size (CPU/RAM) to use when creating instances and fleets ๐Ÿ“ˆ

ax sync

Make a copy of an instances home directory ๐Ÿงณ

This allows you to download a copy of everything in an axiom instance to the local filesystem


ax power

Power on, off and reboot instances and fleets with axiom-power. ๐Ÿ”Œ


ax ls

List all instances on the account


ax rm

Remove one or more axiom instances โŒ


ax region

Switch to a new region ๐Ÿงญ


ax account-setup

Choose your cloud provider and setup your ax profile (~./axiom/accounts/$profile.json)


ax account

Manage user accounts ๐Ÿ“›


ax scp

Copy files to and from instances. Optionally, split a file and distribute to all hosts. โคด๏ธ

Copy a remote file from all instances in myfleet to local file. '$name' must be wrapped single quotes. '$name' is a required literal string and gets interpolated from the instance name.

Copy a remote folder from all instances in myfleet to local folder. '$name' must be wrapped single quotes. '$name' is a required literal string and gets interpolated from the instance name.

Copy a remote file from one instance 'myfleet05' to a local file

Copy a local file to all instances in myfleet, for example uploading a custom wordlist

Copy a local folder to all instances in myfleet, for example uploading a folder of custom nuclei templates

Split and upload local wordlist to all instances in myfleet


ax select

Select what instances to use for exec, scp and fleet


ax deploy

Deploy a profile ๐Ÿฆพ

All profiles can be found in ~/.axiom/profiles

Last updated