Pular para o conteúdo
Skillpedia
Segurança48 mil · #3261

hunt-grpc

Ajuda seu agente a encontrar falhas de segurança em gRPC. É útil para proteger sistemas que usam essa tecnologia.

O que ela faz

Esta ferramenta ajuda a encontrar falhas de segurança em sistemas que usam gRPC, um tipo de comunicação entre programas de computador. Ela verifica se há configurações inseguras ou acessos não autorizados.

Quando usar

  • ✓Ao testar a segurança de um novo sistema que usa gRPC.
  • ✓Para verificar se serviços internos estão expostos indevidamente.
  • ✓Durante uma auditoria de segurança autorizada.

Exemplo do que pedir para a IA

“Verifique o servidor gRPC em [endereço IP ou URL] para vulnerabilidades de segurança.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-grpc/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-grpc/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta envia requisições específicas para o sistema gRPC e analisa as respostas. Ela procura por sinais de configuração incorreta ou falhas de autenticação.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill hunt-grpc

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-grpc/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

⚠️ USO AUTORIZADO APENAS Esta habilidade é apenas para fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.

Porta de confirmação obrigatória Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:

  1. Peça ao usuário para declarar o URL, IP, conta ou recurso exato do alvo.
  2. Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
  3. Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
  4. Aguarde a confirmação explícita na conversa atual.

Sem essa confirmação, permaneça apenas em modo de leitura e forneça orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.

HUNT-GRPC — Segurança gRPC

Alvos de Joias da Coroa

Reflexão gRPC habilitada = enumeração completa do catálogo de serviços sem código-fonte. Os bugs gRPC de maior valor vêm da suposição arquitetônica de que um serviço é "interno" — a autenticação é aplicada no proxy de borda e o backend confia em qualquer chamador que o alcance. Uma vez que você alcança o backend diretamente (porta exposta, SSRF, bypass de proxy), essa confiança desmorona.

Achados de maior valor:

  • Reflexão habilitada em produção — grpc.reflection.v1alpha.ServerReflection / grpc.reflection.v1.ServerReflection lista todos os métodos, mensagens e serviços internos. Habilitador de enumeração, não uma vulnerabilidade por si só (veja Validação).
  • Falta de autenticação em serviço interno — um serviço projetado para tráfego de microsserviços leste-oeste exposto externamente sem mTLS e sem autorização por método → chamar métodos privilegiados diretamente.
  • Apenas autenticação de borda / remoção de metadados — o proxy autentica o usuário, mas o backend confia novamente em cabeçalhos injetados pelo proxy (x-user-id, x-tenant-id, x-forwarded-*); se você alcançar o backend ou puder injetar esses cabeçalhos através do proxy, você se passará por qualquer inquilino.
  • gRPC em texto puro — gRPC h2c (HTTP/2 em texto claro) em uma porta não padrão → interceptação de credenciais/metadados.
  • HTTP/2 Rapid Reset DoS (CVE-2023-44487) — quadros HEADERS intercalados + RST_STREAM imediatos ignoram a contabilidade MAX_CONCURRENT_STREAMS → esgotamento de recursos. DoS está no escopo em quase nenhum programa — obtenha autorização explícita por escrito antes de enviar um único burst.

Fase 1 — Descoberta de Impressão Digital e Portas

# Common gRPC ports (50051 native; 443/8443 via TLS+ALPN h2; 9090/8080 h2c)
nmap -sV -p 50051,50052,443,9090,8080,8443,6565,9000 $TARGET 2>/dev/null | grep open

# ALPN must negotiate h2 — gRPC cannot run on HTTP/1.1
echo | openssl s_client -alpn h2 -connect $TARGET:443 2>/dev/null | grep -i "ALPN.*h2"

# Native-gRPC fingerprint: an HTTP/2 POST to a bogus method returns a grpc-status
# trailer (12 = UNIMPLEMENTED) even when the path is wrong — strong signal it's gRPC.
curl -s --http2-prior-knowledge -X POST "http://$TARGET:9090/x.Y/Z" \
  -H "content-type: application/grpc" -o /dev/null -D - | grep -i grpc-status

# TLS-fronted h2 (port 443): look for grpc-status trailer / grpc content-type
curl -s --http2 -X POST "https://$TARGET/grpc.health.v1.Health/Check" \
  -H "content-type: application/grpc-web+proto" -o /dev/null -D - | grep -i "grpc-status\|content-type"

grpc-status presente no trailer ⇒ um servidor gRPC (ou grpc-gateway/Envoy) está por trás dessa porta. UNIMPLEMENTED em um caminho aleatório é normal e apenas confirma o transporte — não é uma descoberta.


Fase 2 — Enumeração de Serviços via Reflexão

brew install grpcurl   # ou: go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest

# Listar serviços — -plaintext para h2c, -insecure para TLS autoassinado, plain para TLS válido
grpcurl -plaintext $TARGET:50051 list
grpcurl -insecure  $TARGET:443   list

# Saída típica quando a reflexão está ativada:
#   grpc.reflection.v1.ServerReflection
#   grpc.health.v1.Health
#   user.UserService
#   admin.AdminService
#   payment.PaymentService

# Listar + descrever cada método de cada serviço
grpcurl -plaintext $TARGET:50051 list admin.AdminService
grpcurl -plaintext $TARGET:50051 describe admin.AdminService.DeleteUser
grpcurl -plaintext $TARGET:50051 describe .admin.DeleteUserRequest   # esquema da mensagem

# Despejar todo o catálogo para triagem de superfícies interessantes
for SVC in $(grpcurl -plaintext $TARGET:50051 list); do
  echo "== $SVC =="; grpcurl -plaintext $TARGET:50051 list "$SVC"
done | tee grpc-catalog.txt

…
Perguntas frequentes

O que é gRPC?

gRPC é uma forma eficiente de programas de computador se comunicarem entre si, especialmente em ambientes de nuvem.

O que é 'Reflection Enabled'?

Significa que o sistema gRPC pode listar todos os seus serviços e métodos disponíveis, o que pode ser útil para um atacante se não for bem protegido.

Posso usar isso em qualquer sistema?

Não. O uso é restrito a fins educacionais ou testes de segurança com permissão explícita e por escrito do proprietário do sistema. O uso indevido é ilegal.

Detalhes

Descrição original do autor

Hunt gRPC vulnerabilities

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3261
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas