Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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
bucky — Ein S3-Konto-ID-Enumeration- und Bucket-Erkennungstool | Kitploit
Tools/GitHubGitHub/umair9747/bucky
OSINT (Open-Source-Intelligence)AufklärungSchwachstellenanalyseInformationsbeschaffungPenetrationstestsCloud-Sicherheit
GitHubumair9747/bucky

bucky

Ein S3-Konto-ID-Enumeration- und Bucket-Erkennungstool

Repository anzeigen
2114vor 6 MonatenVon 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

Bucky

Ein Tool zur Aufzählung von S3-Konto-IDs und zur Entdeckung von Buckets




Bei einem einzelnen zugänglichen S3-Bucket extrahiert bucky die 12-stellige AWS-Konto-ID des Besitzers und entdeckt dann weitere Buckets desselben Kontos, indem es Bucket-Namen gegen eine Wortliste fuzzt – alles in einem Befehl.

Was es macht

  1. Ermittelt die Konto-ID – Verwendet den IAM-Bedingungsschlüssel s3:ResourceAccount, um die 12-stellige AWS-Konto-ID mithilfe von Inline-STS-Sitzungsrichtlinien Ziffer für Ziffer durch Brute-Force zu ermitteln.
  2. Entdeckt weitere Buckets – Fuzzt Bucket-Namen aus einer Wortliste, um mit gleichzeitigen Arbeitern weitere Buckets des gleichen Kontos zu finden.
  3. Meldet alles – Konto-ID, Bucket-Region und alle entdeckten Buckets.

Warum das wichtig ist

S3-Bucket-Namen teilten ursprünglich einen einzigen globalen Namensraum, was zu Bucketsquatting führte – Angreifer konnten auf Namen sitzen bleiben, von denen sie erwarteten, dass Organisationen sie erstellen würden. AWS hat dies durch die Einführung kontoregionaler Namensräume behoben, einem Namensschema, das jeden Bucket an sein besitzendes Konto und seine Region bindet:

{name}-{accountID}-{region}-an

Ein Bucket namens myapp-123456789123-eu-north-1-an würde sich unter https://myapp-123456789123-eu-north-1-an.s3.eu-north-1.amazonaws.com befinden. AWS empfiehlt dieses Format jetzt für neue Buckets, auch wenn es noch nicht die Standardeinstellung ist. (Hintergrundinformationen dazu, wie der neue Namensraum Bucketsquatting beendet, finden Sie unter One Cloud Please.)

Der Nachteil ist, dass die Konto-ID und die Region nun in den Bucket-Namen selbst eingebettet sind. Sobald ein Angreifer die Konto-ID eines Ziels erlangt, kann er sie mit einer Wortliste kombinieren und systematisch gültige Bucket-URLs konstruieren – und S3 wird bestätigen, ob jeder einzelne existiert, selbst wenn der Bucket privat ist. Diese Antwort allein ist eine nützliche Aufklärung.

Bucky nutzt genau dies aus. Basierend auf Forschungsergebnissen von Pwned Labs stellt es zunächst die 12-stellige Konto-ID von jedem zugänglichen Bucket mithilfe der s3-account-search-Technik wieder her und brute-forct dann das Muster {name}-{accountID}-{region}-an, um die breitere S3-Fußabdruck des Ziels aufzudecken.

Wie die Technik funktioniert

  1. Sie erstellen eine IAM-Rolle in Ihrem eigenen AWS-Konto, die s3:ListBucket oder s3:GetObject auf dem Ziel-Bucket hat.
  2. Sie rufen sts:AssumeRole für diese Rolle auf und übergeben eine Inline-Sitzungsrichtlinie mit einer s3:ResourceAccount-Bedingung wie "1*".
  3. Wenn das besitzende Konto des Ziel-Buckets mit 1 beginnt, ist der HeadBucket-Aufruf erfolgreich; andernfalls wird 403 zurückgegeben.
  4. Wiederholen Sie dies für jede Ziffernposition (0–9), bis alle 12 Ziffern entdeckt sind.
  5. Die Inline-Sitzungsrichtlinie fungiert als Berechtigungsgrenze – sie überschneidet sich mit den Berechtigungen der Rolle, sodass Zugriff nur gewährt wird, wenn die Bedingung zutrifft.

Dies erfordert höchstens 120 API-Aufrufe (12 Positionen × 10 Ziffern) und ist normalerweise in unter einer Minute abgeschlossen.

Installation

Mit go install

go install github.com/umair9747/bucky@latest

Aus dem Quellcode

git clone https://github.com/umair9747/bucky.git
cd bucky
go build -o bucky .
sudo mv bucky /usr/local/bin/

Aktualisierung

bucky --update

Dies zieht die neueste Version aus dem Repository und installiert sie.

Voraussetzungen: IAM-Rollen einrichten

Bevor Sie bucky verwenden, benötigen Sie eine IAM-Rolle in Ihrem eigenen AWS-Konto, die auf den Ziel-S3-Bucket zugreifen kann. Der Ziel-Bucket muss öffentlich zugänglich sein oder eine Bucket-Richtlinie haben, die den Zugriff von Ihrem Konto aus erlaubt.

Schritt 1: Vertrauensrichtlinie erstellen

Erstellen Sie trust-policy.json – dies erlaubt Ihrem IAM-Benutzer, die Rolle zu übernehmen:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Ersetzen Sie <YOUR_ACCOUNT_ID> durch Ihre 12-stellige AWS-Konto-ID. Sie können den Prinzipal auf eine bestimmte IAM-Benutzer- oder Rollen-ARN anstelle von :root eingrenzen.

Schritt 2: Berechtigungsrichtlinie erstellen

Erstellen Sie s3-policy.json – die Rolle benötigt breiten S3-Lesezugriff (die s3:ResourceAccount-Bedingung in buckys Inline-Sitzungsrichtlinie übernimmt die Kontofilterung):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": "*"
    }
  ]
}

Schritt 3: Rolle erstellen

aws iam create-role \
  --role-name bucky-role \
  --assume-role-policy-document file://trust-policy.json

aws iam put-role-policy \
  --role-name bucky-role \
  --policy-name S3ReadAccess \
  --policy-document file://s3-policy.json

Schritt 4: Rollen-ARN abrufen

aws iam get-role --role-name bucky-role --query 'Role.Arn' --output text
# Ausgabe: arn:aws:iam::123456789012:role/bucky-role

Schritt 5: AssumeRole-Berechtigung sicherstellen

Wenn Ihr IAM-Benutzer noch nicht über die sts:AssumeRole-Berechtigung verfügt, fügen Sie sie hinzu:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::<YOUR_ACCOUNT_ID>:role/bucky-role"
    }
  ]
}

Verwendung

Vollständiger Workflow (Standard)

Die primäre Art, bucky zu verwenden – Konto-ID aus einem bekannten Bucket ermitteln und dann in einem Durchgang nach weiteren Buckets fuzzen:

bucky \
  --role-arn arn:aws:iam::123456789012:role/bucky-role \
  --bucket target-bucket \
  --wordlist wordlists/default.txt \
  --access-key AKIA... \
  --secret-key wJal...

Mit einem bekannten Objektschlüssel (verbessert die Zuverlässigkeit):

bucky \
  --role-arn arn:aws:iam::123456789012:role/bucky-role \
  --bucket s3://target-bucket/index.html \
  --wordlist wordlists/default.txt \
  --workers 20

Mehrere Buckets (kommasepariert):

bucky \
  --role-arn arn:aws:iam::123456789012:role/bucky-role \
  --bucket bucket1,bucket2,bucket3 \
  --wordlist wordlists/default.txt

Mehrere Buckets aus einer Datei:

bucky \
  --role-arn arn:aws:iam::123456789012:role/bucky-role \
  --bucket-file targets.txt \
  --wordlist wordlists/default.txt

Ergebnisse als JSON speichern:

bucky --bucket target-bucket --wordlist wordlists/default.txt --json
bucky --bucket target-bucket --wordlist wordlists/default.txt --json --output results.json

Ausgabe:

=== Phase 1: Konten-ID-Ermittlung ===
[*] Überprüfe Zugriff auf Bucket: target-bucket
[+] Zugriff bestätigt
[+] Bucket-Region: us-west-2
[*] Ermittle Konto-ID...
  [██████████████████████████████] 12/12 | 675351422352

[+] Konto-ID: 675351422352

=== Phase 2: Bucket-Entdeckung ===
[*] Fuzze Buckets für Konto: 675351422352
[*] 312 Kandidaten aus Wortliste geladen
[+] GEFUNDEN: target-backups
[+] GEFUNDEN: target-logs
  [██████████████████████████████] 312/312 | 2 gefunden

=== Zusammenfassung ===
Konto-ID  : 675351422352
Quelle    : target-bucket
Region    : us-west-2
Entdeckt  : 2 weitere Buckets
             - target-backups
             - target-logs

Nur Ermitteln

Tool herunterladen