Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
metabadger — Prevenir ataques SSRF en AWS EC2 mediante actualizaciones automatizadas al más seguro Servicio de Metadatos de Instancia v2 (IMDSv2). | Kitploit
Herramientas/GitHubGitHub/salesforce/metabadger
Seguridad de Infraestructura en la NubeHerramientas DefensivasAnálisis de VulnerabilidadesAuditoría de ConfiguraciónSeguridad en la NubeMala ConfiguraciónArchived
GitHubsalesforce/metabadger

metabadger

Prevenir ataques SSRF en AWS EC2 mediante actualizaciones automatizadas al más seguro Servicio de Metadatos de Instancia v2 (IMDSv2).

Ver Repositorio
143129hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Metabadger

Previene ataques SSRF en AWS EC2 mediante actualizaciones automatizadas al más seguro Servicio de Metadatos de Instancia v2 (IMDSv2).

continuous-integration Downloads Twitter

Metabadger

Propósito y funcionalidad

  • Diagnosticar y evaluar tu uso actual del Servicio de Metadatos de Instancia de AWS, además de entender cómo funciona el servicio
  • Prepararte para actualizar a la versión 2 del Servicio de Metadatos de Instancia para protegerte contra vectores de ataque de v1
  • Darte la capacidad de actualizar específicamente tus instancias para que usen solo IMDSv2
  • Darte la capacidad de deshabilitar el Servicio de Metadatos de Instancia donde no lo necesites, como forma de reducir la superficie de ataque

¿Qué es el AWS Instance Metadata Service?

  • El servicio de metadatos de AWS básicamente te da acceso a todo lo que hay dentro de una instancia, incluyendo la credencial del rol de la instancia y el token de sesión
  • Vulnerabilidades SSRF conocidas que explotan y usan este ataque como pivote hacia tu entorno
  • Los famosos ataques que has oído, algunos de los cuales involucraron este método para obtener acceso a través de una aplicación web vulnerable con acceso al servicio de metadatos de instancia
  • Un atacante podría tomar dichas credenciales del servicio de metadatos y usarlas fuera de esa instancia en particular

IMDSv2 y por qué debería usarse

  • Asegurarse de que las instancias usen siempre la versión 2 del servicio de metadatos, exigiéndolo en su configuración
  • Habilitar tokens de sesión con una solicitud PUT que incluya un encabezado de solicitud obligatorio para la API de metadatos de AWS; IMDSv1 no verifica esto, lo que facilita que los atacantes exploten el servicio
  • El encabezado X-Forwarded-For no está permitido en IMDSv2, lo que garantiza que no se permita el tráfico basado en proxy para comunicarse con el servicio de metadatos

Planteamiento del problema

Los equipos de ingeniería pueden tener una gran variedad de infraestructura de cómputo en AWS que necesitan proteger de ciertas vulnerabilidades que aprovechan el servicio de metadatos. El servicio de metadatos es necesario para ejecutarse en las instancias si se usa algún IAM o si hay información de datos de usuario que la instancia pueda necesitar al arrancar. Limitar la superficie de ataque de tus instancias es crucial para evitar la capacidad de pivotar en tu entorno robando información proporcionada por el propio servicio. Numerosos ataques famosos en el pasado han aprovechado este servicio para explotar un rol asociado a la instancia o volcar datos sensibles accesibles a través del servicio de metadatos. Metabadger puede ayudar a identificar dónde y cómo estás usando el servicio de metadatos de instancia, a la vez que te brinda la capacidad de reducir cualquier apalancamiento de ataque no deseado para bajar tu postura de riesgo general mientras operas en EC2.

Descargo de responsabilidad y reversión

El uso de esta herramienta puede afectar tu infraestructura de cómputo en AWS, ya que no todos los servicios y aplicaciones pueden funcionar sin el servicio de metadatos o en la versión 2. Ten precaución al implementarlo en tu entorno de producción y ten un plan de reversión por si algo parece fuera de lo común. Metabadger incluye la capacidad de revertir a la versión 1 predeterminada del servicio usando la bandera -v1, que puedes usar para revertir rápidamente tus instancias al valor predeterminado. Idealmente, deberías ejecutar esta herramienta y actualizar la versión de metadatos en entornos que no sean de producción como campo de pruebas antes de aplicarlo.

Pasos guiados para el endurecimiento

Paso 1

Inicialmente, queremos descubrir nuestro uso general del servicio de metadatos en una región particular de AWS. Metabadger evaluará el estado actual de tu uso en la región a la que apuntan tus credenciales en tu archivo /.aws/credentials o el rol actual que se asume. También puedes especificar la bandera --region al ejecutar el comando discover-metadata si deseas cambiar a otra región que no sea la configurada actualmente. Una vez que tengas una buena idea de qué versión están usando tus instancias y si el servicio está habilitado o deshabilitado, podrás elaborar un plan de acción mucho más definido para endurecer el servicio. Ten en cuenta que puedes encontrar el significado específico de cada opción de metadatos aquí.

Paso 2

Uno de los aspectos que se debe evaluar al hacer el cambio a la versión 2 del servicio es el uso de roles de IAM. Metabadger te permite identificar instancias en una región que ya podrían estar usando un rol de IAM. El comando discover-role-usage mostrará una lista de instancias que tienen roles asociados. Si tienes muchas instancias usando roles, debes tener precaución al actualizar el servicio a v2 para asegurarte de que la funcionalidad general de tus cargas de trabajo no se vea afectada.

Paso 3

Una vez que hayas completado tu descubrimiento y evaluación iniciales, ahora puedes crear un enfoque por etapas para endurecer tu infraestructura de cómputo para usar la versión 2 del servicio de metadatos o deshabilitarlo donde no se use. El comando harden-metadata te permite actualizar todas las instancias en una región particular de forma predeterminada. También puedes pasar etiquetas de instancia usando la bandera --tags o un archivo de entrada que contenga un CSV de instancias a las que deseas aplicar una configuración. Una vez que hayas realizado las actualizaciones apropiadas a v2 y deshabilitado el servicio donde no se usa, puedes reevaluar usando los elementos del Paso 1 para confirmar que tu entorno esté bloqueado. Si tienes ciertas instancias que no deseas actualizar, puedes excluirlas mediante la bandera --exclusion por etiqueta o ID de instancia.

Requisitos

Metabadger requiere un rol de IAM o credenciales con los siguientes permisos:

ec2:ModifyInstanceAttribute
ec2:DescribeInstances

Al realizar cambios en el Servicio de Metadatos de Instancia, debes ser cauteloso y seguir las indicaciones adicionales de AWS sobre cómo actualizar de forma segura a la versión 2. Metabadger fue diseñado para ayudarte con este proceso para asegurar aún más tu infraestructura de cómputo en AWS.

Guía de mejores prácticas de AWS sobre la actualización a IMDSv2

Uso e instalación

Instalar mediante pip

root@kitploit:~
pip3 install --user metabadger

Instalar mediante 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

Extrae información directamente sobre tu uso de IMDSv1 con la métrica MetadataNoToken en AWS CloudWatch. Este comando te mostrará las instancias de la última hora que estén usando activamente la versión 1 del servicio. Ten en cuenta que al ejecutar este comando debes tener los permisos de IAM para poder ver las métricas de 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 resumen del uso general del servicio de metadatos de tus instancias, incluyendo la versión y un porcentaje de cumplimiento general. Usar estos números te ayudará a entender la postura general de qué tan endurecido está tu uso de metadatos y dónde estás aplicando v2 frente a 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 resumen de las instancias y los roles que están usando; esto te dará una buena idea de la precaución que debes tener al realizar actualizaciones en el propio servicio de metadatos.

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 capacidad de modificar las instancias para que usen metadatos v1 o v2 y obtener una comprensión de cuántas instancias se modificarían al ejecutar un modo de simulación (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

Usa este comando para deshabilitar completamente el servicio de metadatos en las instancias.

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

Todos los cambios realizados por Metabadger se registrarán en un archivo guardado en el directorio de trabajo llamado metabadger.log. El archivo incluirá lo siguiente para cada acción que la herramienta realice al modificar el servicio de metadatos:

  • La marca de tiempo y fecha en que se realizó el cambio
  • El cambio que ocurrió (deshabilitado, endurecido o actualizado)
  • El ID de la instancia donde se realizó el cambio
  • Información de simulación (dry run)
  • Un estado sobre si el cambio fue exitoso o no
Descargar herramienta