Porch Pirate是一款针对Postman的网络侦查和OSINT工具,该工具功能非常丰富,可以帮助广大研究人员以自动化的形式扫描和发现API节点的安全问题。
该工具可以单独以客户端的形式使用,也可以整合到自己的应用程序代码中。该工具可以检测和识别特定的敏感关键词,能够提供足够的灵活性来帮助我们捕捉到低误报且有价值的情报信息。
当前版本的Porch Pirate能够从公开可访问的Postman条目中枚举并显示其中潜在的敏感结果,其中包括:
1、工作空间信息;
2、集合信息;
3、请求信息;
4、用户信息;
5、团队信息;
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3.x环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
$ git clone https://github.com/MandConsultingGroup/porch-pirate.git
然后切换到项目目录中,执行工具安装脚本即可完成TrafficWatch的安装:
$ cd porch-pirate
$ python3 setup.py install
我们也可以直接使用pip工具直接安装Porch Pirate:
$ python3 -m pip install porch-pirate
Porch Pirate客户端可以帮助我们以简单快速的形式对公共Postman实体执行全面的安全审计,工具提供了一些预置工作流程和特定关键字来最大限度地提升安全任务执行速度并丰富结果。
Porch Pirate支持使用下列参数:
--globals
--collections
--requests
--urls
--dump
--raw
--curl
porch-pirate -s "coca-cola.com"
默认配置下,Porch Pirate将显示工作空间定义的所有活动和非活动环境的Global信息,通过-w设置工作空间ID即可提取工作空间的Global和其他重要信息:
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8
当执行简单搜索时发现了有价值的结果后,我们可以使用-w和--dump参数将工作空间及其集合信息提取出来:
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --dump
porch-pirate -s "shopify" --globals
porch-pirate -s "coca-cola.com" --dump
Porch Pirate支持从一个工作空间提取所有的URL并将其导出到其他工具执行模糊测试:
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --urls
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.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
本项目的开发与发布遵循 GPL-3.0 开源许可证协议。
Porch Pirate:【 GitHub传送门】
https://mandconsulting.ca/plundering-postman-with-porch-pirate-osint/