
Framework de distribuição de tarefas serverless que paraleliza ferramentas CLI em milhares de funções de nuvem para reconhecimento rápido e processamento de dados.
ShadowClone permite que você distribua dinamicamente suas tarefas de longa duração por milhares de funções serverless e obtenha os resultados em segundos, onde normalmente levaria horas para concluir.
Você pode aproveitar ao máximo os níveis gratuitos oferecidos pelos provedores de nuvem e turbinar suas ferramentas de linha de comando mundanas com o jutsu clone das sombras (estilo Naruto)!
Por favor, visite a wiki para instruções de instalação e configuração inicial.
⚡ python shadowclone.py -h
usage: shadowclone.py [-h] -i INPUT [-s SPLITNUM] [-o OUTPUT] -c COMMAND
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
-s SPLITNUM, --split SPLITNUM
Number of lines per chunk of file
-o OUTPUT, --output OUTPUT
-c COMMAND, --command COMMAND
command to execute
--no-split NOSPLIT File to be used without splitting
Criamos uma imagem de contêiner durante a configuração inicial e a registramos como um tempo de execução para nossa função na AWS/GCP/Azure, etc. Quando você executa o ShadowClone no seu computador, instâncias desse contêiner são ativadas automaticamente e ficam ativas apenas durante a execução. Quantas instâncias ativar é decidido dinamicamente em tempo de execução dependendo do tamanho do arquivo de entrada fornecido e do fator de divisão. A entrada é então dividida em partes e distribuída igualmente entre todas as instâncias para executar em paralelo. Por exemplo, se o seu arquivo de entrada tiver 10.000 linhas e você definir o fator de divisão para 100 linhas, ele será dividido em 100 partes de 100 linhas cada e 100 instâncias serão executadas em paralelo!
Esta ferramenta foi inspirada pelos incríveis projetos Axiom e Fleex e vai além do conceito de VPS para executar ferramentas usando funções serverless e contêineres.
*A maioria dos provedores de nuvem não permite criar muitas instâncias por padrão, então você está limitado a cerca de 10-15 instâncias no máximo. Você precisa fazer uma solicitação ao suporte para aumentar esse número.
** AWS e Azure permitem 1 milhão de invocações por mês gratuitamente. O Google permite 2 milhões de invocações por mês gratuitamente. Você será cobrado apenas se ultrapassar esses limites
Força bruta de DNS usando um arquivo de 43mb - 34 segundos
Executando httpx em 94K subdomínios em 1 minuto
Obviamente, você pode fazer qualquer número de invocações por mês. A tabela acima mostra apenas quantas invocações são gratuitas.
Se você gosta do ShadowClone e gostaria de mostrar algum apreço, envie-me os bugs que encontrar usando esta ferramenta ;)
Ou você pode me comprar um café :)
Esta ferramenta foi projetada como uma implementação de prova de conceito e seu uso é destinado apenas para fins educacionais. Usá-la para atacar alvos sem consentimento mútuo prévio é ilegal. É responsabilidade do usuário final obedecer todas as leis locais, estaduais e federais aplicáveis. Os desenvolvedores não assumem nenhuma responsabilidade e não são responsáveis por qualquer uso indevido ou dano causado por este programa.
| Características | Axiom/Fleex | ShadowClone |
|---|
| Instâncias | 10-100s* | 1000s |
| Custo | Por instância/por minuto | Quase gratuito** |
| Tempo de inicialização | 4-5 minutos | 2-3 segundos |
| Tempo máximo de execução | Ilimitado | 15 minutos |
| Custo inativo | $++ | Gratuito |
| Escalabilidade sob demanda | Não | ∞ |
| Provedor de nuvem | Limite gratuito | Link |
|---|
| Google Functions | 2 milhões de invocações, 400.000 GB-segundos por mês | Google Cloud Free Program |
| AWS Lambda | 1 milhão de invocações, até 3,2 milhões de segundos de tempo de computação por mês | Free Cloud Computing Services - AWS Free Tier |
| Azure Functions | 1 milhão de invocações | Microsoft Azure Free Services |