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
metabadger — Previna ataques SSRF no AWS EC2 por meio de atualizações automatizadas para o mais seguro Instance Metadata Service v2 (IMDSv2). | Kitploit
Ferramentas/GitHubGitHub/salesforce/metabadger
Segurança de Infraestrutura em NuvemFerramentas DefensivasAnálise de VulnerabilidadesAuditoria de ConfiguraçãoSegurança na NuvemConfiguração IncorretaArchived
GitHubsalesforce/metabadger

metabadger

Previna ataques SSRF no AWS EC2 por meio de atualizações automatizadas para o mais seguro Instance Metadata Service v2 (IMDSv2).

Ver Repositório
14312há 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

Metabadger

Previna ataques SSRF no AWS EC2 por meio de atualizações automatizadas para o Serviço de Metadados de Instância v2 (IMDSv2) mais seguro.

continuous-integration Downloads Twitter

Metabadger

Finalidade e funcionalidade

  • Diagnosticar e avaliar seu uso atual do AWS Instance Metadata Service, bem como entender como o serviço funciona
  • Prepará-lo para atualizar para a versão 2 do Instance Metadata Service, protegendo contra vetores de ataque da v1
  • Dar a você a capacidade de atualizar especificamente suas instâncias para usar apenas IMDSv2
  • Dar a você a capacidade de desabilitar o Instance Metadata Service onde não for necessário, como forma de reduzir a superfície de ataque

O que é o AWS Instance Metadata Service?

  • O serviço de metadados da AWS essencialmente fornece acesso a tudo dentro de uma instância, incluindo a credencial da função da instância e o token de sessão
  • Vulnerabilidades SSRF conhecidas que exploram e usam esse ataque como um pivô para seu ambiente
  • Os ataques famosos que você ouviu falar, alguns dos quais envolveram esse método de obter acesso por meio de um aplicativo web vulnerável com acesso ao serviço de metadados da instância
  • Um invasor poderia pegar essas credenciais do serviço de metadados e usá-las fora dessa instância específica

IMDSv2 e por que deve ser usado

  • Garantir que as instâncias estejam usando a V2 do serviço de metadados em todos os momentos, tornando-a um requisito em sua configuração
  • Habilitar tokens de sessão com uma solicitação PUT com um cabeçalho de solicitação obrigatório para a API de metadados da AWS; o IMDSv1 não verifica isso, facilitando a exploração do serviço por invasores
  • O cabeçalho X-Forwarded-For não é permitido no IMDSv2, garantindo que nenhum tráfego baseado em proxy possa se comunicar com o serviço de metadados

Declaração do Problema

As equipes de engenharia podem ter uma grande variedade de infraestrutura de computação na AWS que precisam proteger contra certas vulnerabilidades que aproveitam o serviço de metadados. O serviço de metadados é necessário para ser executado nas instâncias se qualquer IAM for usado ou se houver alguma informação de dados do usuário que a instância possa precisar ao inicializar. Limitar a superfície de ataque de suas instâncias é crucial para evitar a capacidade de pivotar em seu ambiente, roubando informações fornecidas pelo próprio serviço. Numerosos ataques famosos no passado aproveitaram este serviço específico para explorar uma função anexada à instância ou despejar dados sensíveis acessíveis através do serviço de metadados. O Metabadger pode ajudar a identificar onde e como você está usando o serviço de metadados da instância, além de fornecer a capacidade de reduzir qualquer alavancagem de ataque indesejada para diminuir sua postura geral de risco ao operar no EC2.

Aviso e Reversão

O uso desta ferramenta pode impactar sua infraestrutura de computação AWS, pois nem todos os serviços e aplicações podem funcionar sem o serviço de metadados ou na versão 2. Tome cuidado ao implantar isso em seu ambiente de produção e tenha um plano de reversão em vigor caso algo pareça fora do comum. O Metabadger vem com a capacidade integrada de reverter para a versão 1 padrão do serviço usando a flag -v1; você pode usar isso para reverter rapidamente suas instâncias para o padrão. Idealmente, você deve executar esta ferramenta e atualizar sua versão de metadados em ambientes não produtivos como um campo de provas antes de aplicá-la.

Passos Guiados para Endurecimento

Passo 1

Inicialmente, queremos descobrir o uso geral do serviço de metadados em uma região AWS específica. O Metabadger avaliará o status atual do seu uso na região onde suas credenciais apontam no arquivo /.aws/credentials ou na função atual que está sendo assumida. Você também pode especificar a flag --region ao executar o comando discover-metadata se quiser mudar para outra região além da atualmente configurada. Depois de ter uma boa ideia de qual versão suas instâncias estão executando e se o serviço está ativado ou desativado, você poderá criar um plano de ação muito mais definido para endurecer o serviço. Observe que você pode encontrar o significado específico de cada opção de metadados definida aqui.

Passo 2

Uma das áreas que deve ser avaliada ao fazer a transição para a v2 do serviço é o uso de funções IAM. O Metabadger permite identificar instâncias em uma região que já podem estar usando uma função IAM. O comando discover-role-usage produzirá uma lista de instâncias que possuem funções anexadas a elas. Se você tiver muitas instâncias usando funções, tome cuidado ao atualizar o serviço para v2 para garantir que a funcionalidade geral de suas cargas de trabalho não seja impactada.

Passo 3

Após concluir sua descoberta e avaliação iniciais, você pode agora criar uma abordagem escalonada para endurecer sua infraestrutura de computação para usar a v2 do serviço de metadados ou desativá-lo onde não for utilizado. O comando harden-metadata permite atualizar todas as instâncias em uma região específica por padrão. Você também pode passar tags de instância usando a flag --tags ou um arquivo de entrada contendo um CSV de instâncias para as quais deseja aplicar uma configuração. Depois de fazer as atualizações apropriadas para a v2 e desativar o serviço onde não é usado, você pode reavaliar usando os itens do Passo 1 para confirmar que seu ambiente está bloqueado. Se você tiver certas instâncias que não deseja atualizar, pode excluí-las via a flag --exclusion por tag ou ID de instância.

Requisitos

O Metabadger requer uma função IAM ou credenciais com as seguintes permissões:

ec2:ModifyInstanceAttribute
ec2:DescribeInstances

Ao fazer alterações no Instance Metadata Service, você deve ter cuidado e seguir orientações adicionais da AWS sobre como atualizar com segurança para a versão 2. O Metabadger foi projetado para auxiliá-lo neste processo para proteger ainda mais sua infraestrutura de computação na AWS.

Guia de Melhores Práticas da AWS sobre Atualização para IMDSv2

Uso e Instalação

Instalar via pip

root@kitploit:~
pip3 install --user metabadger

Instalar via Github

root@kitploit:~
$ git clone https://github.com/salesforce/metabadger
$ cd metabadger
$ pip install -e .

$ metabadger
Usage: metabadger [OPTIONS] COMMAND [ARGS]...

  Metabadger is an AWS Security Tool used for discovering and hardening the
  Instance Metadata service.

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  cloudwatch-metrics   Pull CloudWatch Metrics for MetadataNoToken usage
  disable-metadata     Disable the IMDS service on EC2 instances
  discover-metadata    Discover summary of IMDS service usage within EC2
  discover-role-usage  Discover summary of IAM role usage for EC2
  harden-metadata      Harden the AWS instance metadata service from v1 to v2

Comandos

cloudwatch-metrics

Directly pull information about your usage of IMDSv1 with the MetadataNoToken metric in AWS CloudWatch. This command will show you instances within the last hour that are actively using v1 of the service. Note that when running this command you should have the IAM permissions to be able to view CloudWatch metrics.

root@kitploit:~
Options:
  -a, --all-region           Pull CloudWatch metrics across all available
                             regions
  -r, --region TEXT          Specify which AWS region you will perform this
                             command in
  -t, --time-period INTEGER  The CloudWatch time period in seconds used to
                             track the IMDS v1 metric
  -p, --profile TEXT         Specify the AWS IAM profile.
  --help                     Show this message and exit.

discover-metadata

A summary of your overall instance metadata service usage including which version and an overall enforcement percentage. Using these numbers will help you understand the overall posture of how hardened your metadata usage is and where you're enforcing v2 vs v1.

root@kitploit:~
Options:
  -a, --all-region    Provide a metadata summary for all available regions in the AWS account
  -j, --json          Get metadata summary in JSON format
  -r, --region TEXT   Specify which AWS region you will perform this command in
  -p, --profile TEXT  Specify the AWS IAM profile.

discover-role-usage

A summary of instances and the roles that they are using, this will give you a good idea of the caution you must take when making updates to the metadata service itself.

root@kitploit:~
Options:
  -p, --profile TEXT  Specify the AWS IAM profile.
  -r, --region TEXT   Specify which AWS region you will perform this command in

harden-metadata

The ability to modify the instances to use either metadata v1 or v2 and to get an understanding of how many instances would be modified by running a dry run mode.

root@kitploit:~
Options:
  -a, --all-region       Update IMDS across all regions in your account
  -e, --exclusion        The exclusion flag will apply to everything besides what is specified, tags or instances
  -d, --dry-run          Dry run of hardening metadata changes
  -v1, --v1              Enforces v1 of the metadata service
  -i, --input-file PATH  Path of csv file of instances to harden IMDS for
  -t, --tags TEXT        A comma seperated list of tags to apply the hardening setting to
  -r, --region TEXT      Specify which AWS region you will perform this command in
  -p, --profile TEXT     Specify the AWS IAM profile.

disable-metadata

Use this command to completely disable the metadata servie on instances.

root@kitploit:~
Options:
  -e, --exclusion        The exclusion flag will apply to everything besides what is specified, tags or instances
  -d, --dry-run          Dry run of disabling the metadata service
  -i, --input-file PATH  Path of csv file of instances to disable IMDS for
  -t, --tags TEXT        A comma seperated list of tags to apply the hardening setting to
  -r, --region TEXT      Specify which AWS region you will perform this command in
  -p, --profile TEXT     Specify the AWS IAM profile.

Registro de Logs

Todas as alterações feitas pelo Metabadger serão registradas em um arquivo salvo no diretório de trabalho chamado metabadger.log. O arquivo incluirá o seguinte para cada ação que a ferramenta executa ao alterar o serviço de metadados:

root@kitploit:~
* The time and date stamp for when a change was made
* Change that occured (disabled, hardened, or updated)
* The instance ID where the change was made
* Dry run information
* A status on if the change was successful or not
Baixar ferramenta