Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cowcloud — Solução serverless AWS para distribuir cargas de trabalho de reconhecimento e varredura de vulnerabilidades. Envie tarefas pela interface web; workers EC2 executam scripts Python personalizados com ferramentas como Nmap. | Kitploit
Ferramentas/GitHubGitHub/nccgroup/cowcloud
Segurança de Infraestrutura em NuvemFrameworks de Testes de PenetraçãoScanners de VulnerabilidadesScripting e AutomaçãoColeta de InformaçõesSegurança na NuvemDevSecOpsUtilitários e Frameworks
GitHubnccgroup/cowcloud

cowcloud

Solução serverless AWS para distribuir cargas de trabalho de reconhecimento e varredura de vulnerabilidades. Envie tarefas pela interface web; workers EC2 executam scripts Python personalizados com ferramentas como Nmap.

60225há 3 anosRevisado pelo Kitploit
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CowCloud

uma solução serverless para distribuir cargas de trabalho na AWS

O CowCloud foi originalmente criado para executar ferramentas de reconhecimento (recon) e varreduras de vulnerabilidades de forma distribuída; por exemplo, um caso de uso pode ser por caçadores de bug bounty. Esta solução tem como objetivo abstrair os usuários finais do trabalho subjacente necessário para distribuir cargas de trabalho na AWS. O CowCloud fornece aos usuários uma interface web amigável para visualizar e criar novas tarefas que, posteriormente, são consumidas por código Python executado nos nós de trabalho (instâncias EC2). A intenção é que o código Python seja personalizado, bem como as AMIs EC2. Como exemplo, digamos que você queira executar varreduras Nmap. Nesse caso, você pode simplesmente escolher uma AMI do Catálogo de AMIs e atualizar o campo image_id em Terraform/ec2_module/ec2_module.tf. Em seguida, o arquivo ec2py/template.py teria que ser atualizado para personalizar os argumentos da varredura Nmap (-Pn, -p 443, etc). Por fim, o campo user_data no arquivo de configuração Terraform/ec2_module/ec2_module.tf teria que ser atualizado para instalar o Nmap e suas dependências.

Outra opção é instalar e executar várias ferramentas comerciais; nesse caso, talvez você queira criar sua própria instância EC2 ou snapshot. Nesse caso, você instalaria todas as dependências e ativaria as licenças para poder usar essa AMI como gold image para seus workers

Captura de tela

O CowCloud pode ser dividido em três componentes principais:

  • uma configuração do Terraform
  • um front-end em React JS
  • um aplicativo Python que é executado nos nós de trabalho

Estas são as principais funcionalidades:

  • A solução usa o Amazon Cognito (com um user pool) para que os usuários possam se cadastrar e entrar no webapp
  • Aplicativo React JS como o aplicativo front-end. O front-end exibe as tarefas e os workers e permite adicionar novas tarefas
  • API Gateway com integração Lambda para lidar com o CORS e interagir com algumas das funções Lambda para criar e obter informações do DynamoDB
  • CloudFront para gerenciamento de SSL e cache
  • WAF com regras e condições de endereços IP para restringir o acesso ao webapp (opcional)
  • Buckets S3 para armazenar os resultados da execução e o aplicativo front-end; um bucket S3 separado é usado como repositório de código para o aplicativo Python
  • Um aplicativo Python como núcleo para executar tarefas nas instâncias EC2 (workers), as ações da ferramenta podem ser divididas em várias etapas:
    • O aplicativo Python consome mensagens
    • executa varreduras
    • compacta a saída
    • e criptografa a saída com AES256-CBC e uma senha
    • e envia o resultado para um bucket S3
  • Sempre que um novo worker é criado, o repositório Python é obtido (pulled) de um bucket S3 e, em seguida, o arquivo ec2py incluído nele é executado
  • Sempre que um novo worker é criado, um EIP pode ser atribuído automaticamente à instância (opcional)
  • Grupos de logs do CloudWatch para armazenar os logs de várias fontes, como erros do Lambda, exceções que ocorrem na ferramenta Python ec2app, o API Gateway, logs do Docker e muito mais
  • Lifecycle hooks para alterar o status dos workers no DynamoDB e impedir que os workers sejam encerrados enquanto uma tarefa ainda estiver em execução
  • Estratégia de autoscaling baseada no número de tarefas na fila e na configuração definida (mais informações sobre como o algoritmo funciona podem ser encontradas em autoscalingStrategy.py)
  • Mapeamento de fonte de eventos do Lambda vinculado à tabela de tarefas no DynamoDB, para gerenciar as ações de autoscaling quando os itens no banco de dados aumentam ou diminuem
  • SNS para enviar novas mensagens (tarefas) para um SQS; essas mensagens são posteriormente lidas pelos nós de trabalho
  • O serviço Step Functions é usado para criar uma contagem regressiva e excluir os grupos de logs do CloudWatch após a expiração de retention_time
  • Se o ec2py executar ferramentas (ex.: Nmap) dentro de contêineres Docker, o stdout pode ser registrado no CloudWatch e visualizado pelo front-end; confira a variável extra_docker_params no arquivo template.py (isso é explicado na seção Administrador/mantenedor abaixo)
  • O front-end fornece um botão para interromper tarefas durante sua execução e outro botão para visualizar os logs dos contêineres Docker
  • Se você quiser alterar algo no código do front-end ou nas pastas ec2py, precisará propagar essas alterações para os buckets S3 e invalidar o cache do front-end; você pode fazer tudo isso simplesmente executando o setup.bat/sh

Diagrama:

Descontinuado

As seguintes opções estão disponíveis na configuração do Terraform:

variávelvalor padrãodescrição
eipenablefalseSe true, a solução aloca um pool de endereços IP elásticos associados aos nós de trabalho à medida que são criados. O número de EIPs a reservar é calculado usando esta fórmulasum([var.max_workers, var.maximum_number_of_terminating_machines])
cidr_whitelist[]A whitelist de CIDR para permitir apenas determinados intervalos de IP no firewall. Ex.: ["195.95.131.0/24"]
max_workers and max_queued_tasks_per_workermax_workers: 3, max_queued_tasks_per_worker: 10Essas duas configurações determinam quando escalar para dentro (scale in) ou para fora (scale out), ex.: max_workers 3, max_queued_tasks_per_worker 10. Isso significa que, se o número de tarefas ultrapassar dez, uma nova instância EC2 será criada. Se houver mais de vinte tarefas, um máximo de três instâncias EC2 estará disponível para distribuir as cargas de trabalho (confira o algoritmo presente neste script Terraform/dynamodb_module/autoscalingTool/autoscalingStrategy.py).
maximum_number_of_terminating_machines2Isso define o número de instâncias que estão definidas para encerramento, mas ficam em espera até que o processo/varredura conclua a tarefa.
heartbeat_timeout900Isso define o tempo que esses workers ficam em espera. Após o término desse tempo, o worker será encerrado à força.
instance_typet2.microhttps://aws.amazon.com/ec2/instance-types/
aminullhttps://aws.amazon.com/es/amazon-linux-ami/
retention_time7Define o tempo de retenção (em dias) para os logs e a expiração dos itens da tabela de arquivo (tarefas concluídas).

Como resultado da execução do Terraform, um novo arquivo é criado (config.js);, que contém a configuração necessária para o aplicativo React JS autenticar no diretório do user pool do Cognito. Depois que a infraestrutura for implantada, você precisa compilar o aplicativo React e enviar a pasta build. Além disso, você precisa enviar o código Python para um bucket S3 que atua como repositório de código. Esse processo foi automatizado em dois scripts setup.bat e setup.sh para que você não precise se preocupar com isso; isso é apenas para resumir esta etapa.


Etapas de instalação:

A infraestrutura é implantada na região us-east-1 por padrão, embora isso possa ser alterado no arquivo locals.tf dentro da pasta Terraform.

Baixar ferramenta