cloudfox

cloudfox

云环境安全评估与攻击路径分析工具

CloudFox是一款开源命令行工具,专注于在云基础设施中发现潜在攻击路径。支持AWS、Azure和GCP等主流云平台,提供资源枚举、权限分析和密钥检测等功能。该工具能够帮助安全专业人员快速获取云环境态势感知,识别安全风险,提升云安全评估效率。CloudFox适用于渗透测试和安全审计等场景,为云环境安全分析提供了有力支持。

CloudFox云安全渗透测试攻击路径开源工具Github开源项目

:fox_face: CloudFox :fox_face:

CloudFox 帮助您在陌生的云环境中获得情况感知。它是一个开源的命令行工具,旨在帮助渗透测试人员和其他进攻性安全专业人员在云基础设施中发现可利用的攻击路径。

CloudFox 帮助您回答以下常见问题(以及更多问题):

  • 此 AWS 帐户使用的区域是什么,以及帐户中大致有多少资源?
  • EC2 用户数据或服务特定环境变量中隐藏着什么秘密?
  • 哪些工作负载被附加了管理权限?
  • [主体]拥有哪些操作/权限?
  • 哪些角色信任过于宽松或允许跨账户假设?
  • 从外部起点(公共互联网)可以攻击哪些端点/主机名/IP?
  • 从内部起点(假设已侵入 VPC 内部)可以攻击哪些端点/主机名/IP?
  • 可以从 VPC 内部被入侵的资源中挂载哪些文件系统?

演示、示例、演练

有漏洞的测试环境

想讨论 CloudFox吗?

加入我们的 RedSec Discord 服务器

快速入门

CloudFox 是模块化的(您可以一次运行一个命令),但有一个 aws all-checks 命令可以使用合理的默认值运行其他 aws 命令:

cloudfox aws --profile [profile-name] all-checks

白盒枚举

CloudFox 的设计是由具有有限只读权限的主体执行,但其目的是帮助您找到可在模拟入侵场景(即基于目标的渗透测试)中被利用的攻击路径。

黑盒枚举

CloudFox 可以使用"找到"的凭证使用,类似于使用 weirdAALenumerate-iam。失败的检查会静默失败,所以任何返回的数据意味着您的"找到"的凭证具有检索它所需的访问权限。

文档

有关完整文档,请参阅我们的维基

支持的云提供商

提供商CloudFox 命令
AWS34
Azure4
GCP8
Kubernetes计划支持

安装

选项 1: 下载适用于您平台的最新二进制发行版

选项 2: 如果您使用 homebrew: brew install cloudfox

选项 3: 安装 Go,使用 go install github.com/BishopFox/cloudfox@latest 从远程源安装。

选项 4: 开发者模式:

安装 Go,克隆 CloudFox 仓库并从源码编译

# git clone https://github.com/BishopFox/cloudfox.git
# cd ./cloudfox
# 进行任何必要的更改
# go build .
# ./cloudfox

选项 5: 测试错误修复

git clone git@github.com:BishopFox/cloudfox.git
git checkout seth-dev 
go build .
./cloudfox [其余的命令选项]

先决条件

AWS

  • 已安装 AWS CLI
  • 支持 AWS 配置文件、AWS 环境变量或元数据检索(在 ec2 实例上)
    • 要同时在多个配置文件上运行命令,可以使用 -l 标志指定包含配置文件名称(以换行符分隔)的文件路径,或使用 -a 标志传递所有存储的配置文件。
  • 一个具有推荐策略的主体(如下所述)
  • 建议附加的策略: SecurityAudit + CloudFox 自定义策略

附加策略说明(截至 09/2022):

策略说明
CloudFox 自定义策略包含 cloudfox 使用的每个权限,没有其他内容
arn:aws:iam::aws:policy/SecurityAudit涵盖了大多数 cloudfox 检查,但缺少了一些较新的服务或权限,如 apprunner:*, grafana:*, lambda:GetFunctionURL, lightsail:GetContainerServices
arn:aws:iam::aws:policy/job-function/ViewOnlyAccess涵盖了大多数 cloudfox 检查,但缺少了一些较新的服务或权限,如 AppRunner:*, grafana:*, lambda:GetFunctionURL, lightsail:GetContainerServices - 并且也缺少 iam:SimulatePrincipalPolicy。
arn:aws:iam::aws:policy/ReadOnlyAccess只缺少 AppRunner,但也授予了一些像 "s3:Get*" 这样的过于宽泛的权限。
arn:aws:iam::aws:policy/AdministratorAccess这将正常工作,但如果您作为渗透测试人员被授予这种级别的访问权限,这本身可能就是一个发现。

Azure

  • 应用了查看者或类似权限。

AWS命令

提供商命令名称描述
AWSall-checks运行所有其他命令并使用合理的默认值。您仍然需要检查每个命令的非默认选项,但这是一个很好的起点。
AWSaccess-keys列出所有用户的活动访问密钥。有助于交叉引用找到的密钥属于哪个在范围内的帐户。
AWSapi-gw列出API网关端点,并提供包括API令牌在内的自定义curl命令(如果它们存储在元数据中)。
AWSbuckets列出帐户中的存储桶,并提供有用的命令来进一步检查它们。
AWScape枚举跨账户特权提升路径。需要先运行pmapper
AWScloudformation列出帐户中的CloudFormation堆栈。生成包含堆栈详细信息、堆栈参数和堆栈输出的战利品文件 - 寻找机密信息。
AWScodebuild枚举CodeBuild项目
AWSdatabases枚举RDS数据库。获取包含连接字符串的战利品文件。
AWSecr列出所有存储库中最近推送的镜像URI。使用战利品文件通过docker/nerdctl下拉选定的镜像进行检查。
AWSecs-tasks列出所有ECS任务。这会返回ECS任务列表及其关联的集群、任务定义、容器实例、启动类型和关联的IAM委托人。
AWSeks列出所有EKS集群,查看它们是否公开了端点,并检查附加到每个集群或节点组的关联IAM角色。生成一个战利品文件,其中包含连接到每个集群所需的aws eks update-kubeconfig命令。
AWSelastic-network-interfaces列出所有ENI信息。这会返回ENI ID、类型、外部IP、私有IP、VPCID、附加实例和描述的列表。
AWSendpoints枚举各种服务的端点。从内部和外部位置扫描这些端点,以查找不需要身份验证、配置错误等的内容。
AWSenv-vars获取具有环境变量的服务(App Runner、ECS、Lambda、Lightsail容器、Sagemaker)的环境变量。如果发现敏感机密,请使用cloudfox iam-simulatorpmapper查看谁有权访问它们。
AWSfilesystems枚举您可能无需凭据即可挂载的EFS和FSx文件系统(如果您具有正确的网络访问权限)。例如,在您拥有ec:RunInstance但没有iam:PassRole的情况下,这很有用。
AWSiam-simulator类似于pmapper,但使用IAM策略模拟器。它使用AWS的评估逻辑,但值得注意的是,它不考虑通过特权提升的传递访问权限,这就是您也应该始终使用pmapper的原因。
AWSinstances枚举所有区域的EC2实例的有用信息,如名称、公共/私有IP和实例配置文件。生成可供nmap和其他工具用于服务枚举的战利品文件。
AWSinventory大致了解帐户的规模和首选区域。
AWSlambda列出帐户中的Lambda函数,包括哪些函数附有管理员角色。还提供了下载每个函数的方便命令。
AWSnetwork-ports枚举可能公开网络服务的AWS服务。解析每个资源的安全组和网络ACL,以确定可能公开的端口。
AWSorgs枚举组织中的帐户
AWSoutbound-assumed-roles列出已被此帐户中的主体假定的角色。这是发现通向其他帐户的出站攻击路径的绝佳方式。
AWSpermissions枚举与所有用户和角色关联的IAM权限。对这个输出进行grep,可以确定特定主体拥有哪些权限,而不需要登录AWS控制台并逐一展开附加到该主体的每个策略。
AWSpmapper在本地文件系统上定义的位置查找pmapper数据。如果找到了pmapper数据(您已经运行了pmapper graph create),那么此命令将使用此数据在cloudfox内存中构建一个图,并告知您谁可以提升到管理员。
AWSprincipals枚举IAM用户和角色,以便您随时掌握这些数据。
AWSram列出此帐户与其他帐户共享的所有资源,或其他帐户与此帐户共享的资源。对于跨帐户攻击路径很有用。
AWSresource-trusts检查支持资源策略的多个服务,帮助您找到任何过于权限的资源信任。
AWSrole-trusts枚举IAM角色信任策略,以便您可以寻找过于权限的角色信任或找到信任特定服务的角色。
AWSroute53枚举所有Route53管理区域中的所有记录。用于应用程序和服务枚举。

| AWS | secrets | 列举 SecretsManager 和 SSM 中的所有 secrets。查找列表中有趣的 secrets,然后使用 cloudfox iam-simulator 和/或 pmapper 查看谁有权限访问它们。| | AWS | sns | 该命令枚举所有 SNS 主题,并提供订阅主题或向主题发送消息(如果您拥有所需的权限)的命令。该命令仅处理主题,不处理 SMS 功能。该命令还试图汇总资源策略(如果存在)。| | AWS | sqs | 该命令枚举所有 SQS 队列,并提供从队列接收消息和向队列发送消息(如果您拥有所需的权限)的命令。该命令还试图汇总队列资源策略(如果存在)。| | AWS | tags | 列举所有带标签的资源及其标签。这可以像清单一样用作识别帐户中存在的资源类型的另一种方法。| | AWS | workloads | 列举所有计算工作负载及其角色。告知您是否有任何角色为管理员(不好)且如果您本地有 pmapper 数据,它将告知您是否有任何角色可以提升为管理员(也不好)。| | AWS | ds | 列举所有 AWS 托管目录及其属性。还总结了当前的信任关系及其方向和类型。|

Azure命令

提供商命令名称描述
Azurewhoami显示有关当前Azure CLI会话可用的租户、订阅和资源组的信息。这有助于了解要使用哪个租户和订阅ID进行其他子命令。
Azureinventory显示每个位置的所有资源的清单表。
Azurerbac列出订阅或租户级别的Azure RBAC角色分配
Azurestorage存储命令仍在开发中。目前它只显示有限的存储帐户数据
Azurevms列举所有可用资源组和订阅中的计算实例的有用信息

GCP命令

提供商命令名称描述
GCPwhoami显示GCP认证用户的电子邮件地址
GCPall-checks运行所有可用的GCP命令
GCPartifact-registry显示GCP工件注册表信息
GCPbigquery显示Bigquery数据集和表信息
GCPbuckets显示GCP存储桶信息
GCPiam显示GCP IAM信息
GCPinstances显示GCP计算引擎实例信息
GCPsecrets显示GCP密钥信息

作者

贡献

Wiki - 如何贡献

常见问题

CloudFox与ScoutSuite、Prowler、Steampipe的AWS合规模块、AWS安全中心等相比如何?

CloudFox不会创建任何警报或发现,也不会检查您的环境是否符合基准或基准。相反,它只是让您在手动渗透测试活动中更有效率。它为您提供了验证攻击路径是否可行所需的信息。

为什么我在某些CloudFox命令中看到错误?

  • 某些区域不存在的服务 - CloudFox尝试了几种方法来确定每个区域支持哪些服务。但是某些服务不支持CloudFox使用的方法,所以CloudFox默认只询问每个区域关于该服务的信息。不支持该服务的区域将返回错误。
  • 您没有权限 - 如果您没有权限执行CloudFox正在执行的调用,也可能会看到错误。要么是策略不允许(例如,SecurityAudit不允许CloudFox需要的所有权限),要么是SCP阻止了您。

您可以随时查看~/.cloudfox/cloudfox-error.log文件,获取有关错误的更多信息。

以前的工作和其他相关项目

  • SmogCloud - 启发了endpoints命令
  • SummitRoute的AWS可公开资源 - 启发了endpoints命令
  • Steampipe - 我们使用Steampipe来原型化许多CloudFox命令。虽然CloudFox专注于帮助云渗透测试人员,但Steampipe是一种轻松查询云资源的方法。
  • Principal Mapper - 启发了iam-simulator命令,并强烈建议与之配合使用
  • Cloudsplaining - 启发了permissions命令
  • ScoutSuite - 出色的云安全基准工具。提供了关于--userdata功能的灵感,用于instances命令、permissions命令等。
  • Prowler - 另一款出色的云安全基准工具。
  • Pacu - 出色的云渗透测试工具。 Pacu有许多与CloudFox类似的枚举命令,以及许多其他自动化利用任务的命令(这是CloudFox有意避免的)
  • CloudMapper - 启发了inventory命令,以及CloudFox整体

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多