在哪里获得帮助:Rhino Security Labs Discord 或 Stack Overflow
在哪里提交问题:https://github.com/RhinoSecurityLabs/pacu/issues
维护者:Rhino 安全实验室
Pacu 是一个开源 AWS 开发框架,专为针对云环境的攻击性安全测试而设计。 Pacu 由 Rhino Security Labs 创建和维护,允许渗透测试人员利用 AWS 帐户内的配置缺陷,使用模块轻松扩展其功能。当前模块可实现一系列攻击,包括用户权限提升、IAM 用户后门、攻击易受攻击的 Lambda 函数等等。
Pacu 是一个相当轻量级的程序,因为它只需要 Python3.7+ 和 pip3 来安装一些 Python 库。
> pip3 install -U pip > pip3 install -U pacu > pacu
有关更详细且用户友好的用户说明集,请查看 Wiki 的安装指南。
$ docker run -it rhinosecuritylabs/pacu:最新
$ docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:最新
警告:运行此命令将在启动 Docker 容器时将本地 AWS 配置文件挂载到该容器中。这意味着任何有权访问容器的用户都将有权访问您的主机的 AWS 凭证。
$ docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:最新
第一次启动 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
查询本地SQLAlchemy数据库获取枚举信息
pacu --module-args="
为正在执行的模块提供可选模块参数
pacu --set-regions
设置要在会话中使用的区域,用空格分隔区域或为所有区域输入all
pacu --whoami
获取有关当前用户的信息
Pacu 使用一系列插件模块来协助攻击者在 AWS 环境中进行枚举、权限升级、数据泄露、服务利用和日志操作。欢迎对新模块做出贡献或提出想法。
为了跟上持续的 AWS 产品开发步伐,我们从头开始设计 Pacu 时就考虑到了可扩展性。通用语法和数据结构使模块易于构建和扩展 - 无需指定 AWS 区域或在模块之间进行冗余权限检查。 本地 SQLite 数据库用于管理和操作检索到的数据,最大限度地减少 API 调用(和相关日志)。该框架还内置了报告和攻击审计; Pacu 通过命令记录和导出来协助文档流程,帮助建立测试流程的时间表。
我们总是很高兴收到 Pacu 框架本身的错误报告,以及对不同模块的测试和反馈,以及通常有助于完善框架的关键反馈。任何通过使用、测试、改进或只是传播信息对 Pacu 的支持都将非常感激。
如果您有兴趣直接为 Pacu 框架本身做出贡献,请阅读我们的代码约定和 git-flow 注释的贡献指南。
如果您有兴趣为 Pacu 编写自己的模块,请查看我们的模块开发 wiki 页面。当您开发新功能时,请联系我们 - 我们很乐意将您的新模块添加到 Pacu 附带的核心集合中。
改进界面格式
数据库前向迁移和版本跟踪
“攻击手册”允许更轻松地使用复杂的模块执行链
彩色控制台输出
模块试运行功能
允许使用独立配置文件
插件架构改进
Pacu 在 OSX 和 Linux 中得到正式支持。
Pacu 是开源软件,并通过 BSD-3-Clause 许可证进行分发。
通过电子邮件直接向我们报告 Pacu 中的漏洞:[email protected]。
Pacu 在每个会话的文件夹中创建错误日志,并在主目录中创建用于会话外错误的全局错误日志。如果可以的话,请将这些日志包含在错误报告中,因为它将大大简化调试过程。
如果您有功能请求、想法或错误需要报告,请在此处提交。
请提供足以重现您发现的错误的描述,包括回溯和重现步骤,并在提交新的错误报告之前检查您的错误的其他报告。不要提交重复项。
有关演练和完整文档,请访问 Pacu wiki。
无论出于何种原因,我们都很乐意听取您的意见。接触 Rhino 安全实验室 Discord。
据我们所知,Pacu 的功能符合 AWS 可接受使用政策,但作为一种灵活的模块化工具,我们不能保证在所有情况下都是如此。您完全有责任确保您使用 Pacu 的方式符合 AWS 可接受使用政策。
根据您使用的 AWS 服务以及您计划的测试需要什么,您可能需要在针对您的基础设施实际运行 Pacu 之前查看渗透测试的 AWS 客户支持政策。
与任何渗透测试工具一样,您有责任在您的环境之外使用 Pacu 之前获得适当的授权。
Pacu 是绝对不附带任何保证的软件。通过使用 Pacu,您对由此产生的任何及所有结果承担全部责任。