
Yandex, VK, Selectel, Sber, Alibaba, Tencent, Huawei, Baidu 전반의 퍼블릭 클라우드 오브젝트 스토리지 엔드포인트를 스캔하여 목록 조회 가능한 버킷과 노출된 오브젝트를 찾습니다.
승인된 보안 테스트, 버그 바운티 작업, 그리고 본인이 소유한 인프라를 위한 클라우드 객체 스토리지 노출 스캐너입니다.
BucketBuster는 후보 버킷 이름을 Yandex Cloud, VK Cloud, Selectel, SberCloud, Alibaba OSS, Tencent COS, Huawei OBS, Baidu BOS의 공개 엔드포인트에 대해 검사합니다. 공개적으로 목록 조회가 가능한 버킷을 식별하고, 인증서 관련 객체 이름을 매칭하며, 선택적으로 공개 접근 가능한 객체를 HTTP GET으로 다운로드할 수 있습니다.
승인 필요: 본 도구는 본인이 소유하거나 테스트에 대한 명시적 허가를 받은 자산에만 사용하십시오. 제3자 버킷을 스캔하거나 데이터를 다운로드하는 것은 불법일 수 있습니다. 관련 법률, 계약, 버그 바운티 규칙, 그리고 제공자 정책을 준수할 책임은 사용자에게 있습니다.
git clone <repository-url>
cd bucketbuster
python -m venv .venv
가상 환경 활성화:
# Linux/macOS
source .venv/bin/activate
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
의존성 설치:
python -m pip install -r requirements.txt
buckets.txt와 같은 워드리스트를 생성합니다:
example-company
example-company-backup
example-company-documents
기본 제공자 집합인 Yandex Cloud와 VK Cloud를 실행합니다:
python bucketbuster.py --wordlist buckets.txt
스캐너는 HTTP 200 응답, 공개 목록, 매칭되는 객체 이름, 그리고 존재하는 것으로 보이는 접근 거부 엔드포인트를 보고합니다. 404 응답은 무시됩니다.
제공자 그룹:
--providers russia # yandex, vk, selectel, sber
--providers china # aliyun, tencent, huawei, baidu
--providers all # 모든 지원 제공자
쉼표로 구분된 목록을 제공할 수도 있습니다. 예를 들어:
python bucketbuster.py -w buckets.txt --providers aliyun,tencent
하나 이상의 필터가 제공되면 OR 논리를 사용합니다: 객체가 구성된 확장자, 이름, 정규식 또는 --match-cert 조건 중 하나라도 충족하면 매칭됩니다. 필터가 없으면 나열된 모든 객체가 보고 및 다운로드 선택의 매칭 대상으로 간주됩니다.
| 옵션 | 설명 |
|---|---|
-o, --output PATH | JSON 보고서를 작성합니다. 결과는 스캔 중에 스트리밍됩니다. |
--csv PATH | CSV 보고서를 작성합니다. 결과는 스캔 중에 스트리밍됩니다. |
--download-all은 --download가 필요합니다. 다운로드는 객체당 25 MiB로 제한되며, 빈 응답이나 200이 아닌 응답은 저장되지 않습니다. --allow-private-keys가 명시적으로 제공되지 않는 한 개인 키 컨테이너는 차단됩니다.
수동 DNS 확인과 함께 러시아/CIS 제공자를 스캔:
python bucketbuster.py -w buckets.txt --providers russia --dns
모든 지원 제공자를 스캔하고 두 가지 보고서 형식을 모두 작성:
python bucketbuster.py \
--wordlist buckets.txt \
--providers all \
--dns \
--output findings.json \
--csv findings.csv
확장자로 인증서 파일일 가능성이 있는 항목을 보고:
python bucketbuster.py -w buckets.txt --match-ext .pfx,.p12,.cer,.crt,.der
부분 문자열과 간단한 와일드카드를 사용하여 이름과 경로를 매칭:
python bucketbuster.py \
-w buckets.txt \
--match-name cryptopro,*keystore*,backups/*.sql
여러 정규식 사용:
python bucketbuster.py \
-w buckets.txt \
--match-regex '.*backup.*\.sql$' \
--match-regex 'config/.*\.ya?ml$'
내장 인증서 관련 확장자 및 키워드 목록 활성화:
python bucketbuster.py -w buckets.txt --match-cert
선택한 확장자와 매칭되는 객체만 다운로드:
python bucketbuster.py \
-w buckets.txt \
--providers aliyun,tencent \
--match-ext .cer,.crt,.p7b \
--download \
--download-dir ./authorized-downloads
공개 목록에 표시되는 모든 객체를 다운로드합니다. 이는 의도적으로 모든 매칭 필터를 무시하며 승인된 테스트 자산에서만 사용해야 합니다:
python bucketbuster.py -w buckets.txt --download --download-all
후보 입력은 단순 버킷 이름, 호스트 이름, 전체 스토리지 URL 또는 경로 방식 URL일 수 있습니다. 이름은 DNS 또는 HTTP 작업 전에 정규화되고 검증됩니다. 중복 및 유효하지 않은 후보는 폐기됩니다.
JSON 발견 사항에는 제공자, 버킷, URL, HTTP 상태, 목록 조회 가능 여부, 매칭된 파일, 목록에서 발견된 모든 파일, DNS 상태, 비고, 짧은 목록 스니펫, 그리고 다운로드된 로컬 경로가 포함됩니다. CSV에는 주요 발견 필드가 포함되며, 파일 목록은 세미콜론으로 구분된 값으로 직렬화됩니다.
다운로드는 선택한 디렉터리 아래에 제공자와 버킷별로 구성됩니다:
downloads/
yandex/
example-company/
certificates/client.cer
객체 경로는 로컬에 기록되기 전에 정제됩니다. 다운로드는 순차적으로 이루어지며 구성된 지연에 의해 속도가 제한됩니다.
--threads 값을 설정하고 --delay를 늘리십시오.--download, --download-all, --allow-private-keys를 사용하지 마십시오.BucketBuster는 BSD 2-Clause License에 따라 배포됩니다.
| 제공자 플래그 | 서비스 | 포함된 엔드포인트 계열 |
|---|
yandex | Yandex Cloud | Storage 및 website 엔드포인트 |
vk | VK Cloud | vkcloud-storage.ru 엔드포인트 |
selectel | Selectel | S3 및 selstorage.ru 엔드포인트 |
sber | SberCloud | OBS 및 s3.cloud.ru 엔드포인트 |
aliyun | Alibaba Cloud OSS | 일부 중국 리전 |
tencent | Tencent Cloud COS | 일부 중국 및 아시아 리전 |
huawei | Huawei Cloud OBS | 일부 중국 리전 |
baidu | Baidu Cloud BOS | 일부 중국 및 아시아 리전 |
| 옵션 | 기본값 | 설명 |
|---|
-w, --wordlist PATH | 필수 | 후보 버킷 이름이 한 줄에 하나씩 포함된 파일. 빈 줄과 #로 시작하는 주석은 무시됩니다. |
--providers VALUE | yandex,vk | 쉼표로 구분된 제공자 플래그, 또는 all, russia, china. |
--dns | 비활성화 | 수동 DNS 확인을 수행하고 확인되지 않는 호스트 이름을 건너뜁니다. |
-t, --threads N | 12 | 동시 버킷 워커 수. |
--delay SECONDS | 0.12 | HTTP 요청 간 지연. |
| 옵션 | 설명 |
|---|
--match-ext LIST | .pfx,.p12,.cer,.crt와 같은 쉼표로 구분된 확장자. 생략된 경우 앞에 점이 추가됩니다. |
--match-name LIST | 쉼표로 구분된 대소문자 구분 없는 이름/경로 부분 문자열. 간단한 * 와일드카드가 지원됩니다. |
--match-regex PATTERN | 전체 객체 키에 대해 매칭되는 대소문자 구분 없는 정규식. 여러 패턴을 사용하려면 옵션을 여러 번 전달하십시오. |
--match-cert | CryptoPro, GOST, signing, certificate 및 러시아어 인증서 용어를 포함한 내장 인증서 확장자 및 키워드를 활성화합니다. |
| 옵션 | 기본값 | 설명 |
|---|
--download | 비활성화 | 인증되지 않은 HTTP GET 요청을 사용하여 공개 목록에서 매칭되는 객체를 다운로드합니다. |
--download-all | 비활성화 | --download와 함께 사용하면, 파싱된 각 공개 목록의 모든 객체를 시도하고 매칭 필터를 무시합니다. |
--download-dir PATH | ./downloads | 다운로드된 객체의 루트 디렉터리. |
--allow-private-keys | 비활성화 | .pfx, .p12, .key, .p8, .pem 객체의 다운로드를 허용합니다. 명시적으로 승인된 경우에만 사용하십시오. |