
Porch Pirate es el cliente/framework de recon/OSINT de Postman más completo que facilita el descubrimiento y la explotación automatizados de endpoints de API y secretos comprometidos en espacios de trabajo, colecciones, solicitudes, usuarios y equipos. Porch Pirate puede usarse como cliente o incorporarse a tus propias aplicaciones.

Porch Pirate comenzó como una herramienta para descubrir rápidamente secretos en Postman, y lentamente ha comenzado a evolucionar hacia un marco de reconocimiento / OSINT multipropósito para Postman. Si bien las herramientas existentes son excelentes pruebas de concepto, solo intentan identificar palabras clave muy específicas como "secretos", y en ubicaciones muy limitadas, sin considerar el reconocimiento más allá de los secretos. Nos dimos cuenta de que necesitábamos capacidades que fueran "agnósticas a los secretos" y tuvieran suficiente flexibilidad para capturar falsos positivos que aún tuvieran valor ofensivo.
Porch Pirate enumera y presenta resultados sensibles (secretos globales, encabezados únicos, endpoints, parámetros de consulta, autorización, etc.) de entidades de Postman de acceso público, como:
python3 -m pip install porch-pirate

El cliente de Porch Pirate se puede utilizar para realizar revisiones casi completas de entidades públicas de Postman de manera rápida y sencilla. Existen flujos de trabajo previstos y palabras clave particulares que suelen maximizar los resultados. Estas metodologías se pueden encontrar en nuestro blog: Plundering Postman with Porch Pirate.
Porch Pirate admite los siguientes argumentos para realizar acciones en colecciones, espacios de trabajo o usuarios.
--globals--collections--requests--urls--dump--raw--curlporch-pirate -s "coca-cola.com"
Por defecto, Porch Pirate mostrará las variables globales de todos los entornos activos e inactivos si están definidos en el espacio de trabajo. Proporcione un argumento -w con el ID del espacio de trabajo (encontrado al realizar una búsqueda simple o volcado automático de búsqueda) para extraer las variables globales del espacio de trabajo, junto con otra información.
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8
Cuando se ha encontrado un resultado interesante con una búsqueda simple, podemos proporcionar el ID del espacio de trabajo al argumento -w con el comando --dump para comenzar a extraer información del espacio de trabajo y sus colecciones.
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --dump
Se puede proporcionar a Porch Pirate un término de búsqueda simple, seguido del argumento --globals. Porch Pirate volcará todos los espacios de trabajo relevantes vinculados a los resultados descubiertos en la búsqueda simple, pero solo si hay variables globales definidas. Esto es particularmente útil para identificar rápidamente espacios de trabajo potencialmente interesantes para investigar más a fondo.
porch-pirate -s "shopify" --globals
Se puede proporcionar a Porch Pirate un término de búsqueda simple, seguido del argumento --dump. Porch Pirate volcará todos los espacios de trabajo y colecciones relevantes vinculados a los resultados descubiertos en la búsqueda simple. Esto es particularmente útil para examinar rápidamente resultados potencialmente interesantes.
porch-pirate -s "coca-cola.com" --dump
Una forma particularmente útil de usar Porch Pirate es extraer todas las URLs de un espacio de trabajo y exportarlas a otra herramienta para realizar fuzzing.
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --urls
Porch Pirate extraerá recursivamente todas las URLs de los espacios de trabajo y sus colecciones relacionadas con un término de búsqueda simple.
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 puede construir solicitudes curl cuando se le proporciona un ID de solicitud para facilitar las pruebas.
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'))
Los ejemplos de uso de la biblioteca se pueden encontrar en el directorio examples, que contiene los siguientes ejemplos:
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