๐ ๏ธ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
--deployoption 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