Hello Infosec Community!
This is the second part of the AXIOM series. In this post, I will discuss the main features of this amazing tool by using it in a real-world example. I will use Yahoo as a target as many people know, it does have a large scope so it will be an excellent example of how I could collect a large amount of data very quickly. Use my affiliate link for Digitalocean to get $200 in credit over 60 days as a start.
As I have mentioned in a previous post, I do not condone the use of this tool for unethical reasons. Please be professional and follow the program and cloud provider rules. Thank you in advance!
As already covered in Part 1 of the series, the images or snapshots will contain the security tools ready to be used once you try to spawn new instances.
You can quickly check the list of images by using the following command:
axiom-images ls
If you have multiple images, you could select one by using:
axiom-images use <image name>
To remove the image:
axiom-images rm <image name>
After the initial preparation, you are finally ready to start spawning the AXIOM instances:
As you can see from the help menu, if you want you can spin your instances in multiple regions and select the amount. For the sake of simplicity, I will spawn 5 instances without any other options with the name yahoo:
axiom-fleet yahoo -i 5
It will take some time initially, depending on how many instances you want to create. To check spawned instances on DO follow this link:
Remember, that there are limitations on your cloud provider. For example, on Digitalocean you can check your droplet limits here:
If you want to increase the limit of instances on cloud providers, you have to have a valid reason for it. I do recommend getting familiar with the tool for a couple of months, before asking for it.
Make sure not to forget remove running instances when not using it. It is not even inefficient, but also cost you money. To remove running instances:
axiom-rm "yahoo\*"
Important: DO NOT USE axiom-rm “\*” command if you have some other VPS running on your provider. It could delete it as well, trust me, I learned the hard way…
Now it’s time for the core functionality of the AXIOM tool — the axiom-scan feature. This command has many features to customize as you like. I will show 3 examples of how to utilize most of this functionality.
axiom-scan domains.txt -m amass --spinup 5 --shutdown-when-done | anew subdomains.txt
Tip: If possible try to avoid using --spinup and --shutdown-when-done flags, especially if you consider automating with a scheduler like cron. I’ve had some problems destroying the instances automatically, so be cautious. Check if those instances were destroyed on the cloud provider side from time to time. I usually do not use those two flags, this was just an example to show what functionality AXIOM has.
2. Bruteforcing the subdomains of a single target using puredns:
axiom-scan target-domain.txt -m puredns-bruteforce --max-runtime 30m -wD /path/to/your/local/wordlist/dns.txt
Tip: Sometimes the wordlist is very large and every time you use wordlist split and distribution across all the instances it will consume too much time. I do recommend having a snapshot of an instance with the selected wordlist already inside it.
3. Bruteforcing the subdomains of multiple targets using puredns:
axiom-scan domains.txt -m puredns-bruteforce -w /home/op/lists/seclists/Discovery/DNS/dns-Jhaddix.txt
Congrats you have successfully launched your first distributed scans of Axiom! Now you are probably wondering how you could navigate to your instances, execute custom commands, take a snapshot of them to use later, or upload your own custom wordlists and tools? Get ready, since I will be covering these features in the next part!
Subscribe to my page to not miss any upcoming stories. Also follow me on twitter, since I am planning to share some short insights, cool tricks and bypasses there as well.