Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
s3tk — Ein Sicherheitstoolkit für Amazon S3 | Kitploit
Tools/GitHubGitHub/ankane/s3tk
Cloud-Infrastruktur-SicherheitSchwachstellenscannerVerschlüsselungs-/EntschlüsselungstoolsKonfigurationsprüfungCloud-SicherheitFehlkonfiguration
GitHubankane/s3tk

s3tk

Ein Sicherheitstoolkit für Amazon S3

Repository anzeigen
45927vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

s3tk

Ein Sicherheits-Toolkit für Amazon S3

Screenshot

🍊 Kampferprobt bei Instacart

Installation

Ausführen:

root@kitploit:~
pip install s3tk

Sie können die AWS CLI oder AWS Vault verwenden, um Ihre AWS-Anmeldeinformationen einzurichten:

root@kitploit:~
pip install awscli
aws configure

Siehe IAM-Richtlinien, die für jeden Befehl benötigt werden.

Befehle

Scan

Scannen Sie Ihre Buckets auf:

  • ACL öffentlich lesbar
  • Richtlinie öffentlich lesbar
  • öffentlicher Zugriff blockiert
  • Logging aktiviert
  • Versionierung aktiviert
  • Standardverschlüsselung aktiviert
root@kitploit:~
s3tk scan

Nur auf bestimmten Buckets ausführen

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

Funktioniert auch mit Platzhaltern

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

Bestätigen Sie das richtige Log-Bucket(s) und Präfix

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

CloudTrail Object-Level-Logging prüfen [experimentell]

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

Logging, Versionierung oder Standardverschlüsselung überspringen

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

E-Mail-Benachrichtigungen bei Fehlern erhalten (über SNS)

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

List Policy

Bucket-Richtlinien auflisten

root@kitploit:~
s3tk list-policy

Nur auf bestimmten Buckets ausführen

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

Benannte Anweisungen anzeigen

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

Set Policy

Hinweis: Dies ersetzt die vorherige Richtlinie

Nur private Uploads

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

Delete Policy

Richtlinie löschen

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

Block Public Access

Öffentlichen Zugriff auf bestimmte Buckets blockieren

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

Verwenden Sie den --dry-run-Flag zum Testen

Enable Logging

Logging für alle Buckets aktivieren

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

Nur auf bestimmten Buckets

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

Log-Präfix festlegen (Standard: {bucket}/)

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

Verwenden Sie den --dry-run-Flag zum Testen

Einige Hinweise zum Logging:

  • Buckets, bei denen Logging bereits aktiviert ist, werden überhaupt nicht aktualisiert
  • Das Log-Bucket muss sich in derselben Region wie das Quell-Bucket befinden – führen Sie diesen Befehl mehrmals für verschiedene Regionen aus
  • Es kann über eine Stunde dauern, bis Logs angezeigt werden

Enable Versioning

Versionierung für alle Buckets aktivieren

root@kitploit:~
s3tk enable-versioning

Nur auf bestimmten Buckets

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

Verwenden Sie den --dry-run-Flag zum Testen

Enable Default Encryption

Standardverschlüsselung für alle Buckets aktivieren

root@kitploit:~
s3tk enable-default-encryption

Nur auf bestimmten Buckets

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

Dies verschlüsselt keine vorhandenen Objekte – verwenden Sie dafür den Befehl encrypt

Verwenden Sie den --dry-run-Flag zum Testen

Scan Object ACL

ACL aller Objekte in einem Bucket scannen

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

Nur bestimmte Objekte

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

Bestimmte Objekte ausschließen

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

Reset Object ACL

ACL aller Objekte in einem Bucket zurücksetzen

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

Dies macht alle Objekte privat. Siehe Bucket-Richtlinien für die Durchsetzung in Zukunft.

Verwenden Sie den --dry-run-Flag zum Testen

Geben Sie bestimmte Objekte auf die gleiche Weise wie bei scan-object-acl an

Encrypt

Alle Objekte in einem Bucket mit Server-seitiger Verschlüsselung verschlüsseln

root@kitploit:~
s3tk encrypt my-bucket

Standardmäßig werden S3-verwaltete Schlüssel verwendet. Für KMS-verwaltete Schlüssel verwenden Sie:

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

Für vom Kunden bereitgestellte Schlüssel verwenden Sie:

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

Verwenden Sie den --dry-run-Flag zum Testen

Geben Sie bestimmte Objekte auf die gleiche Weise wie bei scan-object-acl an

Hinweis: Objekte verlieren dabei benutzerdefinierte ACLs

Delete Unencrypted Versions

Alle unverschlüsselten Versionen von Objekten in einem Bucket löschen

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

Aus Sicherheitsgründen werden keine aktuellen Versionen von Objekten gelöscht

Verwenden Sie den --dry-run-Flag zum Testen

Geben Sie bestimmte Objekte auf die gleiche Weise wie bei scan-object-acl an

Scan DNS

Route 53 auf Buckets scannen, um sicherzustellen, dass Sie sie besitzen

root@kitploit:~
s3tk scan-dns

Andernfalls könnten Sie anfällig für Subdomain-Übernahme sein

Anmeldeinformationen

Anmeldeinformationen können in ~/.aws/credentials oder mit Umgebungsvariablen angegeben werden. Siehe diese Anleitung für eine Erklärung der Umgebungsvariablen.

Sie können ein zu verwendendes Profil mit folgendem Befehl angeben:

root@kitploit:~
AWS_PROFILE=your-profile s3tk

IAM-Richtlinien

Hier sind die Berechtigungen, die für jeden Befehl benötigt werden. Fügen Sie nur die Anweisungen hinzu, die Sie benötigen.

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/*"
            ]
        }
    ]
}

Zugriffslogs

Amazon Athena eignet sich hervorragend zum Abfragen von S3-Logs. Erstellen Sie eine Tabelle und fragen Sie los:

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-Logs

Amazon Athena eignet sich auch hervorragend zum Abfragen von CloudTrail-Logs. Erstellen Sie eine Tabelle und fragen Sie los:

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

Best Practices

Halten Sie die Dinge einfach und befolgen Sie das Prinzip der minimalen Rechte, um die Wahrscheinlichkeit von Fehlern zu verringern.

  • Beschränken Sie streng, wer Bucket-bezogene Operationen durchführen kann
  • Vermeiden Sie es, Objekte mit unterschiedlichen Berechtigungen im selben Bucket zu mischen (verwenden Sie eine Bucket-Richtlinie, um dies durchzusetzen)
  • Legen Sie keine öffentlichen Leseberechtigungen auf Bucket-Ebene fest (kein GetObject in der Bucket-Richtlinie)
  • Überwachen Sie die Konfiguration häufig auf Änderungen

Bucket-Richtlinien

Nur private Uploads

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

Leistung

Führen Sie für Befehle, die über Bucket-Objekte iterieren (scan-object-acl, reset-object-acl, encrypt und delete-unencrypted-versions), s3tk auf einem EC2-Server aus, um minimale Latenz zu erreichen.

Hinweise

Die Befehle set-policy, block-public-access, enable-logging, enable-versioning und enable-default-encryption werden aus Gründen der Bequemlichkeit bereitgestellt. Wir empfehlen Terraform für die Verwaltung Ihrer Buckets.

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
}

Upgrade

Ausführen:

root@kitploit:~
pip install s3tk --upgrade

Um master zu verwenden, führen Sie Folgendes aus:

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

Docker

Ausführen:

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

Übergeben Sie Ihre Anmeldeinformationen:

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

Und führen Sie aus:

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

Verlauf

Siehe Changelog

Mitwirken

Jeder ist eingeladen, zur Verbesserung dieses Projekts beizutragen. Hier sind einige Möglichkeiten, wie Sie helfen können:

  • Fehler melden
  • Fehler beheben und Pull Requests einreichen
  • Dokumentation schreiben, präzisieren oder korrigieren
  • Neue Funktionen vorschlagen oder hinzufügen

Um mit der Entwicklung zu beginnen:

root@kitploit:~
git clone https://github.com/ankane/s3tk.git
cd s3tk
pip install --group dev
Tool herunterladen