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
Thunderstorm — Un collecteur et moteur de dérivation. Il cartographie votre environnement, évalue les permissions effectives et la confiance, et écrit un graphe d'attaque complet dans un seul fichier .rage.ndjson. L'entrée de tout le reste. | Kitploit
Outils/GitHubGitHub/ustayready/thunderstorm
Sécurité de l'Infrastructure CloudEscalade de PrivilègesAnalyse des VulnérabilitésMouvement LatéralAudit de ConfigurationCollecte d'InformationsTests d'IntrusionSécurité CloudGestion des Identités et des Accès (IAM)Red Teaming
GitHub
24240il y a 2 joursPas encore vérifié
ustayready/thunderstorm

Thunderstorm

Un collecteur et moteur de dérivation. Il cartographie votre environnement, évalue les permissions effectives et la confiance, et écrit un graphe d'attaque complet dans un seul fichier .rage.ndjson. L'entrée de tout le reste.

Voir le dépôt

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

Thunderstorm

Vous n'avez pas 4 000 constats. Vous avez six chemins vers vos joyaux de la couronne.

Un chemin d'attaque AWS dans Blaze Lite : d'Internet anonyme à la base de données de production en six sauts

Un CSPM vous remet une liste plate, dédupliquée et triée par sévérité de mauvaises configurations, et vous laisse deviner lesquelles comptent. Thunderstorm raisonne en termes d'atteignabilité : il collecte votre cloud en lecture seule, le modélise comme un graphe de capacités de sécurité, et vous dit qu'une relation de confiance OIDC GitHub Actions mène, en quatre sauts, à votre lac de données de production.

Aucun des sauts ci-dessus n'est un constat à lui seul. Un bucket public, une clé dans un fichier d'état, un rôle assumable, une action IAM trop large. Le chemin est le constat, et le chemin est ce que presque rien d'autre ne calcule.

Profond sur la plateforme vers laquelle vous le pointez. Lancez-le contre un compte AWS, un abonnement Azure ou un projet GCP, et il cartographie cet environnement unique dans les termes propres du fournisseur : assume-role STS et élévation de privilèges IAM dans AWS, chaînes RBAC et identité managée dans Azure, emprunt d'identité de compte de service dans GCP. Un environnement, un graphe, modélisé comme ce cloud fonctionne réellement.

Beaucoup d'outils énumèrent davantage. L'affirmation ici est que Thunderstorm raisonne sur ce qu'il énumère avec une réelle profondeur : 219 types de ressources, 80 types d'arêtes, plus de 2 400 règles de dérivation et 1 049 sites de fuite d'identifiants cartographiés, tous issus de RAGE.

RAGE est le format, Thunderstorm le produit, Blaze l'explore.


Voyez-le parcourir une véritable chaîne d'attaque

Ils sont ce que Thunderstorm produit à partir d'un seul scan.

AWS : d'un fichier d'état Terraform public à la prise de contrôle totale du compte

Un bucket S3 mal configuré. Thunderstorm le suit sur six sauts jusqu'à la base de données clients de production, et une seconde route directement vers le secret maître de la base de données.

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)

Chaque saut porte la permission qui le permet, la preuve qui l'établit et un récit en langage clair. Les valeurs divulguées en ressortent également :

Expositions sensibles AWS avec valeurs d'identifiants révélées

Azure : d'un conteneur de stockage public au rôle Owner de l'abonnement

Un blob lisible publiquement divulgue un secret de principal de service. Un Contributor disposant d'une permission supplémentaire se promeut lui-même en Owner de l'abonnement. Aucune exploitation d'application ; juste une mauvaise configuration cloud et de l'IAM.

Graphe d'attaque 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 : d'une clé commitée à une chaîne d'emprunt d'identité en deux sauts

L'emprunt d'identité de compte de service est invisible pour la plupart des outils. Thunderstorm traite iam.serviceAccounts.getAccessToken comme l'arête de mouvement latéral qu'elle est.

Graphe d'attaque 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)

Ce que vous obtenez

  • Des graphes de chemins d'attaque, interactifs et hors ligne. Choisissez n'importe quel point d'ancrage, filtrez par atteignable / joyaux de la couronne / tout, et trouvez le chemin le plus court vers n'importe quelle cible.
  • Des expositions sensibles. Ressources publiques, ainsi que les identifiants et secrets que Thunderstorm a réellement lus là où ils fuient, avec la valeur capturée et son emplacement exact.
  • Élévation de privilèges et mouvement latéral. Assume-role, emprunt d'identité, identité managée, auto-attribution et arêtes inter-comptes/inter-tenants, chacune liée à la permission qui la permet.
  • Explicable par conception. Chaque arête porte des preuves, des permissions, des conditions, un niveau de confiance et un récit.
  • Un rapport prêt à imprimer. Chaîne de possession, rayon d'impact, chemins annotés, fuites confirmées.
  • Blaze Lite. Une visionneuse HTML unique et hors ligne intégrée au binaire. view l'ouvre dans votre navigateur ; rien n'est téléversé.

Prérequis

  • Go 1.26+ (deux modules : collectors/, engine/).
  • Des identifiants en lecture seule pour la cible que vous scannez (par ex. un profil AWS, GCP ADC ou une connexion Azure).
  • RAGE : le catalogue que Thunderstorm consomme. Un instantané vendu est intégré au binaire, donc aucun téléchargement séparé n'est nécessaire pour compiler ou exécuter (voir ci-dessous).

RAGE est la source de vérité

Thunderstorm ne porte aucune taxonomie, correspondance ou règle qui lui soit propre. Il consomme la norme RAGE de bout en bout :

PréoccupationRéside dans RAGE
Taxonomie des nœuds / arêtes, conditionsvocab/{node-types,edge-types,conditions}.json
Correspondances natif→générique + recettes de collecteproviders/{aws,gcp,azure}.json
Corpus de règles de dérivationrules/
Catalogue d'exposition des identifiantsexposure-db/{aws,gcp,azure}.json + vocabulary.json

Lien de version : le spec_version de RAGE est le nombre unique qui épingle Thunderstorm à une version de RAGE. Le collecteur le lit en direct depuis le RAGE contre lequel il a été compilé (thunderstorm version affiche RAGE <v>) et l'appose dans chaque graphe qu'il émet ; Blaze Lite lit cet apposage et avertit lorsqu'un graphe a été construit contre une version qu'il ne prend pas en charge.

Comment RAGE est résolu (la première correspondance l'emporte) :

  1. $RAGE_ROOT : un checkout RAGE en direct, si vous le définissez (surcharge de développement ; les modifications s'appliquent sans recompilation).
  2. Par défaut : l'instantané vendu à collectors/rage/, intégré au binaire.

Rafraîchissez l'instantané avec make RAGE_ROOT=/path/to/rage (ou go generate ./... dans collectors/). RAGE se trouve à github.com/trustedsec/rage.

Authentification

Thunderstorm scanne en lecture seule en utilisant vos identifiants cloud existants ; il ne gère jamais de secrets et n'écrit jamais sur la cible. Connectez-vous avec les outils habituels du fournisseur, puis pointez scan vers le compte / projet / abonnement.

AWS utilise la chaîne d'identifiants standard du SDK AWS (un profil nommé, des variables d'environnement, SSO ou un rôle d'instance) :

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

GCP utilise les Application Default Credentials (ADC). Connectez-vous, puis passez le projet :

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

Une clé de compte de service fonctionne également via GOOGLE_APPLICATION_CREDENTIALS=/path/key.json.

Azure utilise la chaîne Azure CLI / DefaultAzureCredential. Connectez-vous, puis limitez éventuellement à un abonnement :

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

Un principal de service fonctionne également via AZURE_CLIENT_ID / AZURE_CLIENT_SECRET / AZURE_TENANT_ID.

Scanner plusieurs comptes à la fois utilise --aws-profiles, --gcp-projects, --azure-subscriptions ou un fichier --scopes (provider:scope par ligne).

Utilisation

Compiler (produit ./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

Scanner, puis explorer :

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

Sans --out, les engagements atterrissent dans ./output/ (ignoré par git). C'est tout l'outil : scan, redact, view, version.

Invariants de conception

  • L'ontologie appartient à RAGE. Ajouter un fournisseur/service signifie modifier RAGE, jamais un schéma local à Thunderstorm.
  • Des capacités, pas un inventaire. Chaque arête parcourable est une capacité de sécurité ; l'inventaire est STRUCTURAL et exclu des chemins.
  • Explicable. Chaque arête porte des preuves, des permissions, des conditions, un niveau de confiance et un récit humain.
  • Les conditions sont de premier ordre. État d'une arête = ACTIVE / CONDITIONAL / POTENTIAL / BLOCKED / UNKNOWN ; les arêtes BLOCKED sont conservées pour expliquer pourquoi un chemin échoue.

Licence

Thunderstorm est sous licence GNU General Public License v3 (voir LICENSE). C'est un outil de sécurité offensive fourni uniquement pour des tests de sécurité autorisés, l'éducation et la recherche ; obtenez une autorisation explicite avant de l'exécuter contre tout environnement que vous ne possédez pas. Voir l'avis d'utilisation autorisée en haut de LICENSE.

Télécharger l’outil