hunt-shadow-api
Ajuda seu agente a encontrar APIs escondidas ou não documentadas. Isso é útil para garantir que não haja pontos de entrada inseguros em um sistema.
O que ela faz
Esta ferramenta ajuda a encontrar versões antigas ou escondidas de APIs (interfaces de programação de aplicativos) que ainda podem estar ativas. Ela procura por 'APIs fantasmas' que não deveriam mais existir ou que não recebem atualizações de segurança.
Quando usar
- ✓Quando você suspeita que existem versões antigas de uma API ainda funcionando.
- ✓Ao analisar aplicativos móveis que podem se conectar a versões mais antigas de APIs.
- ✓Se você encontrar múltiplos arquivos de documentação de API (como Swagger/OpenAPI) que parecem diferentes.
Exemplo do que pedir para a IA
“Procure por versões antigas e não documentadas da API no site example.com”
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
Mensagem pronta para colar
Como funciona
A ferramenta verifica diferentes caminhos de URL, cabeçalhos e subdomínios para encontrar APIs. Depois, ela compara as especificações de APIs antigas com as atuais para identificar diferenças e possíveis vulnerabilidades.
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-shadow-apiOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-shadow-api/SKILL.md -o SKILL.mdConteú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.
Portão de confirmação obrigatório Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:
- Peça ao usuário para declarar o URL exato, IP, conta ou recurso alvo.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- Aguarde a confirmação explícita na conversa atual.
Sem essa confirmação, permaneça somente leitura e forneça apenas orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.
OWASP API9 — Gerenciamento Incorreto de Inventário (APIs Sombra / Zumbis)
À medida que uma API evolui, versões antigas e rotas internas/de staging frequentemente permanecem acessíveis sem receber as mesmas correções de segurança que a versão atual — porque ninguém rastreia que elas ainda existem. O bug raramente está em um endpoint; está na diferença entre o que uma versão antiga impõe e o que a versão atual impõe na mesma operação.
Quando usar
Acione quando:
- Caminhos versionados são visíveis (
/v1/,/v2/,/api/2023-01-01/) ou cabeçalhosAccept/X-API-Versionestão em jogo. - Um changelog, notas de lançamento ou aviso de depreciação referenciam comportamento de API removido/antigo.
- Um APK/IPA móvel (via
apk-redteam-pipeline/ios-redteam-pipeline) codifica endpoints que parecem uma versão de backend mais antiga do que a que o aplicativo web atual chama. - Múltiplas especificações OpenAPI/Swagger são descobertas, ou
info.versionem uma especificação implica que outras existem.
NÃO use para APIs de versão única sem histórico de versões — não há nada para comparar; vá
diretamente para hunt-api-misconfig para exploração direta da única superfície que existe.
Estágio 1 — Enumerar a Superfície Completa de Versões
# Path-based versioning
for v in v1 v2 v3 v4 beta alpha internal legacy old 2022-01-01 2023-01-01 2024-01-01; do
curl -s -o /dev/null -w "%{http_code} /api/$v/\n" "https://$TARGET/api/$v/"
done
# Header-based versioning
curl -s -H "X-API-Version: 1" https://$TARGET/api/users
curl -s -H "Accept: application/vnd.company.v1+json" https://$TARGET/api/users
# Subdomain-based versioning
for sub in api api-v1 api-v2 apiv1 apiv2 legacy-api old-api internal-api staging-api; do
curl -s -o /dev/null -w "%{http_code} $sub\n" "https://$sub.$TARGET/"
done
Um 200/401/403 em um caminho de versão antigo (qualquer coisa exceto 404/connection-refused) significa que
a versão ainda está ativa e vale a pena levá-la para o Estágio 3, mesmo que exija autenticação.
Estágio 2 — Obter Todas as Especificações Acessíveis, Não Apenas a Vinculada
for path in openapi.json swagger.json v1/swagger.json v2/swagger.json v3/api-docs \
api-docs.json swagger/v1/swagger.json .well-known/openapi.json; do
curl -s -o /dev/null -w "%{http_code} /$path\n" "https://$TARGET/$path"
done
# Wayback Machine — a DEPRECATED version's spec often stays indexed after the live link is removed
curl -s "http://web.archive.org/cdx/search/cdx?url=$TARGET/*swagger*&output=json&collapse=urlkey"
curl -s "http://web.archive.org/cdx/search/cdx?url=$TARGET/*openapi*&output=json&collapse=urlkey"
Quando mais de uma especificação é resolvida (uma atual e uma arquivada/antiga), compare os inventários de endpoints diretamente:
jq -r '.paths | keys[]' v1-swagger.json | sort > /tmp/v1_paths.txt
jq -r '.paths | keys[]' v2-swagger.json | sort > /tmp/v2_paths.txt
comm -23 /tmp/v1_paths.txt /tmp/v2_paths.txt # in v1 only — candidates for "still live but forgotten"
Para cada caminho nessa diferença, confirme se ele ainda é acessível contra o URL base v1. Uma rota
documentada apenas na especificação antiga que ainda retorna algo diferente de 404 é um candidato a endpoint zumbi — leve-o para o Estágio 3.
Estágio 3 — Comparação Comportamental Entre Versão Antiga e Atual
Para cada operação que existe em ambas as versões, compare o comportamento relevante para segurança, não a forma da resposta. Diferenças na forma da resposta são Informacionais; regressões de segurança comportamentais são a descoberta.
- Força da autenticação. A versão antiga aceita nenhum token, um token expirado ou um token de menor
privilégio que a versão atual rejeita?
…
Perguntas frequentes
O que é uma 'API fantasma'?
É uma API que não deveria mais estar em uso ou acessível, mas que ainda responde a requisições. Geralmente, não recebe mais atualizações de segurança.
Por que encontrar versões antigas de API é importante?
Versões antigas podem ter falhas de segurança que foram corrigidas nas versões mais novas. Se elas ainda estiverem ativas, podem ser um ponto de entrada para ataques.
Preciso de permissão para usar esta ferramenta?
Sim, esta ferramenta só deve ser usada em sistemas para os quais você tem permissão explícita e por escrito. O uso não autorizado é ilegal.
Detalhes
Descrição original do autor
Hunt shadow / zombie / undocumented API surface (OWASP API9 Improper Inventory Management)
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3285
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC