ShadowClone: delegate time-consuming tasks to the cloud
ShadowClone is designed to delegate time-consuming tasks to the cloud by distributing the input data to multiple serverless functions (AWS Lambda, Azure Functions, etc.) and running the tasks in parallel resulting in a huge performance boost!
ShadowClone uses IBM’s awesome Lithops library to distribute the workloads to serverless functions which are at the core of this tool. Effectively, it is a proof-of-concept script showcasing the power of cloud computing for performing our regular pentesting tasks.
- DNS Bruteforce using a very large wordlist within seconds
- Fuzz through a huge wordlist using ffuf on a single host
- Fuzz a list of URLs on a single path all from different IP addresses
- Port scan thousands of IPs in seconds
- Run a nuclei template on a list of hosts
How it works
We create a container image during the initial setup and register it as a runtime for our function in AWS/GCP/Azure whatever. When you execute ShadowClone on your computer, instances of that container are activated automatically and are only active for the duration of its execution. How many instances to activate is dynamically decided at runtime depending on the size of the input file provided and the split factor. The input is then split into chunks and equally distributed between all the instances to execute in parallel. For example, if your input file has 10,000 lines and you set the split factor to 100 lines, then it will be split into 100 chunks of 100 lines each, and 100 instances will be run in parallel!
- Extremely fast
- No need to maintain a VPS (or a fleet of it :))
- Costs almost nothing per month
- Compatible with free tiers of most cloud services
- Cloud agnostic
- The same script works with AWS, GCP, Azure, etc.
- Supports up to 1000 parallel invocations
- Dynamically decide the number of invocations
- Run any tool in parallel on the cloud
- Pipe output to other tools
|Cost||Per instance/per minute||Mostly Free**|
|Startup Time||4-5 minutes||2-3 seconds|
|Max Execution Time||Unlimited||15 minutes|
|On Demand Scalability||No||∞|
* Most cloud providers do not allow spinning up too many instances by default, so you are limited to around 10-15 instances at max. You have to make a request to the support to increase this number.
** AWS & Azure allow 1 million invocations per month for free. Google allows 2 million invocations per month for free. You will be charged only if you go above these limits
Copyright (C) 2022 fyoorer