
Porch Pirateは、Postmanのリコン(偵察)/OSINTのための最も包括的なクライアント兼フレームワークであり、ワークスペース、コレクション、リクエスト、ユーザー、チームにコミットされたAPIエンドポイントやシークレットの自動的な発見と悪用を容易にします。Porch Pirateは、クライアントとして使用することも、独自のアプリケーションに組み込むことも可能です。

Porch Pirateは、Postmanのシークレットを迅速に発見するツールとして始まり、徐々にPostman向けの多目的偵察/OSINTフレームワークへと進化してきました。既存のツールは優れた概念実証ですが、非常に限定されたキーワードだけを「シークレット」として識別しようとし、場所も限られており、シークレット以外の偵察は考慮されていません。私たちは、シークレットに依存しない(secret-agnostic)機能と、攻撃的価値を持つ偽陽性(false-positive)を捉える十分な柔軟性が必要であることに気付きました。
Porch Pirateは、公開されているPostmanエンティティ(ワークスペース、コレクション、リクエスト、ユーザー、チームなど)から、機密性の高い結果(グローバルシークレット、ユニークなヘッダー、エンドポイント、クエリパラメータ、認証情報など)を列挙し、表示します。
python3 -m pip install porch-pirate

Porch Pirateクライアントを使用すると、公開されているPostmanエンティティのレビューをほぼ完全に、素早く簡単に実施できます。結果を最大化するための推奨ワークフローと特定のキーワードが用意されています。これらの方法論は、私たちのブログ「Plundering Postman with Porch Pirate」に掲載されています。
Porch Pirateは、コレクション、ワークスペース、またはユーザーに対して以下の引数をサポートしています。
--globals--collections--requests--urls--dump--raw--curlporch-pirate -s "coca-cola.com"
デフォルトでは、Porch Pirateはワークスペースに定義されている場合、アクティブおよび非アクティブなすべての環境からグローバルを表示します。ワークスペースID(シンプル検索または自動検索ダンプで見つけたもの)を指定して -w 引数を使用すると、ワークスペースのグローバルとその他の情報を抽出できます。
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8
シンプル検索で興味深い結果が見つかった場合、-w 引数にワークスペースIDを指定し、--dump コマンドを使用してワークスペースとそのコレクションから情報を抽出し始めることができます。
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --dump
--globals 引数に続けてシンプル検索語を指定すると、Porch Pirateはそのシンプル検索で見つかった結果に関連するすべてのワークスペースを、グローバルが定義されている場合に限りダンプします。これは、さらに掘り下げる価値のある可能性のあるワークスペースを迅速に特定するのに特に便利です。
porch-pirate -s "shopify" --globals
--dump 引数に続けてシンプル検索語を指定すると、Porch Pirateはそのシンプル検索で見つかった結果に関連するすべてのワークスペースとコレクションをダンプします。これは、興味深い可能性のある結果を素早くふるいにかけるのに特に便利です。
porch-pirate -s "coca-cola.com" --dump
Porch Pirateの特に便利な使い方の1つは、ワークスペースからすべてのURLを抽出し、ファジング用の別のツールにエクスポートすることです。
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --urls
Porch Pirateは、シンプル検索語に関連するワークスペースとそのコレクションからすべてのURLを再帰的に抽出します。
porch-pirate -s "coca-cola.com" --urls
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --collections
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --requests
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --raw
porch-pirate -w WORKSPACE_ID
porch-pirate -c COLLECTION_ID
porch-pirate -r REQUEST_ID
porch-pirate -u USERNAME/TEAMNAME
Porch Pirateは、リクエストIDが提供された場合、テストを容易にするためにcurlリクエストを構築できます。
porch-pirate -r 11055256-b1529390-18d2-4dce-812f-ee4d33bffd38 --curl
porch-pirate -s coca-cola.com --proxy 127.0.0.1:8080
p = porchpirate()
print(p.search('coca-cola.com'))
p = porchpirate()
print(p.collections('4127fdda-08be-4f34-af0e-a8bdc06efaba'))
p = porchpirate()
collections = json.loads(p.collections('4127fdda-08be-4f34-af0e-a8bdc06efaba'))
for collection in collections['data']:
requests = collection['requests']
for r in requests:
request_data = p.request(r['id'])
print(request_data)
p = porchpirate()
print(p.workspace_globals('4127fdda-08be-4f34-af0e-a8bdc06efaba'))
その他のライブラリ使用例は examples ディレクトリにあります。以下の例が含まれています。
dump_workspace.pyformat_search_results.pyformat_workspace_collections.pyformat_workspace_globals.pyget_collection.pyget_collections.pyget_profile.pyget_request.pyget_statistics.pyget_team.pyget_user.pyget_workspace.pyrecursive_globals_from_search.pyrequest_to_curl.pysearch.pysearch_by_page.pyworkspace_collections.py