GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

sa7mon

S3Scanner – オープンなS3バケットをスキャンしてダンプ

投稿日:

開いているS3バケットをスキャンしてダンプする

S3スキャナ

開いているS3バケットを見つけてその内容をダンプするツール 💧

使用

#  s3scanner - Find S3 buckets and dump!
#
#  Author: Dan Salmon - @bltjetpack, github.com/sa7mon

positional arguments:
  buckets                Name of text file containing buckets to check

optional arguments:
  -h, --help              show this help message and exit
  -o, --out-file OUTFILE  Name of file to save the successfully checked buckets in (Default: buckets.txt)
  -d, --dump              Dump all found open buckets locally
  -l, --list              List all found open buckets locally

ツールは、確認するバケット名のリストを取り込みます。 Found S3バケットがファイルに出力されます。 また、ツールはローカルで「開いた」バケットの内容をダンプまたはリストします。

結果の解釈

このツールは、バケットに関する利用可能な情報をすべて取得しようとしますが、結果を解釈するのはあなた次第です。

バケットの設定

  • オブジェクトアクセス(オブジェクトはこの場合、バケットに格納されているファイルを参照します)
    • リストオブジェクト
    • オブジェクトの書き込み
  • ACLアクセス
    • 許可を読む
    • アクセス権の書き込み

これらのアクセス許可の一部またはすべては、2つのメインユーザーグループに対して設定できます。

  • 認証されたユーザー
  • パブリックユーザー(AWS資格情報が設定されていないユーザー)
  • (特定のユーザーにも適用できますが、それは範囲外です)

これが意味すること:バケットがACLのために “AccessDenied”を返すからといって、それが読み書きできないわけではありません。 逆に、ACLを一覧表示できますが、バケットには読み書きできません

インストール

  1. (オプション) virtualenv venv && source ./venv/bin/activate
  2. pip install -r requirements.txt
  3. python ./s3scanner.py

(互換性はPython 2.7と3.6でテストされています)

このツールは、以下のタイプのバケットフォーマットを受け付けます。

  • バケット名 – google-dev
  • ドメイン名 – uber.comsub.domain.com
  • 完全なs3 url – yahoo-staging.s3-us-west-2.amazonaws.comバケットストリームのような他のツールと簡単に結合するため)
  • バケツ:region – flaws.cloud:us-west-2
> cat names.txt
flaws.cloud
google-dev
testing.microsoft.com
yelp-production.s3-us-west-1.amazonaws.com
github-dev:us-east-1
  1. 開いているすべてのバケットをダンプし、開いたバケツと閉じたバケットの両方をfound.txtに記録する

    > python ./s3scanner.py --include-closed --out-file found.txt --dump names.txt
  2. 開いているバケットをデフォルトの出力ファイル(buckets.txt)に記録するだけです。

    > python ./s3scanner.py names.txt
  3. 開いているすべてのバケットのファイルリストをファイルに保存する

    > python ./s3scanner.py --list names.txt
    

貢献する

問題は歓迎され、プルリクエストは高く評価されます。 すべての貢献は、Python 2.7と3.6の両方と互換性があるはずです。

マスター
強化
バグ

テスト

  • すべてのテストは現在test_scanner.py
  • 2.7と3.6の仮想環境でテストを実行します。
  • このプロジェクトはpytest-xdistを使ってテストを実行します。 Use pytest -n NUMここで、numは並列プロセスの数です。
  • 次のような個別テストを実行します: pytest -q -s test_scanner.py::test_namehere

ライセンス

Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)







-sa7mon
-, ,

執筆者:

関連記事

関連記事はありませんでした