Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
aws-firmware-dump — Acquiert les disques EBS d'une AMI AWS que vous pouvez lancer, en diffusant les snapshots via les API directes EBS vers un bucket S3 privé avec des manifestes sha256 et un dépaquetage optionnel de l'image brute. | Kitploit
Outils/GitHubGitHub/radkawar/aws-firmware-dump
Sécurité de l'Infrastructure CloudCriminalistique DisqueScripting et AutomatisationAnalyse ForensiqueCollecte d'InformationsRécupération de DonnéesSécurité CloudUtilitaires et Frameworks
GitHubradkawar/aws-firmware-dump

aws-firmware-dump

Acquiert les disques EBS d'une AMI AWS que vous pouvez lancer, en diffusant les snapshots via les API directes EBS vers un bucket S3 privé avec des manifestes sha256 et un dépaquetage optionnel de l'image brute.

1516il y a 1 jourPas encore vérifié
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

aws-firmware-dump

Acquérir les disques d'une AMI que vous pouvez déjà lancer dans un bucket S3 privé. Pas de catalogue, pas de liste de produits, pas d'identifiants d'AMI préintégrés. Vous fournissez l'identifiant de l'AMI.

S3 est le stockage. Le démarrage, le snapshot, la compression et l'upload s'exécutent tous dans AWS. La bande passante locale n'est utilisée que si vous récupérez ultérieurement un objet spécifique.

Ce qu'il fait

graph LR
  A[AMI you supply] -->|run-instances| B[boot instance]
  B -->|every EBS disk| C[snapshots you own]
  C --> D[terminate boot instance]
  C -->|ListSnapshotBlocks / GetSnapshotBlock| E[helper]
  E -->|raw then zstd| F[(S3 golden store)]
  F -->|optional pull| G[local artifacts]
  1. Lancer l'AMI dans le VPC de cette stack. Pas de SSH, pas de paire de clés, pas de ports entrants.
  2. Faire un snapshot de chaque volume EBS de cette instance (disques racine et de données), puis la terminer. Les snapshots sont pris en premier car les images marketplace définissent généralement DeleteOnTermination.
  3. Un petit helper Amazon Linux lit ces snapshots via les API directes EBS et diffuse raw | zstd | aws s3 cp -. Aucun volume n'est créé ou attaché.
  4. Enregistrer le sha256 du flux compressé ainsi que le nom de l'AMI, le propriétaire, l'architecture et les codes produit dans manifest.json.

Ce qu'il ne fait pas

  • Il ne recherche pas d'AMI, ne vous abonne pas à une offre et ne choisit pas de cible.
  • Il ne copie pas une AMI entre régions. L'AMI doit déjà exister dans region.
  • Il n'accepte pas les conditions du Marketplace. OptInRequired est une étape en console.
  • Il ne lancera pas une AMI que ce compte ne peut pas lancer.

Ne dumpez que les images que vous êtes autorisé à exécuter. Gardez les artefacts privés. Des frais logiciels Marketplace, si l'offre en comporte, ne s'accumulent que pendant que l'instance de démarrage est en cours d'exécution.

Pourquoi le chemin de lecture passe par les API directes EBS

AWS ne donne pas aux acheteurs le snapshot derrière une AMI Marketplace. copy-image et create-volume sur ce snapshot échouent. Démarrer l'AMI crée un volume que ce compte possède, et ce volume peut être snapshoté.

Un volume qui porte encore un code produit Marketplace ne peut être attaché que comme périphérique racine d'une instance arrêtée, donc l'attacher à un helper comme disque de données ne fonctionne pas. ListSnapshotBlocks + GetSnapshotBlock renvoient les octets via HTTPS sans attachement. Les blocs non alloués sont émis sous forme de zéros pour que les offsets restent corrects.

L'API directe parle CBOR avec des membres en PascalCase. Checksum est le base64 du digest brut, pas de l'hexadécimal. ebs_snapshot_read.py gère les deux.

Prérequis

  • Terraform >= 1.6, provider AWS >= 6
  • AWS CLI v2, jq, flock, et des identifiants pouvant appliquer la stack et exécuter les appels instance/snapshot/SSM/S3 ci-dessous
  • zstd uniquement pour unpack.sh
  • L'AMI visible dans la région de la stack, et un type d'instance de démarrage que l'offre autorise

Permissions opérateur utilisées par les scripts (le rôle du helper est distinct, et est créé par Terraform) :

  • ec2:DescribeImages, DescribeInstances, DescribeSnapshots, RunInstances, TerminateInstances, CreateSnapshot, DeleteSnapshot, CreateTags, RegisterImage
  • iam:PassRole sur le profil d'instance du helper
  • ssm:GetParameter, SendCommand, GetCommandInvocation, DescribeInstanceInformation
  • s3:* sur le bucket d'artefacts (get/put/list/delete/head)
  • sts:GetCallerIdentity

Démarrage rapide

cd terraform && cp terraform.tfvars.example terraform.tfvars
# edit region / name_prefix if needed — still no AMI ids
cd ..
make init && make apply && make configure

make probe AMI=ami-0123456789abcdef0
make dump  LABEL=my-image AMI=ami-0123456789abcdef0
make ls

ami-0123456789abcdef0 est un espace réservé. Remplacez-le par un identifiant d'AMI que ce compte peut lancer.

make apply crée un VPC, un groupe de sécurité egress-only, un bucket S3 et le rôle IAM du helper. Il ne démarre pas de calcul facturable sauf si helper_enabled = true. Le VPC n'a pas de NAT gateway, donc le coût au repos se limite au bucket (et celui-ci est vide tant que vous ne dumpez rien).

Acquérir une image

scripts/dump.sh --ami ami-0123456789abcdef0 --label my-image
scripts/dump.sh --ami ami-0123456789abcdef0 --label my-image --boot-type m5.2xlarge --dwell 60
scripts/dump.sh --ami ami-0123456789abcdef0 --label my-image --dry-run
scripts/dump.sh --ami ami-0123456789abcdef0 --label my-image --snapshot-id snap-0123456789abcdef0

--dry-run décrit l'AMI et affiche le plan. Il ne lance rien.

Valeurs par défaut :

FlagDefaultNotes
--boot-typem5.xlarge, ou m6g.xlarge si l'AMI est arm64Les offres rejettent souvent d'autres types. L'erreur AWS nomme ceux qu'elles autorisent.
--dwell180Secondes pendant lesquelles l'invité s'exécute avant le snapshot. 0 prend le snapshot dès que l'instance est en cours d'exécution.
--workers32Appels GetSnapshotBlock concurrents par disque.

Les labels doivent correspondre à ^[A-Za-z0-9][A-Za-z0-9._-]{0,62}$. Ils deviennent des clés S3.

Une réexécution ignore un label dont l'objet est déjà dans S3 et dont le sha256 figure dans le manifest. --force récupère à nouveau.

Plusieurs images

images.tsv, une image par ligne. Les lignes vides et les commentaires # sont ignorés. Le troisième champ est un type d'instance optionnel.

# LABEL            AMI                          BOOT_TYPE
my-image           ami-0123456789abcdef0
other-image        ami-0123456789abcdef0        m5.2xlarge
make dump-batch BATCH=images.tsv JOBS=2

--jobs N donne à chaque worker son propre slot de helper. Les mises à jour du manifest sont verrouillées avec flock. Deux processus driver distincts peuvent partager manifest.json ; donnez-leur des valeurs DUMP_STATE_DIR différentes s'ils ne doivent pas partager un fichier de slot de helper.

Conditions du Marketplace

make probe AMI=ami-0123456789abcdef0

run-instances --dry-run est gratuit. DryRunOperation signifie que le compte peut le lancer. OptInRequired signifie qu'il faut accepter cette offre dans la console AWS, puis sonder à nouveau. Ce dépôt n'acceptera pas les conditions à votre place.

Reprendre, enregistrer, conserver

  • --snapshot-id ignore le démarrage et lit un snapshot existant. Image unique uniquement.
  • --register-ami enregistre une AMI lançable dans ce compte à partir des snapshots qui viennent d'être pris, et conserve ces snapshots. Ils sont facturés au GB-mois.
  • --keep-snapshot conserve les snapshots sans enregistrer d'AMI. Le nettoyage ignore les snapshots taggés Keep=true sauf si vous passez --force.

Une fois dans S3

make ls                  # keys + manifest, no download
make watch               # in-flight helper log, multipart upload size
make pull LABELS="my-image"
make pull LABELS="my-image" RAW=1    # also write a sparse .raw
scripts/unpack.sh my-image           # partition metadata next to the raw

pull vérifie le sha256 de l'objet compressé avant d'enregistrer le label comme téléchargé. unpack écrit une image raw sparse sous artifacts/raw/ et un .diskmeta.txt (file, sfdisk, blkid, parted). Montez avec losetup -Pf --show artifacts/raw/<label>.raw.

Organisation S3

Télécharger l’outil