Lucene search

K
kitploitKitPloitKITPLOIT:5981721623535001700
HistoryApr 12, 2024 - 12:30 p.m.

Porch-Pirate - 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

2024-04-1212:30:00
www.kitploit.com
26
postman
osint
reconnaissance
framework
api endpoints
secrets
workspaces
collections
requests
users
teams
installation
client usage
globals
urls
simple search
dump
workspace id

7.2 High

AI Score

Confidence

Low

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

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.

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"  

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" --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" --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 --proxy 127.0.0.1:8080  

Using as a library

Searching

p = porchpirate()  
print(p.search('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

Download Porch-Pirate

7.2 High

AI Score

Confidence

Low