关于Porch Pirate
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安装
我们也可以直接使用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"
获取工作空间Global
默认配置下,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
自动化搜索和Global提取
porch-pirate -s "shopify" --globals
自动化搜索转储
porch-pirate -s "coca-cola.com" --dump
从工作空间提取URL
Porch Pirate支持从一个工作空间提取所有的URL并将其导出到其他工具执行模糊测试:
porch-pirate -w abd6bded-ac31-4dd5-87d6-aa4a399071b8 --urls
自动化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
显示原始JSON数据
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
将请求转换为Curl
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)
获取工作空间的Global
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/