Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
metabadger — Prévenir les attaques SSRF sur AWS EC2 via des mises à niveau automatisées vers l'Instance Metadata Service v2 (IMDSv2) plus sécurisé. | Kitploit
Outils/GitHubGitHub/salesforce/metabadger
Sécurité de l'Infrastructure CloudOutils DéfensifsAnalyse des VulnérabilitésAudit de ConfigurationSécurité CloudMauvaise ConfigurationArchived
GitHubsalesforce/metabadger

metabadger

Prévenir les attaques SSRF sur AWS EC2 via des mises à niveau automatisées vers l'Instance Metadata Service v2 (IMDSv2) plus sécurisé.

Voir le dépôt
14312il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Metabadger

Empêchez les attaques SSRF sur AWS EC2 grâce à des mises à niveau automatisées vers le service de métadonnées d'instance v2 (IMDSv2), plus sécurisé.

continuous-integration Downloads Twitter

Metabadger

Objectif et fonctionnalités

  • Diagnostiquer et évaluer votre utilisation actuelle du service de métadonnées d'instance AWS, ainsi que comprendre son fonctionnement
  • Vous préparer à passer à la version 2 du service de métadonnées pour vous prémunir des vecteurs d'attaque de la v1
  • Vous donner la possibilité de mettre à jour spécifiquement vos instances pour qu'elles utilisent uniquement IMDSv2
  • Vous donner la possibilité de désactiver le service de métadonnées d'instance là où vous n'en avez pas besoin, afin de réduire la surface d'attaque

Qu'est-ce que le service de métadonnées d'instance AWS ?

  • Le service de métadonnées AWS donne essentiellement accès à tout ce qui se trouve dans une instance, y compris le jeton de session et les identifiants du rôle de l'instance
  • Vulnérabilités SSRF connues qui exploitent cette attaque comme point d'entrée dans votre environnement
  • Les attaques célèbres dont vous avez entendu parler, dont certaines ont utilisé cette méthode d'accès via une application web vulnérable ayant accès au service de métadonnées d'instance
  • Un attaquant pourrait prendre lesdits identifiants du service de métadonnées et les utiliser en dehors de cette instance particulière

IMDSv2 et pourquoi il faut l'utiliser

  • Garantir que les instances utilisent la version 2 du service de métadonnées en permanence en l'imposant dans sa configuration
  • Activation des jetons de session avec une requête PUT accompagnée d'un en-tête de requête obligatoire vers l'API de métadonnées AWS ; IMDSv1 ne vérifie pas cela, ce qui facilite l'exploitation du service par les attaquants
  • L'en-tête X-Forwarded-For n'est pas autorisé dans IMDSv2, ce qui garantit qu'aucun trafic basé sur un proxy ne peut communiquer avec le service de métadonnées

Énoncé du problème

Les équipes d'ingénierie peuvent disposer d'une grande variété d'infrastructures de calcul dans AWS qu'elles doivent protéger contre certaines vulnérabilités exploitant le service de métadonnées. Le service de métadonnées doit être exécuté sur les instances si un IAM est utilisé ou si l'instance a besoin d'informations de données utilisateur au démarrage. Limiter la surface d'attaque de vos instances est crucial pour empêcher la possibilité de pivoter dans votre environnement en volant des informations fournies par le service lui-même. De nombreuses attaques célèbres dans le passé ont exploité ce service pour exploiter un rôle attaché à l'instance ou vider des données sensibles accessibles via le service de métadonnées. Metabadger peut vous aider à identifier où et comment vous utilisez le service de métadonnées d'instance, tout en vous donnant la capacité de réduire tout levier d'attaque indésirable afin d'abaisser votre niveau de risque global lors de l'utilisation d'EC2.

Avertissement et restauration

L'utilisation de cet outil peut impacter votre infrastructure de calcul AWS car certains services et applications peuvent ne pas fonctionner sans le service de métadonnées ou avec la version 2. Soyez prudent lors du déploiement dans votre environnement de production et prévoyez un plan de restauration en cas d'anomalie. Metabadger intègre la possibilité de revenir à la version 1 par défaut du service à l'aide du drapeau -v1 ; vous pouvez l'utiliser pour restaurer rapidement vos instances à la version par défaut. Idéalement, exécutez cet outil et mettez à jour la version des métadonnées dans des environnements hors production comme terrain d'essai avant de l'appliquer.

Étapes guidées pour le durcissement

Étape 1

Dans un premier temps, nous souhaitons découvrir notre utilisation globale du service de métadonnées dans une région AWS particulière. Metabadger évaluera l'état actuel de votre utilisation dans la région vers laquelle pointent vos identifiants dans votre fichier /.aws/credentials ou le rôle actuellement assumé. Vous pouvez également spécifier le drapeau --region lors de l'exécution de la commande discover-metadata si vous souhaitez changer de région. Une fois que vous avez une bonne idée de la version utilisée par vos instances et si le service est activé ou désactivé, vous serez en mesure d'élaborer un plan d'action bien plus précis pour durcir le service. Notez que vous pouvez trouver la signification spécifique de chaque option de métadonnées ici.

Étape 2

L'un des domaines à évaluer lors du passage à la version 2 du service est l'utilisation des rôles IAM. Metabadger vous permet d'identifier les instances d'une région qui utilisent déjà un rôle IAM. La commande discover-role-usage affichera une liste des instances auxquelles des rôles sont attachés. Si vous avez beaucoup d'instances utilisant des rôles, soyez prudent lors de la mise à jour du service vers la version 2 pour garantir que le fonctionnement global de vos charges de travail n'est pas affecté.

Étape 3

Une fois l'étude initiale et l'évaluation terminées, vous pouvez maintenant mettre en place une approche progressive pour durcir votre infrastructure de calcul afin d'utiliser soit la version 2 du service de métadonnées, soit de le désactiver là où il n'est pas utilisé. La commande harden-metadata vous permet de mettre à jour toutes les instances d'une région particulière par défaut. Vous pouvez également passer des balises d'instance à l'aide du drapeau --tags ou un fichier d'entrée contenant un csv des instances auxquelles vous souhaitez appliquer une configuration. Une fois les mises à jour appropriées effectuées vers la version 2 et le service désactivé là où il n'est pas utilisé, vous pouvez réévaluer à l'aide des éléments de l'étape 1 pour confirmer que votre environnement est verrouillé. Si certaines instances ne doivent pas être mises à jour, vous pouvez les exclure via le drapeau --exclusion par balise ou ID d'instance.

Prérequis

Metabadger nécessite un rôle IAM ou des identifiants avec les autorisations suivantes:

ec2:ModifyInstanceAttribute
ec2:DescribeInstances

Lorsque vous apportez des modifications au service de métadonnées d'instance, soyez prudent et suivez les recommandations supplémentaires d'AWS sur la façon de mettre à niveau en toute sécurité vers la version 2. Metabadger a été conçu pour vous assister dans ce processus afin de renforcer la sécurité de votre infrastructure de calcul AWS.

Guide des bonnes pratiques AWS pour la mise à jour vers IMDSv2

Utilisation et installation

Installation via pip

root@kitploit:~
pip3 install --user metabadger

Installation 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

Commandes

cloudwatch-metrics

Récupérez directement des informations sur votre utilisation d'IMDSv1 avec la métrique MetadataNoToken dans AWS CloudWatch. Cette commande affiche les instances, dans la dernière heure, qui utilisent activement la version 1 du service. Notez que lors de l'exécution de cette commande, vous devez disposer des autorisations IAM nécessaires pour consulter les métriques CloudWatch.

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

Un résumé de votre utilisation globale du service de métadonnées d'instance, incluant la version et un pourcentage global d'application. Ces chiffres vous aideront à comprendre la posture globale de votre utilisation durcie des métadonnées et où vous appliquez la v2 par rapport à la 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

Un résumé des instances et des rôles qu'elles utilisent, ce qui vous donnera une bonne idée de la prudence dont vous devez faire preuve lors des mises à jour du service de métadonnées lui-même.

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

La possibilité de modifier les instances pour utiliser la version 1 ou 2 des métadonnées et de comprendre combien d'instances seraient modifiées en exécutant un mode dry run.

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

Utilisez cette commande pour désactiver complètement le service de métadonnées sur les 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.

Journalisation

Toutes les modifications effectuées par Metabadger seront enregistrées dans un fichier nommé metabadger.log dans le répertoire de travail. Le fichier comprendra les informations suivantes pour chaque action entreprise par l'outil lors de la modification du service de métadonnées :

  • L'horodatage (date et heure) de la modification
  • Le changement effectué (désactivé, durci ou mis à jour)
  • L'ID de l'instance concernée
  • Les informations du dry run
  • Un statut indiquant si la modification a réussi ou non
Télécharger l’outil