维护者: Rhino Security Labs
Pacu 是一个开源的 AWS 利用框架,专为针对云环境的安全性测试而设计。由 Rhino Security Labs 创建和维护,Pacu 允许渗透测试人员利用 AWS 账户中的配置缺陷进行攻击,通过模块轻松扩展其功能。当前模块支持多种攻击,包括用户权限提升、IAM 用户后门植入、攻击易受攻击的 Lambda 函数等。
Pacu 是一个相当轻量级的程序,只需 Python3.7+ 和 pip3 即可安装少量 Python 库。
pip3 install -U pip
pip3 install -U pacu
pacu
这是在 Kali Linux 上的推荐方法,因为 pip 默认不再安装。此方法将安装 Pacu 的最新更新,可能不包括正式发布版本。
pipx install git+https://github.com/RhinoSecurityLabs/pacu.git
更详细且用户友好的安装说明,请查阅 Wiki 的 安装指南。
docker run -it rhinosecuritylabs/pacu:latest
docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
警告:运行此命令会将您的本地 AWS 配置文件挂载到 Docker 容器中。这意味着任何有权访问容器的用户都能访问您主机上的 AWS 凭证。
docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
首次启动 Pacu 时,系统将提示您开始并命名一个新会话。该会话用于存储 AWS 密钥对以及运行各种模块时获取的数据。您可以在 Pacu 中创建任意数量的不同会话,每个会话拥有自己的 AWS 密钥和数据,并随时恢复会话(不过目前切换会话需要重启)。
模块需要一个 AWS 密钥,该密钥为您提供对 AWS 环境的最小访问权限,由访问密钥 ID 和秘密访问密钥组成。要设置会话的密钥,请使用 set_keys 命令,然后按照提示提供密钥别名(用于引用的昵称)、AWS 访问密钥 ID、AWS 秘密访问密钥以及 AWS 会话令牌(如果使用)。
如果遇到困难,可输入 help 查看可用命令列表。
list 将列出当前会话中设定的区域下可用的模块。help module_name 将返回指定模块的适用帮助信息。run module_name 将使用默认参数运行指定模块。run module_name --regions eu-west-1,us-west-1 将针对 eu-west-1 和 us-west-1 区域运行指定模块(适用于支持 --regions 参数的模块)。pacu --help 显示帮助菜单pacu --session <会话名称> 设置用于需要会话的命令的会话pacu --list-modules 列出所有可用模块(无需会话)pacu --pacu-help 列出 pacu 帮助窗口(无需会话)pacu --module-name <模块名称> 要对之执行操作的模块名称,可执行或获取模块信息pacu --exec 执行 --module-name 中提供的模块pacu --module-info 获取 --module-name 中提供的模块信息pacu --data <服务名称 || all> 查询本地 SQLAlchemy 数据库以检索枚举信息pacu --module-args="<arg1> <value> <arg2> <value>" 为正在执行的模块提供可选的模块参数pacu --set-regions <region1 region2 || all> 设置会话中使用的区域,用空格分隔区域,或输入 all 使用所有区域Pacu 使用一系列 插件模块 帮助攻击者在 AWS 环境中进行枚举、权限提升、数据窃取、服务利用和日志操纵。欢迎贡献新模块或提出创意。
为了跟上 AWS 产品的持续发展,我们从一开始就注重 Pacu 的可扩展性。统一的语法和数据结构使得模块易于构建和扩展——无需指定 AWS 区域或在模块之间进行冗余的权限检查。本地 SQLite 数据库用于管理和操作检索到的数据,最大程度减少 API 调用(以及相关的日志)。报告和攻击审计也内置在框架中;Pacu 通过命令日志记录和导出协助文档编制过程,帮助构建测试过程的时间线。
我们始终乐于接收 Pacu 框架本身的错误报告,以及不同模块的测试和反馈,总的来说,任何有助于完善框架的批评性反馈都很受欢迎。任何通过使用、测试、改进或仅是通过传播来支持 Pacu 的行为,我们都非常感谢。
如果您有兴趣直接为 Pacu 框架贡献代码,请阅读我们的 贡献指南,了解代码规范和 git-flow 说明。
如果您有兴趣为 Pacu 编写自己的模块,请查看我们的 模块开发 维基页面。在开发新功能时,请联系我们——我们很乐意将您的新模块添加到 Pacu 附带的核心模块集合中。
有关演练和完整文档,请访问 Pacu 维基。
pacu --whoami 获取当前用户的信息