# Porch Pirate | The Most Comprehensive Postman Recon / OSINT Client And Framework

**URL:** <https://onehack.st/t/porch-pirate-the-most-comprehensive-postman-recon-osint-client-and-framework/268181>\
**Category:** Tools & Scripts\
**Tags:** tools, programming, freebies\
**Created:** [December 11, 2023, 11:23pm UTC](https://onehack.st/t/porch-pirate-the-most-comprehensive-postman-recon-osint-client-and-framework/268181 "2023-12-11T23:23:08Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![BlueHacker](https://onehack.st/user_avatar/onehack.st/bluehacker/32/174721_2.png) [@BlueHacker](https://onehack.st/u/BlueHacker)\
**Post date:** [December 11, 2023, 11:23pm UTC](https://onehack.st/t/porch-pirate-the-most-comprehensive-postman-recon-osint-client-and-framework/268181/1 "2023-12-11T23:23:09Z")

</div>

![image](https://onehack.st/uploads/default/original/3X/0/e/0eef64d2577fac5f5e09bf07b5ad293ef304d0a6.png)

Porch Pirate started as a tool to quickly uncover Postman secrets, and has slowly begun to evolve into a multi-purpose reconaissance / OSINT framework for Postman. While existing tools are great proof of concepts, they only attempt to identify very specific keywords as “secrets”, and in very limited locations, with no consideration to recon beyond secrets. We realized we required capabilities that were “secret-agnostic”, and had enough flexibility to capture false-positives that still provided offensive value.

Porch Pirate enumerates and presents sensitive results (global secrets, unique headers, endpoints, query parameters, authorization, etc), from publicly accessible Postman entities, such as:

- Workspaces
- Collections
- Requests
- Users
- Teams

## Installation

python3 -m pip install porch-pirate

## Using the client

[![](https://camo.githubusercontent.com/842bcc758b08e7398be03522f4a86b728ff347279fbcc2c4a2c5bf13f5b5ea67/68747470733a2f2f692e696d6775722e636f6d2f7432504a326a462e706e67)](https://camo.githubusercontent.com/842bcc758b08e7398be03522f4a86b728ff347279fbcc2c4a2c5bf13f5b5ea67/68747470733a2f2f692e696d6775722e636f6d2f7432504a326a462e706e67)

The Porch Pirate client can be used to nearly fully conduct reviews on public Postman entities in a quick and simple fashion. There are intended workflows and particular keywords to be used that can typically maximize results. These methodologies can be located on our blog: [**Plundering Postman with Porch Pirate**](https://mandconsulting.ca/plundering-postman-with-porch-pirate-osint/).

Porch Pirate supports the following arguments to be performed on collections, workspaces, or users.

- `--globals`
- `--collections`
- `--requests`
- `--urls`
- `--dump`
- `--raw`
- `--curl`

#### Simple Search

porch-pirate -s “[coca-cola.com](http://coca-cola.com)”

#### Get Workspace Globals

By default, Porch Pirate will display globals from all active and inactive environments if they are defined in the workspace. Provide a `-w` argument with the workspace ID (found by performing a simple search, or automatic search dump) to extract the workspace’s globals, along with other information.

porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8

#### Dump Workspace

When an interesting result has been found with a simple search, we can provide the workspace ID to the `-w` argument with the `--dump` command to begin extracting information from the workspace and its collections.

porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --dump

#### Automatic Search and Globals Extraction

Porch Pirate can be supplied a simple search term, following the `--globals` argument. Porch Pirate will dump all relevant workspaces tied to the results discovered in the simple search, but only if there are globals defined. This is particularly useful for quickly identifying potentially interesting workspaces to dig into further.

porch-pirate -s “shopify” --globals

#### Automatic Search Dump

Porch Pirate can be supplied a simple search term, following the `--dump` argument. Porch Pirate will dump all relevant workspaces and collections tied to the results discovered in the simple search. This is particularly useful for quickly sifting through potentially interesting results.

porch-pirate -s “[coca-cola.com](http://coca-cola.com)” --dump

#### Extract URLs from Workspace

A particularly useful way to use Porch Pirate is to extract all URLs from a workspace and export them to another tool for fuzzing.

porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --urls

#### Automatic URL Extraction

Porch Pirate will recursively extract all URLs from workspaces and their collections related to a simple search term.

porch-pirate -s “[coca-cola.com](http://coca-cola.com)” --urls

#### Show Collections in a Workspace

porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --collections

#### Show Workspace Requests

porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --requests

#### Show raw JSON

porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --raw

#### Show Entity Information

porch-pirate -w WORKSPACE\_ID

porch-pirate -c COLLECTION\_ID

porch-pirate -r REQUEST\_ID

porch-pirate -u USERNAME/TEAMNAME

#### Convert Request to Curl

Porch Pirate can build curl requests when provided with a request ID for easier testing.

porch-pirate -r 11055256-b1529390-18d2-4dce-812f-ee4d33bffd38 --curl

#### Use a proxy

porch-pirate -s [coca-cola.com](http://coca-cola.com) --proxy 127.0.0.1:8080

## Using as a library

#### Searching

p = porchpirate() print(p.search(‘[coca-cola.com](http://coca-cola.com)’))

#### Get Workspace Collections

p = porchpirate() print(p.collections(‘4127fdda-08be-4f34-af0e-a8bdc06efaba’))

#### Dumping a Workspace

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)

#### Grabbing a Workspace’s Globals

p = porchpirate() print(p.workspace\_globals(‘4127fdda-08be-4f34-af0e-a8bdc06efaba’))

## Other Examples

Other library usage examples can be located in the `examples` directory, which contains the following examples:

- `dump_workspace.py`
- `format_search_results.py`
- `format_workspace_collections.py`
- `format_workspace_globals.py`
- `get_collection.py`
- `get_collections.py`
- `get_profile.py`
- `get_request.py`
- `get_statistics.py`
- `get_team.py`
- `get_user.py`
- `get_workspace.py`
- `recursive_globals_from_search.py`
- `request_to_curl.py`
- `search.py`
- `search_by_page.py`
- `workspace_collections.py`

## GitHub:

> **[GitHub - MandConsultingGroup/porch-pirate: Porch Pirate is the most comprehensive Postman...](https://github.com/mandconsultinggroup/porch-pirate)**
>
> Porch Pirate is the most comprehensive Postman recon / OSINT client and framework that facilitates the automated discovery and exploitation of API endpoints and secrets committed to workspaces, collections, requests, users and teams. Porch Pirate can be used as a client or be incorporated into your own applications.
