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
Thunderstorm — Un motor de recolección y derivación. Mapea tu entorno, evalúa los permisos y la confianza efectivos, y escribe un grafo de ataque completo como un único archivo .rage.ndjson. La entrada para todo lo demás. | Kitploit
Herramientas/GitHubGitHub/ustayready/thunderstorm
Seguridad de Infraestructura en la NubeEscalada de PrivilegiosAnálisis de VulnerabilidadesMovimiento LateralAuditoría de ConfiguraciónRecopilación de InformaciónPruebas de PenetraciónSeguridad en la NubeGestión de Identidad y Acceso (IAM)Red Teaming
GitHub
2427hace 1 díaAún no revisado
ustayready/thunderstorm

Thunderstorm

Un motor de recolección y derivación. Mapea tu entorno, evalúa los permisos y la confianza efectivos, y escribe un grafo de ataque completo como un único archivo .rage.ndjson. La entrada para todo lo demás.

Ver Repositorio

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

Thunderstorm

No tienes 4.000 hallazgos. Tienes seis caminos hacia tus joyas de la corona.

Una ruta de ataque de AWS en Blaze Lite: internet anónimo hasta la base de datos de producción en seis saltos

Un CSPM te entrega una lista plana, deduplicada y ordenada por severidad de configuraciones erróneas y te deja adivinar cuáles importan. Thunderstorm razona sobre la alcanzabilidad: recopila tu nube en modo de solo lectura, la modela como un grafo de capacidades de seguridad y te dice que una confianza OIDC de GitHub Actions conduce, en cuatro saltos, a tu data lake de producción.

Ninguno de los saltos anteriores es un hallazgo por sí solo. Un bucket público, una clave en un archivo de estado, un rol asumible, una acción IAM demasiado amplia. La ruta es el hallazgo, y la ruta es lo que casi nada más calcula.

Profundidad en la plataforma a la que lo apuntas. Ejecútalo contra una cuenta de AWS, una suscripción de Azure o un proyecto de GCP, y mapea ese único entorno en los términos propios del proveedor: STS assume-role y escalada de privilegios IAM en AWS, cadenas de RBAC e identidad administrada en Azure, suplantación de cuentas de servicio en GCP. Un entorno, un grafo, modelado tal como esa nube funciona realmente.

Muchas herramientas enumeran más. La afirmación aquí es que Thunderstorm razona sobre lo que enumera con profundidad real: 219 tipos de recursos, 80 tipos de aristas, más de 2.400 reglas de derivación y 1.049 sitios de fuga de credenciales mapeados, todos provenientes de RAGE.

RAGE es el formato, Thunderstorm lo produce, Blaze lo explora.


Míralo recorrer una cadena de ataque real

Son lo que Thunderstorm produce a partir de un único scan.

AWS: de un archivo de estado de Terraform público a la toma de control total de la cuenta

Un bucket S3 mal configurado. Thunderstorm lo rastrea seis saltos hasta la base de datos de clientes de producción, y una segunda ruta directa al secreto maestro de la base de datos.

root@kitploit:~
Internet ──public s3:GetObject──▶ acme-terraform-state (public bucket)
         ──ExposesCredential────▶ AKIA…            (access key leaked in tfstate)
         ──CredentialsFor───────▶ ec2-app-role
         ──CanAssume────────────▶ terraform-exec    (sts:AssumeRole)
         ──CanEscalateTo────────▶ OrganizationAdmin (iam:AttachRolePolicy)
         ──CanReadData──────────▶ acme-prod-customers (PII)

Cada salto lleva el permiso que lo concede, la evidencia que lo demuestra y una narrativa en lenguaje sencillo. Los valores filtrados salen con él:

Exposiciones sensibles de AWS con valores de credenciales revelados

Azure: de un contenedor de almacenamiento público a Owner de la suscripción

Un blob de lectura pública filtra un secreto de entidad de servicio. Un Contributor con un permiso extra se promueve a sí mismo a Owner de la suscripción. Sin explotar ninguna aplicación; solo mala configuración de la nube e IAM.

Grafo de ataque de Azure

root@kitploit:~
Internet ──anonymous blob read──▶ acmedeploy (public Storage account)
         ──ExposesCredential────▶ automation-sp secret (in a deploy config blob)
         ──CredentialsFor───────▶ automation-sp (Contributor)
         ──CanEscalateTo────────▶ Owner  (Microsoft.Authorization/roleAssignments/write)
         ──CanReadData──────────▶ acmedatalake

GCP: de una clave comprometida a una cadena de suplantación de dos saltos

La suplantación de cuentas de servicio es invisible para la mayoría de las herramientas. Thunderstorm trata iam.serviceAccounts.getAccessToken como la arista de movimiento lateral que es.

Grafo de ataque de GCP

root@kitploit:~
Internet ──public allUsers───▶ acme-public-exports (GCS)
         ──ExposesCredential─▶ sa-deploy-key
         ──CredentialsFor────▶ sa-deploy
         ──CanImpersonate────▶ sa-data-pipeline
         ──CanImpersonate────▶ sa-org-admin
         ──CanReadData───────▶ acme_customers_pii (BigQuery)

Lo que obtienes

  • Grafos de rutas de ataque, interactivos y sin conexión. Elige cualquier punto de apoyo, filtra por alcanzable / joyas de la corona / todo, y encuentra la ruta más corta hacia cualquier objetivo.
  • Exposiciones sensibles. Recursos públicos, además de credenciales y secretos que Thunderstorm realmente leyó desde donde se filtran, con el valor capturado y su ubicación exacta.
  • Escalada de privilegios y movimiento lateral. Aristas de assume-role, suplantación, identidad administrada, autoconcesión y entre cuentas/tenants, cada una vinculada al permiso que la habilita.
  • Explicable por diseño. Cada arista lleva evidencia, permisos, condiciones, confianza y una narrativa.
  • Un informe listo para imprimir. Cadena de custodia, radio de impacto, rutas anotadas, filtraciones confirmadas.
  • Blaze Lite. Un único visor HTML sin conexión embebido en el binario. view lo abre en tu navegador; no se sube nada.

Requisitos

  • Go 1.26+ (dos módulos: collectors/, engine/).
  • Credenciales de solo lectura para el objetivo que escaneas (por ejemplo, un perfil de AWS, GCP ADC o un inicio de sesión de Azure).
  • RAGE: el catálogo que consume Thunderstorm. Una instantánea vendorizada está embebida en el binario, por lo que no se requiere una descarga aparte para compilar o ejecutar (ver más abajo).

RAGE es la fuente de verdad

Thunderstorm no lleva taxonomía, mapeos ni reglas propias. Consume el estándar RAGE de principio a fin:

ConcernLives in RAGE
Node / edge taxonomy, conditionsvocab/{node-types,edge-types,conditions}.json
Native→generic mappings + collection recipesproviders/{aws,gcp,azure}.json
Derivation rule corpusrules/
Credential-exposure catalogexposure-db/{aws,gcp,azure}.json + vocabulary.json

Vínculo de versión: el spec_version de RAGE es el único número que fija Thunderstorm a una versión de RAGE. El colector lo lee en vivo desde el RAGE contra el que se compiló (thunderstorm version imprime RAGE <v>) y lo estampa en cada grafo que emite; Blaze Lite lee esa estampa y advierte cuando un grafo se compiló contra una versión que no soporta.

Cómo se resuelve RAGE (gana la primera coincidencia):

  1. $RAGE_ROOT: un checkout de RAGE en vivo, si lo defines (anulación para desarrollo; las ediciones se aplican sin recompilar).
  2. Predeterminado: la instantánea vendorizada en collectors/rage/, embebida en el binario.

Actualiza la instantánea con make RAGE_ROOT=/path/to/rage (o go generate ./... en collectors/). RAGE vive en github.com/trustedsec/rage.

Autenticación

Thunderstorm escanea en solo lectura usando tus credenciales de nube existentes; nunca gestiona secretos ni escribe en el objetivo. Inicia sesión con las herramientas habituales del proveedor y luego apunta scan a la cuenta / proyecto / suscripción.

AWS usa la cadena de credenciales estándar del SDK de AWS (un perfil con nombre, variables de entorno, SSO o un rol de instancia):

root@kitploit:~
aws configure --profile myprofile        # or: aws sso login --profile myprofile
./bin/thunderstorm scan --profile myprofile [--region us-east-1]

GCP usa Application Default Credentials (ADC). Inicia sesión y luego pasa el proyecto:

root@kitploit:~
gcloud auth application-default login
./bin/thunderstorm scan --provider gcp --project my-project-id

Una clave de cuenta de servicio también funciona mediante GOOGLE_APPLICATION_CREDENTIALS=/path/key.json.

Azure usa la cadena de Azure CLI / DefaultAzureCredential. Inicia sesión y luego, opcionalmente, limita a una suscripción:

root@kitploit:~
az login
./bin/thunderstorm scan --provider azure [--subscription <sub-id>]

Una entidad de servicio también funciona mediante AZURE_CLIENT_ID / AZURE_CLIENT_SECRET / AZURE_TENANT_ID.

Escanear muchas cuentas a la vez usa --aws-profiles, --gcp-projects, --azure-subscriptions o un archivo --scopes (provider:scope por línea).

Uso

Compilar (produce ./bin/thunderstorm):

root@kitploit:~
make                              # build with the embedded RAGE snapshot
make RAGE_ROOT=/path/to/RAGE      # re-vendor from a live RAGE checkout, then build

Escanear y luego explorar:

root@kitploit:~
./bin/thunderstorm scan --profile <aws-profile>   # → a single .rage.ndjson attack graph
./bin/thunderstorm view --in engagement.zip       # open it offline in Blaze Lite
./bin/thunderstorm redact --in engagement.zip --out redacted.zip   # de-identify for sharing

Sin --out, los engagements aterrizan en ./output/ (ignorado por git). Eso es toda la herramienta: scan, redact, view, version.

Invariantes de diseño

  • La ontología es propiedad de RAGE. Añadir un proveedor/servicio significa editar RAGE, nunca un esquema local de Thunderstorm.
  • Capacidades, no inventario. Cada arista recorrible es una capacidad de seguridad; el inventario es STRUCTURAL y se excluye de las rutas.
  • Explicable. Cada arista lleva evidencia, permisos, condiciones, confianza y una narrativa humana.
  • Las condiciones son de primera clase. Estado de arista = ACTIVE / CONDITIONAL / POTENTIAL / BLOCKED / UNKNOWN; las aristas BLOCKED se conservan para explicar por qué falla una ruta.

Licencia

Thunderstorm está licenciado bajo la GNU General Public License v3 (ver LICENSE). Es una herramienta de seguridad ofensiva proporcionada únicamente para pruebas de seguridad autorizadas, educación e investigación; obtén autorización explícita antes de ejecutarla contra cualquier entorno que no poseas. Consulta el aviso de Uso Autorizado al inicio de LICENSE.

Descargar herramienta