Swarm is an open source modular distributed penetration testing Tool that use distributed task queue to implement communication in the master-slave mode system. It consists of a distributed framework and function modules. The function module can be an entirely new implement of some penetration functions or it can be a simple wrap of an existing tool to implement distributed functionality. Because of the modularity architecture it is easy to customize and extend new features under the distributed framework.
Now in this version 0.2.0 it only has two modules:
+ Subdomain name scan module
+ Directories and files scan module
Modules development document:
If you want to write your own module for swarm, you should follow these regulations to ensure your module can works as expect.
Your module should consist of a python package put in ./modules/ and a configuration file put in ./etc/. These two parts should have the same name. In the python package,
there should be at a python file which is eponymous with package and it should contains functions add_cli_args, parse_conf, and classes Master, Slave. The detailed description
can be find in the following template.
git clone https://github.com/Arvin-X/swarm && cd swarm
python swarm-s.py -p 9090
You can also establish a listener on target port of slave host to receive command to waken swarm-s by specify '--waken' option when you run swarm.py. Otherwise you should leave '--waken' null. To create a listener, you can use nc or socat like:
nc -e /bin/sh -l 9090
And use waken command like:
python /root/swarm/swarm-s.py ARGS