Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Aaia — AWS Identity and Access Management: визуализатор и поиск аномалий | Kitploit
Инструменты/GitHubGitHub/rams3sh/aaia
Безопасность облачной инфраструктурыПовышение привилегийРазведкаАнализ уязвимостейАудит конфигурацииСбор информацииТестирование на ПроникновениеБезопасность облачных средУправление идентификацией и доступом (IAM)
GitHubrams3sh/aaia

Aaia

AWS Identity and Access Management: визуализатор и поиск аномалий

296406 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

ПРИМЕЧАНИЕ

Этот репозиторий не находится в активной разработке. Однако я открыт для принятия PR. Aaia всё ещё работает, так как в AWS API, которые он использует для сбора данных, не произошло значительных изменений.

Aaia

(A)нализ (и)дентичности и (д)оступа (I и A)

Примечание: Расшифровка создана уже после выбора названия :P

Что делает Aaia?

Aaia (произносится как показано здесь) помогает визуализировать AWS IAM и Organizations в формате графа с помощью Neo4j. Это помогает легко выявлять выбросы. Поскольку он основан на neo4j, можно запрашивать граф с помощью cypher-запросов для поиска аномалий.

Aaia также поддерживает модули для программного получения данных из базы данных neo4j и их обработки в пользовательском стиле. Это в основном полезно, когда необходимо применить сложное сравнение или логику, которые иначе было бы нелегко реализовать через cypher-запросы.

Изначально Aaia задумывался как инструмент для перечисления возможностей повышения привилегий и поиска уязвимостей в AWS IAM. Он был вдохновлён цитатой @JohnLaTwC:

"Защитники думают списками. Атакующие думают графами. Пока это так, атакующие побеждают."

Почему название "Aaia"?

Aaia на тамильском означает бабушка. В целом, Aaia знает всё о семье. Она легко может соединить, кто кому кем приходится; и как; и дать вам связь за долю секунды. Она — живая графовая база данных. :P

Поскольку "Aaia" (этот инструмент) делает примерно то же самое, отсюда и название.

Установка

Установка базы данных 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. Установка с помощью бинарного файла

Инструкции здесь

Настройте имя пользователя, пароль и URI болтового соединения в файле Aaia.conf. Пример формата уже приведён в файле Aaia.conf.

Примечание: Aaia тестировался с neo4j v 3.5.17. Он может работать и с более старыми версиями. Neo4j ввёл некоторые изменения после версии 4.0, которые, как выяснилось, несовместимы с текущей кодовой базой Aaia.

Установка системных зависимостей

Debian:

apt-get install awscli jq

Redhat / Fedora / Centos / Amazon Linux:

yum install awscli jq

Примечание:

Эти пакеты необходимы для скрипта Aaia_aws_collector.sh. Убедитесь, что эти пакеты присутствуют в базовой системе, откуда запускается скрипт сбора.

Клонирование этого репозитория

git clone https://github.com/rams3sh/Aaia

cd Aaia/

Создание виртуального окружения

python3 -m venv env

Активация виртуального окружения

source env/bin/activate

Примечание: Aaia зависит от библиотеки pyjq, которая в настоящее время нестабильна в Windows. Поэтому Aaia не поддерживается для ОС Windows.

Установка зависимостей

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 DB

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

Скриншоты

Пример визуализации IAM тестового AWS аккаунта

Изображение графа AWS IAM Neo4j

Пример визуализации результата cypher-запроса для поиска всех связей пользователя в AWS IAM

Изображение результата запроса AWS IAM

ПЛАНЫ

  • Написать подробную документацию для понимания схемы Neo4j DB Aaia
  • Написать подробную документацию для разработки пользовательских модулей для Aaia
  • Написать пользовательские модули для оценки 28 методов повышения привилегий в AWS, выявленных RhinoSecurity.
  • Предоставить шпаргалку запросов для выявления простых проблем в AWS IAM
  • Расширить Aaia на другие облачные провайдеры.
Скачать инструмент