Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
s3tk — Amazon S3 के लिए एक सुरक्षा टूलकिट | Kitploit
उपकरण/GitHubGitHub/ankane/s3tk
क्लाउड इन्फ्रास्ट्रक्चर सुरक्षाभेद्यता स्कैनरएन्क्रिप्शन/डिक्रिप्शन उपकरणकॉन्फ़िगरेशन ऑडिटिंगक्लाउड सुरक्षागलत कॉन्फ़िगरेशन
GitHubankane/s3tk

s3tk

Amazon S3 के लिए एक सुरक्षा टूलकिट

रिपॉजिटरी देखें
459271 महीना पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

s3tk

Amazon S3 के लिए एक सुरक्षा टूलकिट

Screenshot

🍊 Instacart पर युद्ध-परीक्षित

स्थापना

चलाएँ:

root@kitploit:~
pip install s3tk

आप अपने AWS क्रेडेंशियल्स सेट करने के लिए AWS CLI या AWS Vault का उपयोग कर सकते हैं:

root@kitploit:~
pip install awscli
aws configure

प्रत्येक कमांड के लिए आवश्यक IAM नीतियाँ देखें।

कमांड्स

स्कैन

अपने बकेट को स्कैन करें:

  • सार्वजनिक के लिए खोली गई ACL
  • सार्वजनिक के लिए खोली गई नीति
  • सार्वजनिक पहुँच अवरुद्ध
  • लॉगिंग सक्षम
  • वर्शनिंग सक्षम
  • डिफ़ॉल्ट एन्क्रिप्शन सक्षम
root@kitploit:~
s3tk scan

केवल विशिष्ट बकेट पर चलाएँ

root@kitploit:~
s3tk scan my-bucket my-bucket-2

वाइल्डकार्ड के साथ भी काम करता है

root@kitploit:~
s3tk scan "my-bucket*"

सही लॉग बकेट और प्रीफिक्स की पुष्टि करें

root@kitploit:~
s3tk scan --log-bucket my-s3-logs --log-bucket other-region-logs --log-prefix "{bucket}/"

CloudTrail ऑब्जेक्ट-स्तरीय लॉगिंग जाँचें [प्रायोगिक]

root@kitploit:~
s3tk scan --object-level-logging

लॉगिंग, वर्शनिंग, या डिफ़ॉल्ट एन्क्रिप्शन छोड़ें

root@kitploit:~
s3tk scan --skip-logging --skip-versioning --skip-default-encryption

विफलताओं की ईमेल सूचनाएँ प्राप्त करें (SNS के माध्यम से)

root@kitploit:~
s3tk scan --sns-topic arn:aws:sns:...

नीति सूची

बकेट नीतियाँ सूचीबद्ध करें

root@kitploit:~
s3tk list-policy

केवल विशिष्ट बकेट पर चलाएँ

root@kitploit:~
s3tk list-policy my-bucket my-bucket-2

नामित कथन दिखाएँ

root@kitploit:~
s3tk list-policy --named

नीति सेट करें

नोट: यह पिछली नीति को बदलता है

केवल निजी अपलोड

root@kitploit:~
s3tk set-policy my-bucket --no-object-acl

नीति हटाएँ

नीति हटाएँ

root@kitploit:~
s3tk delete-policy my-bucket

सार्वजनिक पहुँच ब्लॉक करें

विशिष्ट बकेट पर सार्वजनिक पहुँच ब्लॉक करें

root@kitploit:~
s3tk block-public-access my-bucket my-bucket-2

परीक्षण के लिए --dry-run फ़्लैग का उपयोग करें

लॉगिंग सक्षम करें

सभी बकेट पर लॉगिंग सक्षम करें

root@kitploit:~
s3tk enable-logging --log-bucket my-s3-logs

केवल विशिष्ट बकेट पर

root@kitploit:~
s3tk enable-logging my-bucket my-bucket-2 --log-bucket my-s3-logs

लॉग प्रीफिक्स सेट करें (डिफ़ॉल्ट {bucket}/)

root@kitploit:~
s3tk enable-logging --log-bucket my-s3-logs --log-prefix "logs/{bucket}/"

परीक्षण के लिए --dry-run फ़्लैग का उपयोग करें

लॉगिंग के बारे में कुछ नोट्स:

  • जिन बकेट पर पहले से लॉगिंग सक्षम है, उन्हें बिल्कुल अपडेट नहीं किया जाता
  • लॉग बकेट स्रोत बकेट के समान क्षेत्र में होना चाहिए - विभिन्न क्षेत्रों के लिए इस कमांड को कई बार चलाएँ
  • लॉग दिखने में एक घंटे से अधिक समय लग सकता है

वर्शनिंग सक्षम करें

सभी बकेट पर वर्शनिंग सक्षम करें

root@kitploit:~
s3tk enable-versioning

केवल विशिष्ट बकेट पर

root@kitploit:~
s3tk enable-versioning my-bucket my-bucket-2

परीक्षण के लिए --dry-run फ़्लैग का उपयोग करें

डिफ़ॉल्ट एन्क्रिप्शन सक्षम करें

सभी बकेट पर डिफ़ॉल्ट एन्क्रिप्शन सक्षम करें

root@kitploit:~
s3tk enable-default-encryption

केवल विशिष्ट बकेट पर

root@kitploit:~
s3tk enable-default-encryption my-bucket my-bucket-2

यह मौजूदा ऑब्जेक्ट्स को एन्क्रिप्ट नहीं करता - इसके लिए encrypt कमांड का उपयोग करें

परीक्षण के लिए --dry-run फ़्लैग का उपयोग करें

ऑब्जेक्ट ACL स्कैन करें

एक बकेट में सभी ऑब्जेक्ट्स पर ACL स्कैन करें

root@kitploit:~
s3tk scan-object-acl my-bucket

केवल कुछ ऑब्जेक्ट्स

root@kitploit:~
s3tk scan-object-acl my-bucket --only "*.pdf"

कुछ ऑब्जेक्ट्स को छोड़कर

root@kitploit:~
s3tk scan-object-acl my-bucket --except "*.jpg"

ऑब्जेक्ट ACL रीसेट करें

एक बकेट में सभी ऑब्जेक्ट्स पर ACL रीसेट करें

root@kitploit:~
s3tk reset-object-acl my-bucket

यह सभी ऑब्जेक्ट्स को निजी बनाता है। आगे लागू करने के लिए बकेट नीतियाँ देखें।

परीक्षण के लिए --dry-run फ़्लैग का उपयोग करें

कुछ ऑब्जेक्ट्स को उसी तरह निर्दिष्ट करें जैसे scan-object-acl में

एन्क्रिप्ट करें

एक बकेट में सभी ऑब्जेक्ट्स को सर्वर-साइड एन्क्रिप्शन के साथ एन्क्रिप्ट करें

root@kitploit:~
s3tk encrypt my-bucket

डिफ़ॉल्ट रूप से S3-प्रबंधित कुंजियाँ का उपयोग करें। KMS-प्रबंधित कुंजियों के लिए, उपयोग करें:

root@kitploit:~
s3tk encrypt my-bucket --kms-key-id arn:aws:kms:...

ग्राहक-प्रदत्त कुंजियों के लिए, उपयोग करें:

root@kitploit:~
s3tk encrypt my-bucket --customer-key secret-key

परीक्षण के लिए --dry-run फ़्लैग का उपयोग करें

कुछ ऑब्जेक्ट्स को उसी तरह निर्दिष्ट करें जैसे scan-object-acl में

नोट: ऑब्जेक्ट्स किसी भी कस्टम ACL को खो देंगे

अनएन्क्रिप्टेड वर्शन हटाएँ

एक बकेट में ऑब्जेक्ट्स के सभी अनएन्क्रिप्टेड वर्शन हटाएँ

root@kitploit:~
s3tk delete-unencrypted-versions my-bucket

सुरक्षा के लिए, यह ऑब्जेक्ट्स के किसी भी वर्तमान वर्शन को नहीं हटाएगा

परीक्षण के लिए --dry-run फ़्लैग का उपयोग करें

कुछ ऑब्जेक्ट्स को उसी तरह निर्दिष्ट करें जैसे scan-object-acl में

DNS स्कैन करें

बकेट के लिए Route 53 स्कैन करें ताकि सुनिश्चित हो सके कि आप उनके मालिक हैं

root@kitploit:~
s3tk scan-dns

अन्यथा, आप सबडोमेन टेकओवर के प्रति संवेदनशील हो सकते हैं

क्रेडेंशियल्स

क्रेडेंशियल्स ~/.aws/credentials में या पर्यावरण चर के साथ निर्दिष्ट किए जा सकते हैं। पर्यावरण चरों की व्याख्या के लिए यह मार्गदर्शिका देखें।

आप इसके साथ उपयोग करने के लिए एक प्रोफ़ाइल निर्दिष्ट कर सकते हैं:

root@kitploit:~
AWS_PROFILE=your-profile s3tk

IAM नीतियाँ

यहाँ प्रत्येक कमांड के लिए आवश्यक अनुमतियाँ दी गई हैं। केवल उन कथनों को शामिल करें जिनकी आपको आवश्यकता है।

root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Scan",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketAcl",
                "s3:GetBucketPolicy",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetBucketLogging",
                "s3:GetBucketVersioning",
                "s3:GetEncryptionConfiguration"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ScanObjectLevelLogging",
            "Effect": "Allow",
            "Action": [
                "cloudtrail:ListTrails",
                "cloudtrail:GetTrail",
                "cloudtrail:GetEventSelectors",
                "s3:GetBucketLocation"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ScanDNS",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "route53:ListHostedZones",
                "route53:ListResourceRecordSets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListPolicy",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SetPolicy",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeletePolicy",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "BlockPublicAccess",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:PutBucketPublicAccessBlock"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EnableLogging",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:PutBucketLogging"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EnableVersioning",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:PutBucketVersioning"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EnableDefaultEncryption",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:PutEncryptionConfiguration"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ResetObjectAcl",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObjectAcl",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ]
        },
        {
            "Sid": "Encrypt",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ]
        },
        {
            "Sid": "DeleteUnencryptedVersions",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketVersions",
                "s3:GetObjectVersion",
                "s3:DeleteObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ]
        }
    ]
}

एक्सेस लॉग्स

S3 लॉग्स को क्वेरी करने के लिए Amazon Athena बहुत अच्छा है। एक तालिका बनाएँ और क्वेरी करें:

root@kitploit:~
SELECT
    parse_datetime(requestdatetime, 'dd/MMM/yyyy:HH:mm:ss Z') AS time,
    key,
    remoteip,
    useragent
FROM
    s3_access_logs_db.mybucket_logs
WHERE
    requester = '-'
    AND httpstatus LIKE '2%'
    AND key LIKE 'some-keys%'
ORDER BY 1

CloudTrail लॉग्स

Amazon Athena CloudTrail लॉग्स को क्वेरी करने के लिए भी बहुत अच्छा है। एक तालिका बनाएँ और क्वेरी करें:

root@kitploit:~
SELECT
    eventtime,
    eventname,
    useridentity.username,
    requestparameters
FROM
    cloudtrail_logs
WHERE
    eventname LIKE '%Bucket%'
ORDER BY 1

सर्वोत्तम अभ्यास

चीजों को सरल रखें और गलतियों की संभावना कम करने के लिए न्यूनतम विशेषाधिकार के सिद्धांत का पालन करें।

  • बकेट-संबंधी संचालन करने की अनुमति रखने वालों को सख्ती से सीमित करें
  • एक ही बकेट में विभिन्न अनुमतियों वाली ऑब्जेक्ट्स को मिलाने से बचें (इसे लागू करने के लिए बकेट नीति का उपयोग करें)
  • बकेट स्तर पर सार्वजनिक पढ़ने की अनुमति निर्दिष्ट न करें (बकेट नीति में कोई GetObject नहीं)
  • बदलावों के लिए बार-बार कॉन्फ़िगरेशन की निगरानी करें

बकेट नीतियाँ

केवल निजी अपलोड

root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObjectAcl",
            "Resource": "arn:aws:s3:::my-bucket/*"
        }
    ]
}

प्रदर्शन

बकेट ऑब्जेक्ट्स पर पुनरावृत्ति करने वाले कमांड्स (scan-object-acl, reset-object-acl, encrypt, और delete-unencrypted-versions) के लिए, न्यूनतम विलंबता के लिए s3tk को EC2 सर्वर पर चलाएँ।

नोट्स

set-policy, block-public-access, enable-logging, enable-versioning, और enable-default-encryption कमांड्स सुविधा के लिए प्रदान किए गए हैं। हम आपके बकेट प्रबंधन के लिए Terraform की सलाह देते हैं।

root@kitploit:~
resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-bucket"
  acl    = "private"

  logging {
    target_bucket = "my-s3-logs"
    target_prefix = "my-bucket/"
  }

  versioning {
    enabled = true
  }
}

resource "aws_s3_bucket_public_access_block" "my_bucket" {
  bucket = "${aws_s3_bucket.my_bucket.id}"

  block_public_acls       = true
  block_public_policy     = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}

अपग्रेड करना

चलाएँ:

root@kitploit:~
pip install s3tk --upgrade

master का उपयोग करने के लिए, चलाएँ:

root@kitploit:~
pip install git+https://github.com/ankane/s3tk.git --upgrade

Docker

चलाएँ:

root@kitploit:~
docker run -it ankane/s3tk aws configure

अपने क्रेडेंशियल्स को कमिट करें:

root@kitploit:~
docker commit $(docker ps -l -q) my-s3tk

और चलाएँ:

root@kitploit:~
docker run -it my-s3tk s3tk scan

इतिहास

चेंजलॉग देखें

योगदान

सभी को इस परियोजना को बेहतर बनाने में मदद करने के लिए प्रोत्साहित किया जाता है। यहाँ कुछ तरीके हैं जिनसे आप मदद कर सकते हैं:

  • बग रिपोर्ट करें
  • बग फिक्स करें और पुल रिक्वेस्ट सबमिट करें
  • दस्तावेज़ीकरण लिखें, स्पष्ट करें या ठीक करें
  • नई सुविधाओं का सुझाव दें या जोड़ें

डेवलपमेंट शुरू करने के लिए:

root@kitploit:~
git clone https://github.com/ankane/s3tk.git
cd s3tk
pip install --group dev
टूल डाउनलोड करें