Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/rams3sh/aaia
云基础设施安全权限提升侦察漏洞分析配置审计信息收集渗透测试云安全身份与访问管理 (IAM)
GitHubrams3sh/aaia

Aaia

AWS 身份与访问管理可视化工具与异常检测器

2964062年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

注意

此仓库不再积极开发。但欢迎接受 PR。Aaia 仍然可以正常工作,因为它所依赖的 AWS API 在数据收集方面没有重大变化。

Aaia

(A)n(a)lysis of (I)dentity and (A)ccess

注意:名称确定后才补充的扩展解释 :P

Aaia 能做什么?

Aaia(发音如此处所示)借助 Neo4j 以图形格式可视化 AWS IAM 和 Organizations,有助于轻松识别异常。由于基于 Neo4j,用户可以使用 Cypher 查询来查找异常。

Aaia 还支持通过模块以编程方式从 Neo4j 数据库获取数据并进行自定义处理。这在需要执行复杂比较或逻辑(仅通过 Cypher 查询不易实现)时特别有用。

Aaia 最初旨在枚举权限提升可能性并发现 AWS IAM 中的漏洞。灵感来源于 @JohnLaTwC 的名言:

“防御者按列表思考,攻击者按图思考。只要这一点不变,攻击者就赢了。”

为什么叫“Aaia”?

Aaia 在泰米尔语中意为“奶奶”。通常,奶奶对家族中的人际关系了如指掌,能瞬间理清谁和谁有联系以及如何联系。她就像一个活的图数据库 :P

由于本工具也大致做同样的事情,因此得名。

安装

安装 Neo4j 数据库

1. 使用 Docker 安装(推荐)

i. 安装 Docker 运行时

请参考官方文档进行安装。

ii. 执行以下 Docker 命令:

root@kitploit:~
docker run -p 7687:7687 -p 7474:7474 -v `pwd`/neo4j/data:/data -v `pwd`/neo4j/logs:/logs -e NEO4J_AUTH=neo4j/test neo4j:3.5.17

注意:上述命令会将 Neo4j 数据持久化到磁盘。当然,你可以根据需求修改,并按照偏好更改认证信息。这里提供的凭据也需要在 Aaia.conf 文件中进行配置。

2. 使用二进制文件安装

说明请见此处

在 Aaia.conf 文件中设置用户名、密码和 Bolt 连接 URI。示例格式已在 Aaia.conf 文件中提供。

注意: Aaia 已在 Neo4j v3.5.17 上测试通过,可能兼容更早版本。 Neo4j 在 v4.0 之后引入了一些新变化,经测试与 Aaia 当前代码库不兼容。

安装操作系统依赖

Debian:

root@kitploit:~
apt-get install awscli jq

Redhat / Fedora / Centos / Amazon Linux:

root@kitploit:~
yum install awscli jq

注意:

这些软件包是 Aaia_aws_collector.sh 脚本所必需的。请确保这些软件包存在于运行收集脚本的基系统中。

克隆此仓库

root@kitploit:~
git clone https://github.com/rams3sh/Aaia
cd Aaia/

创建虚拟环境

root@kitploit:~
python3 -m venv env

激活虚拟环境

root@kitploit:~
source env/bin/activate

注意: Aaia 依赖的 pyjq 库在 Windows 下不稳定,因此 Aaia 不支持 Windows 操作系统。

安装依赖

root@kitploit:~
python -m pip install -r requirements.txt

使用 Aaia

在 AWS 中设置权限

Aaia 需要以下 AWS 权限,以便收集脚本从 AWS 收集相关数据:

root@kitploit:~
iam:GenerateCredentialReport
iam:GetCredentialReport
iam:GetAccountAuthorizationDetails
iam:ListUsers
iam:GetUser
iam:ListGroups
iam:ListRoles
iam:GetRole
iam:GetPolicy
iam:GetAccountPasswordPolicy
iam:GetAccountSummary
iam:ListAccountAliases
organizations:ListAccountsForParent
organizations:ListOrganizationalUnitsForParent
organizations:DescribeOrganization
organizations:ListRoots
organizations:ListAccounts
organizations:ListTagsForResource
organizations:ListPolicies
organizations:ListTargetsForPolicy
organizations:DescribePolicy
organizations:ListAWSServiceAccessForOrganization

可以省略“Organizations”相关的权限,但上述所有“IAM”相关权限都是必需的。

请确保用于收集数据的用户/角色/任何 AWS 主体拥有这些权限。

从 AWS 收集数据

确保已配置 AWS 凭据。如需帮助,请参考此处。

凭据配置完成后,运行:

root@kitploit:~
./Aaia_aws_collector.sh <profile_name>

请确保用于数据收集的 AWS 配置文件的输出格式设置为 JSON,因为 Aaia 期望收集的数据为 JSON 格式。

注意:

如果需要从其他实例收集数据,请将“Aaia_aws_collector.sh”文件复制到远程实例,运行它,然后将生成的“offline_data”文件夹复制到 Aaia 所在实例的 Aaia 路径下,然后继续执行后续步骤。这在咨询或客户审计场景中非常有用。

将收集的数据加载到 Neo4j 数据库

root@kitploit:~
python Aaia.py -n <profile_name> -a load_data

-n 支持值为“all”,表示加载 offline_data 文件夹中收集的所有数据。

注意:

请确保凭据文件中没有名为“all”的配置文件,以免与参数冲突 :P

现在我们已经准备好使用 Aaia。

通过自定义模块审计 IAM

目前提供了一个示例模块作为骨架参考,你可以参考它来构建自定义模块。

root@kitploit:~
python Aaia.py -n all -m iam_sample_audit

致谢

Aaia 受多个优秀开源项目的影响和启发。特别感谢:

  • Cloudmapper
  • Cartography
  • BloodHound

Aaia 实际运行演示

asciicast

截图

一个模拟 AWS 账户 IAM 的可视化示例

AWS IAM Neo4j 可视化

一个 Cypher 查询结果的示例可视化,用于查找 AWS IAM 中用户的所有关系

AWS IAM 查询结果可视化

待办事项

  • 撰写详细文档,解释 Aaia 的 Neo4j 数据库 Schema
  • 撰写详细文档,指导如何为 Aaia 开发自定义模块
  • 编写自定义模块,评估 RhinoSecurity 发现的 28 种 AWS 权限提升方法
  • 提供一个查询速查表,用于识别 AWS IAM 中的常见问题
  • 将 Aaia 扩展到其他云提供商
下载工具