AWS - EBS Snapshot Dump

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Перевірка знімка локально

# 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

Для отримання додаткової інформації про цей метод перевірте оригінальне дослідження за посиланням 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 під вашим керівництвом (вона повинна бути в тій же області, що й копія резервної копії):

Крок 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)

```bash aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snapshot-id

Attach new volume to instance

aws ec2 attach-volume --device /dev/sdh --instance-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

### Тіньова копія

Будь-який користувач AWS, який має дозвіл **`EC2:CreateSnapshot`**, може вкрасти хеші всіх користувачів домену, створивши **знімок контролера домену**, монтувавши його на керований ним екземпляр та **експортуючи файли реєстру NTDS.dit та SYSTEM** для використання з проектом secretsdump від Impacket.

Ви можете використовувати цей інструмент для автоматизації атаки: [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) або ви можете використати одну з попередніх технік після створення знімка.


# Посилання
* https://devopscube.com/mount-ebs-volume-ec2-instance/

Last updated