
S3 호환 API에서 잘못 구성된 S3 버킷을 스캔합니다!
INPUT: (1 required)
-bucket string 확인할 버킷 이름.
-bucket-file string 확인할 버킷 이름 목록이 있는 파일.
-mq RabbitMQ에 연결하여 버킷 가져오기. 구성 파일 키 "mq" 필요. 기본값: "false"
OUTPUT:
-db 결과를 Postgres 데이터베이스에 저장. 구성 파일 키 "db.uri" 필요. 기본값: "false"
-json 로그를 사람이 읽기 쉬운 형식 대신 JSON 형식으로 stdout에 출력. 기본값: "false"
OPTIONS:
-enumerate 버킷 객체 열거 (시간이 오래 걸릴 수 있음). 기본값: "false"
-provider string 객체 스토리지 제공업체: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway - custom은 구성 파일 필요. 기본값: "aws"
-threads int 스캔에 사용할 스레드 수. 기본값: "4"
DEBUG:
-verbose 상세 로깅 활성화. 기본값: "false"
-version 버전 출력 기본값: "false"
구성 파일이 필요한 경우 config.yml은 다음 위치에서 검색됩니다: "." "/etc/s3scanner/" "$HOME/.s3scanner/"
이 도구가 유용하셨다면, 개발을 지원하기 위해 기부를 고려해 주세요. 이 저장소 페이지 측면 또는 FUNDING.yml에서 후원 옵션을 확인하실 수 있습니다.
tines님께 이 프로젝트의 지속적인 후원에 대해 큰 감사를 드립니다.
파일에 나열된 버킷 이름을 AWS에서 스캔하고, 모든 객체 열거
$ s3scanner -bucket-file names.txt -enumerate
GCP에서 버킷 스캔, 모든 객체 열거 및 데이터베이스에 결과 저장
$ s3scanner -provider gcp -db -bucket my-bucket -enumerate
| 플랫폼 | 버전 | 단계 |
|---|---|---|
| BlackArch | pacman -S s3scanner | |
| Docker | docker run ghcr.io/sa7mon/s3scanner | |
| Go | go install -v github.com/sa7mon/s3scanner@latest | |
| Kali Linux | apt install s3scanner | |
| MacOS | brew install s3scanner | |
| Parrot OS | apt install s3scanner | |
| Windows - winget | winget install s3scanner | |
| NixOS stable | nix-shell -p s3scanner | |
| NixOS unstable | nix-shell -p s3scanner | |
| 기타 - 소스에서 빌드 | git clone [email protected]:sa7mon/S3Scanner.git && cd S3Scanner && go build -o s3scanner . |
s3scanner는 정확히 하나의 입력 유형이 필요합니다: -bucket, -bucket-file, 또는 -mq.
INPUT: (1 required)
-bucket string 확인할 버킷 이름.
-bucket-file string 확인할 버킷 이름 목록이 있는 파일.
-mq RabbitMQ에 연결하여 버킷 가져오기. 구성 파일 키 "mq" 필요. 기본값: "false"
-bucket단일 버킷 스캔
s3scanner -bucket secret_uploads
-bucket-file파일에 나열된 모든 버킷 이름 스캔
s3scanner -bucket-file names.txt
여기서 names.txt는 줄마다 버킷 이름 하나씩 포함
$ cat names.txt
bucket123
assets
image-uploads
여러 번 나열된 버킷 이름은 한 번만 스캔됩니다.
-mqRabbitMQ 서버에 연결하여 스캔할 버킷 이름이 포함된 메시지를 소비합니다.
s3scanner -mq
메시지는 JSON 인코딩된 Bucket 객체여야 합니다. Golang 게시 예제는 mqingest를 참조하세요.
-mq는 mq.uri 및 mq.queue_name 구성 파일 키가 필요합니다. 예제는 구성 파일 섹션 참조.
OUTPUT:
-db 결과를 Postgres 데이터베이스에 저장. 구성 파일 키 "db.uri" 필요. 기본값: "false"
-json 로그를 사람이 읽기 쉬운 형식 대신 JSON 형식으로 stdout에 출력. 기본값: "false"
-db모든 스캔 결과를 PostgreSQL 데이터베이스에 저장