Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
aws-firmware-dump — एक AWS AMI के EBS डिस्क्स को प्राप्त करता है जिसे आप लॉन्च कर सकते हैं, EBS direct APIs के माध्यम से snapshots को sha256 manifests और वैकल्पिक raw image unpacking के साथ एक private S3 bucket में स्ट्रीम करता है। | Kitploit
उपकरण/GitHubGitHub/radkawar/aws-firmware-dump
क्लाउड इन्फ्रास्ट्रक्चर सुरक्षाडिस्क फोरेंसिकस्क्रिप्टिंग और स्वचालनफोरेंसिकजानकारी एकत्र करनाडेटा रिकवरीक्लाउड सुरक्षाउपयोगिताएँ और फ्रेमवर्क
GitHubradkawar/aws-firmware-dump

aws-firmware-dump

एक AWS AMI के EBS डिस्क्स को प्राप्त करता है जिसे आप लॉन्च कर सकते हैं, EBS direct APIs के माध्यम से snapshots को sha256 manifests और वैकल्पिक raw image unpacking के साथ एक private S3 bucket में स्ट्रीम करता है।

15161 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
रिपॉजिटरी देखें
साझा करें

aws-firmware-dump

एक AMI की डिस्क्स को एक private S3 bucket में acquire करें, जिसे आप पहले से ही launch कर सकते हैं। कोई catalog नहीं, कोई product list नहीं, कोई baked-in AMI ids नहीं। आप AMI id पास करते हैं।

S3 store है। Boot, snapshot, compress, और upload सब AWS के अंदर चलते हैं। Local bandwidth का उपयोग केवल तब होता है जब आप बाद में कोई specific object pull करते हैं।

यह क्या करता है

graph LR
  A[AMI you supply] -->|run-instances| B[boot instance]
  B -->|every EBS disk| C[snapshots you own]
  C --> D[terminate boot instance]
  C -->|ListSnapshotBlocks / GetSnapshotBlock| E[helper]
  E -->|raw then zstd| F[(S3 golden store)]
  F -->|optional pull| G[local artifacts]
  1. इस stack के VPC में AMI launch करें। कोई SSH नहीं, कोई key pair नहीं, कोई inbound ports नहीं।
  2. उस instance पर हर EBS volume (root और data disks) का snapshot लें, फिर उसे terminate करें। Snapshots पहले लिए जाते हैं क्योंकि marketplace images आमतौर पर DeleteOnTermination set करती हैं।
  3. एक छोटा Amazon Linux helper उन snapshots को EBS direct APIs के माध्यम से पढ़ता है और raw | zstd | aws s3 cp - stream करता है। कोई volume create या attach नहीं होता।
  4. Compressed stream का sha256 plus AMI name, owner, architecture, और product codes manifest.json में record करें।

यह क्या नहीं करता

  • यह AMIs खोजता नहीं, आपको किसी listing में subscribe नहीं करता, या कोई target नहीं चुनता।
  • यह किसी AMI को regions के across copy नहीं करता। AMI पहले से region में मौजूद होनी चाहिए।
  • यह Marketplace terms accept नहीं करता। OptInRequired एक console step है।
  • यह ऐसी AMI launch नहीं करेगा जिसे यह account launch नहीं कर सकता।

केवल उन्हीं images को dump करें जिन्हें चलाने का आपको अधिकार है। Artifacts को private रखें। एक Marketplace software fee, यदि listing में है, तो केवल तब तक accrues होती है जब तक boot instance चल रहा हो।

Read path EBS direct APIs क्यों है

AWS buyers को Marketplace AMI के पीछे का snapshot नहीं देता। उस snapshot के विरुद्ध copy-image और create-volume fail होते हैं। AMI को boot करने से एक volume बनता है जो इस account के स्वामित्व में है, और उस volume का snapshot लिया जा सकता है।

जिस volume पर अभी भी Marketplace product code हो, उसे केवल एक stopped instance के root device के रूप में attach किया जा सकता है, इसलिए इसे helper पर data disk के रूप में attach करना काम नहीं करता। ListSnapshotBlocks + GetSnapshotBlock bytes को HTTPS पर बिना attach के return करते हैं। Unallocated blocks को zeros के रूप में emit किया जाता है ताकि offsets सही रहें।

Direct API CBOR को PascalCase members के साथ बोलती है। Checksum raw digest का base64 है, hex नहीं। ebs_snapshot_read.py दोनों को handle करता है।

Prerequisites

  • Terraform >= 1.6, AWS provider >= 6
  • AWS CLI v2, jq, flock, और ऐसे credentials जो stack apply कर सकें और नीचे दिए गए instance/snapshot/SSM/S3 calls चला सकें
  • zstd केवल unpack.sh के लिए
  • AMI stack के region में visible हो, और एक boot instance type जिसे listing allow करती हो

Scripts द्वारा उपयोग की जाने वाली Operator permissions (helper role अलग है, और Terraform द्वारा create किया जाता है):

  • ec2:DescribeImages, DescribeInstances, DescribeSnapshots, RunInstances, TerminateInstances, CreateSnapshot, DeleteSnapshot, CreateTags, RegisterImage
  • helper instance profile पर iam:PassRole
  • ssm:GetParameter, SendCommand, GetCommandInvocation, DescribeInstanceInformation
  • artifact bucket पर s3:* (get/put/list/delete/head)
  • sts:GetCallerIdentity

Quickstart

cd terraform && cp terraform.tfvars.example terraform.tfvars
# edit region / name_prefix if needed — still no AMI ids
cd ..
make init && make apply && make configure

make probe AMI=ami-0123456789abcdef0
make dump  LABEL=my-image AMI=ami-0123456789abcdef0
make ls

ami-0123456789abcdef0 एक placeholder है। इसे उस AMI id से replace करें जिसे यह account launch कर सकता है।

make apply एक VPC, एक egress-only security group, एक S3 bucket, और helper IAM role create करता है। यह billable compute start नहीं करता जब तक helper_enabled = true न हो। VPC में कोई NAT gateway नहीं है, इसलिए idle cost केवल bucket है (और वह खाली है जब तक आप कुछ dump नहीं करते)।

एक image acquire करना

scripts/dump.sh --ami ami-0123456789abcdef0 --label my-image
scripts/dump.sh --ami ami-0123456789abcdef0 --label my-image --boot-type m5.2xlarge --dwell 60
scripts/dump.sh --ami ami-0123456789abcdef0 --label my-image --dry-run
scripts/dump.sh --ami ami-0123456789abcdef0 --label my-image --snapshot-id snap-0123456789abcdef0

--dry-run AMI describe करता है और plan print करता है। यह launch नहीं करता।

Defaults:

FlagDefaultNotes
--boot-typem5.xlarge, या m6g.xlarge यदि AMI arm64 हैListings अक्सर अन्य types reject करती हैं। AWS error उन्हें name करता है जिन्हें वे allow करती हैं।
--dwell180Snapshot से पहले guest कितने seconds चलता है। 0 instance के running होते ही snapshot लेता है।
--workers32प्रति disk concurrent GetSnapshotBlock calls।

Labels को ^[A-Za-z0-9][A-Za-z0-9._-]{0,62}$ से match करना चाहिए। वे S3 keys बन जाते हैं।

एक re-run उस label को skip करता है जिसका object पहले से S3 में है और जिसका sha256 manifest में है। --force फिर से fetch करता है।

कई images

images.tsv, प्रति line एक image। Blank lines और # comments ignore किए जाते हैं। तीसरा field एक optional instance type है।

# LABEL            AMI                          BOOT_TYPE
my-image           ami-0123456789abcdef0
other-image        ami-0123456789abcdef0        m5.2xlarge
make dump-batch BATCH=images.tsv JOBS=2

--jobs N प्रत्येक worker को उसका अपना helper slot देता है। Manifest updates flock के साथ locked हैं। दो अलग driver processes manifest.json share कर सकते हैं; उन्हें अलग DUMP_STATE_DIR values दें यदि उन्हें helper slot file share नहीं करनी है।

Marketplace terms

make probe AMI=ami-0123456789abcdef0

run-instances --dry-run free है। DryRunOperation का मतलब है कि account इसे launch कर सकता है। OptInRequired का मतलब है कि AWS console में उस listing को accept करें, फिर दोबारा probe करें। यह repo आपके लिए terms accept नहीं करेगा।

Resume, register, keep

  • --snapshot-id boot skip करता है और एक existing snapshot पढ़ता है। केवल single image।
  • --register-ami अभी लिए गए snapshots से इस account में एक launchable AMI register करता है, और उन snapshots को रखता है। उनका बिल per GB-month होता है।
  • --keep-snapshot snapshots को बिना AMI register किए रखता है। Cleanup Keep=true tagged snapshots को skip करता है जब तक आप --force पास न करें।

S3 में आने के बाद

make ls                  # keys + manifest, no download
make watch               # in-flight helper log, multipart upload size
make pull LABELS="my-image"
make pull LABELS="my-image" RAW=1    # also write a sparse .raw
scripts/unpack.sh my-image           # partition metadata next to the raw

pull label को downloaded record करने से पहले compressed object का sha256 check करता है। unpack artifacts/raw/ के अंतर्गत एक sparse raw image और एक .diskmeta.txt (file, sfdisk, blkid, parted) लिखता है। Mount करें losetup -Pf --show artifacts/raw/<label>.raw के साथ।

S3 layout

s3://<bucket>/
  golden/<label>/<label>.raw.zst
  golden/<label>/<label>.raw.zst.sha256    # checksum of the compressed stream
  golden/<label>/<label>.stats.json
  golden/<label>/<label>.<device>.raw.zst  # extra disks, root is the unsuffixed object
  _scripts/snapshot_to_s3.sh
  _scripts/ebs_snapshot_read.py
  _status/<label>.json                     # expires after 7 days
  _logs/<label>.log                        # expires

golden/ में कोई lifecycle expiry नहीं है। Incomplete multipart uploads 3 दिन बाद abort कर दिए जाते हैं। terraform destroy bucket delete करता है (force_destroy = true), golden/ सहित।

manifest.json (local, gitignored) index है: AMI id, name, owner, architecture, product codes, per-disk keys, sha256, sizes, fetch time।

टूल डाउनलोड करें