
Instacart の @nickelser との HackerOne 上での会話に触発されて、Sandcastle を最適化して公開しました – 以前は bucketCrawler として知られていた、AWS S3 バケット列挙用の Python スクリプトです。
このスクリプトはターゲット名を語幹引数として受け取り(例: shopify)、以下のようなバケット名の組み合わせが記載されたファイルを繰り返し処理します:
-training
-bucket
-dev
-attachments
-photos
-elasticsearch
[...]
以下が開始方法です:
sandcastle.py をターゲット名と入力ファイルを指定して実行します(このリポジトリからサンプルを取得してください)。usage: sandcastle.py [-h] -t targetStem [-f inputFile]
arguments:
-h, --help show this help message and exit
-t targetStem, --target targetStem
Select a target stem name (e.g. 'shopify')
-f inputFile, --file inputFile
Select a bucket permutation file (default: bucket-
names.txt)
____ __ __ __
/ __/__ ____ ___/ /______ ____ / /_/ /__
_\ \/ _ `/ _ \/ _ / __/ _ `(_-</ __/ / -_)
/___/\_,_/_//_/\_,_/\__/\_,_/___/\__/_/\__/
S3 bucket enumeration // release v1.2.4 // ysx
[*] Commencing enumeration of 'shopify', reading 138 lines from 'bucket-names.txt'.
[+] Checking potential match: shopify-content --> 403
An error occurred (AccessDenied) when calling the ListObjects operation: Access Denied
| ステータスコード | 定義 | 備考 |
|---|---|---|
| 404 | バケットが見つかりません | 分析対象外(デフォルトで非表示) |
| 403 | アクセス拒否 | CLI 経由の分析の潜在的な対象 |
| 200 | 公開アクセス可能 | CLI 経由の分析の潜在的な対象 |
以下は便利な AWS CLI コマンドのクイックリファレンスです:
aws s3 ls s3://bucket-nameaws s3 cp s3://bucket-name/<file> <destination>aws s3 cp/mv test-file.txt s3://bucket-nameaws s3 rm s3://bucket-name/test-file.txtAmazon のドキュメントより、Amazon S3 バケットの操作:
Amazon S3 [Simple Storage Service] はインターネット向けのクラウドストレージです。データ(写真、動画、ドキュメントなど)をアップロードするには、まずいずれかの AWS リージョンにバケットを作成します。その後、任意の数のオブジェクトをバケットにアップロードできます。
実装の観点では、バケットとオブジェクトはリソースであり、Amazon S3 はそれらを管理するための API を提供します。