Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
PoW-Shield — Projeto dedicado a combater DDoS na camada 7 com prova de trabalho, com um WAF e controlador adicionais. Completo com conjunto completo de funcionalidades e containerizado para implantação rápida e leve. | Kitploit
Ferramentas/GitHubGitHub/ruisiang/pow-shield
Segurança Web
GitHubruisiang/pow-shield

PoW-Shield

Projeto dedicado a combater DDoS na camada 7 com prova de trabalho, com um WAF e controlador adicionais. Completo com conjunto completo de funcionalidades e containerizado para implantação rápida e leve.

Ver RepositórioSite
40874há 1 anoRevisado pelo Kitploit

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
Escudo PoW

Descrição

O PoW Shield fornece proteção contra DDoS na camada de aplicação OSI atuando como um proxy que utiliza prova de trabalho entre o serviço de backend e o utilizador final. Este projeto visa oferecer uma alternativa aos métodos gerais anti-DDoS, como o ReCaptcha do Google, que sempre foi um incómodo de resolver. Aceder a um serviço web protegido pelo PoW Shield nunca foi tão fácil, basta ir ao URL e o seu navegador fará o resto da verificação automaticamente.

O PoW Shield pretende fornecer os seguintes serviços agrupados numa única aplicação web / imagem docker:

  • autenticação por prova de trabalho
  • limitação de taxa e lista negra de IP
  • firewall de aplicação web

(Novo) Artigo no LinkedIn

Apresentado no Pentester Academy TV

Artigo no Medium

Funcionalidades

  • Estrutura de Serviço Web
  • Funcionalidade de Proxy
  • Implementação de PoW
  • Dockerização
  • Lista Negra de IP
  • Limitação de Taxa
  • Testes Unitários
  • Implementação de WAF
  • Sincronização Multi-Instância (Redis)
  • Suporte SSL

Suportado através do controlador PoW Phalanx:

  • Gestão Multi-Instância
  • Tokens de lista branca
  • Sincronização de lista negra de IP
  • Controlo dinâmico de dificuldade
  • Painel de controlo

Implementação alternativa em Go PoW-Shield-Go (WIP) para fins de teste de stress e futura versão de produção otimizada.

Como Funciona

Basicamente, o PoW Shield funciona como um proxy à frente da aplicação/serviço web real. Ele realiza a verificação através de prova de trabalho e apenas encaminha o tráfego autorizado para o servidor real. O proxy é facilmente instalável e é capaz de proteger aplicações de baixa segurança com uma WAF.

Aqui está o que acontece nos bastidores quando um utilizador navega num serviço web protegido pelo PoW Shield:

  1. O servidor gera um "prefixo" aleatório codificado em hexadecimal e envia-o juntamente com a página do PoW Shield para o cliente.
  2. O JavaScript do lado do cliente tenta então calcular por força bruta um "nonce" que, quando anexado ao prefixo, produza um hash SHA256 com um número de bits zero à esquerda superior à "dificuldade" D especificada pelo servidor. Ou seja, SHA256(prefixo + nonce)=0…0xxxx (binário, com mais de D zeros à esquerda)
  3. O JavaScript do lado do cliente envia então o nonce calculado ao servidor para verificação; se a verificação for aprovada, o servidor gera um cookie para o cliente passar na autenticação.
  4. O servidor começa a encaminhar o tráfego agora autenticado para o servidor com a filtragem WAF ativada.

Configuração

Pode configurar o PoW Shield através dos seguintes métodos.

  • nodejs: .env (exemplo: .env.example)
  • docker-compose: docker-compose.yaml (exemplo: docker-compose.example.yaml)
  • docker run: parâmetro -e

Variáveis de Ambiente

Utilização

Nodejs

Pré-requisitos

  • Docker ^19.0.0
  • Nodejs ^14.0.0
root@kitploit:~
# Clone repository
git clone https://github.com/RuiSiang/PoW-Shield.git

# Install dependencies
npm install

# Configure settings
cp -n .env.example .env
# Edit .env
nano .env

# Transpile
npm run build

#############################################
# Run with db (redis), recommended & faster #
# install redis first                       #
# sudo apt-get install redis-server         #
#############################################
npm start
#############################################

#############################################
#        Run without db (mock redis)        #
#############################################
npm run start:standalone # linux
npm run start:standalone-win # windows
#############################################

# Test functionalities(optional)
npm test

Docker (repositório)

root@kitploit:~
####################################################
# Docker run with db (redis), recommended & faster #
####################################################
docker run -p 3000:3000 -e BACKEND_URL="http://example.com" -d ruisiang/pow-shield
####################################################

####################################################
#        Docker run without db (mock redis)        #
####################################################
docker run -p 3000:3000 -e BACKEND_URL="http://example.com" -e NODE_ENV="standalone" -d ruisiang/pow-shield
####################################################

####################################################
#                  Docker Compose                  #
####################################################
# Copy docker-compose.example.yaml
cp -n docker-compose.example.yaml docker-compose.yaml
# Edit docker-compose.yaml
nano docker-compose.yaml

# Start the container
docker-compose -f docker-compose.yaml up
####################################################

Teste de Stress

Nota: Isto só funciona na versão não contentorizada do PoW Shield, e o seu sistema poderá sofrer instabilidade durante a execução do teste.

root@kitploit:~
# Start the stress test
npm run stress

# If you changed the PORT variable in .env, you should also change the target variable in the stress test script
nano scripts/stress.sh

Os seguintes testes são realizados num único thread de uma CPU i7-10870H com um período de 60 segundos para cada parâmetro de concorrência.

GET em Massa

Inundação de Nonce

Pela amostra acima, podemos ver que a estimativa de carga máxima adequada para o PoW Shield é de cerca de 512 conexões concorrentes. As taxas de erro e latências deterioram-se para além da aceitação normal depois disso. Portanto, num ambiente com balanceamento de carga na máquina (1 instância do PoW Shield em cada um dos seus 8 núcleos), deverá ser capaz de lidar com um máximo de aproximadamente 4096 conexões concorrentes (clientes) a uma taxa total de pedidos de 32k pedidos/segundo.

Referências

  • Prova de trabalho por Fedor Indutny (funções utilitárias de PoW)
  • Shadowd por Zesecure (regras WAF)

Licença

MIT

Baixar ferramenta
VariávelTipoPadrãoDescrição
PORTGeral3000porta em que o PoW Shield escuta
SESSION_KEYGeralchave secreta para assinaturas de cookies, use uma única por razões de segurança, caso contrário qualquer pessoa pode forjar os seus cookies assinados
BACKEND_URLGerallocalização para encaminhar tráfego autenticado, aceita IP e URLs (aceita protocolo://url(:porta) ou protocolo://ip(:porta))
DATABASE_HOSTRedis127.0.0.1host do serviço redis
DATABASE_PORTRedis6379porta do serviço redis
DATABASE_PASSWORDRedisnullpalavra-passe do serviço redis
POWPoWonativa/desativa a funcionalidade PoW (se não for temporariamente desligada, porque usar este projeto?)
NONCE_VALIDITYPoW60000especifica o tempo máximo em segundos que um nonce pode ser submetido ao servidor após a geração (usado para forçar alteração de dificuldade e filtrar nonces obsoletos)
DIFFICULTYPoW13dificuldade do problema, número de bits zero à esquerda no hash produzido (0:extremamente fácil ~ 256:impossível, 13(padrão) leva cerca de 5 segundos para o navegador calcular)
RATE_LIMITLimite de Taxaonativa/desativa a funcionalidade de limite de taxa
RATE_LIMIT_SAMPLE_MINUTESLimite de Taxa60especifica quantos minutos até as estatísticas serem reiniciadas para sessão/IP
RATE_LIMIT_SESSION_THRESHOLDLimite de Taxa100número de pedidos que uma única sessão pode fazer até desencadear a revogação do token
RATE_LIMIT_BAN_IPLimite de Taxaonativa/desativa a funcionalidade de banimento de IP
RATE_LIMIT_IP_THRESHOLDLimite de Taxa500número de pedidos que uma única sessão pode fazer até desencadear o banimento do IP
RATE_LIMIT_BAN_MINUTESLimite de Taxa15número de minutos que o banimento do IP persiste
WAFWAFonativa/desativa a funcionalidade WAF
WAF_URL_EXCLUDE_RULESWAFregras a excluir ao verificar o URL do pedido, use ',' para separar números de regras, use '-' para especificar um intervalo (ex: 1,2-4,5,7-10)
WAF_HEADER_EXCLUDE_RULESWAF14,33,80,96,100regras a excluir ao verificar o cabeçalho do pedido, use ',' para separar números de regras, use '-' para especificar um intervalo (ex: 1,2-4,5,7-10)
WAF_BODY_EXCLUDE_RULESWAFregras a excluir ao verificar o corpo do pedido, use ',' para separar números de regras, use '-' para especificar um intervalo (ex: 1,2-4,5,7-10)
SSLSSLoffativa/desativa a funcionalidade SSL
SSL_CERT_PATHSSLtests/ssl/mock-cert.pemcaminho para a palavra-passe do certificado SSL
SSL_KEY_PATHSSLtests/ssl/mock-key.pemcaminho para a chave SSL
SOCKETSocketoffativa/desativa a funcionalidade socket
SOCKET_URLSocketlocalização do controlador PoW Phalanx, aceita IP e URLs (aceita protocolo://url:porta ou protocolo://ip:porta)
SOCKET_TOKENSockettoken de subscrição para o controlador PoW Phalanx
Conexões ConcorrentesLatência MédiaTaxa de ErroRequisições/Segundo
6415.3ms0.00004188
12830.2ms0.00004229
25660.4ms0.00004235
512122.6ms0.01424166
1024261.7ms0.17663894
20481966.5ms0.49791027
40964685ms0.7179838
Conexões ConcorrentesLatência MédiaTaxa de ErroRequisições/Segundo
6415.6msN/A4094
12831.5msN/A4058
25661.5msN/A4159
512129.5msN/A3945
1024264.4msN/A3858
2048592.1msN/A3407
40961212.6msN/A3322