
Um analisador e ferramenta de consulta de declarações de política IAM da AWS.
IAMActionHunter é um analisador de declarações de política IAM e ferramenta de consulta que visa simplificar o processo de coleta e compreensão das declarações de política de permissões para usuários e funções no AWS Identity and Access Management (IAM). Embora sua funcionalidade seja direta, esta ferramenta foi desenvolvida em resposta à necessidade de uma solução eficiente durante testes de penetração diários na AWS.
https://rhinosecuritylabs.com/aws/iamactionhunter-aws-iam-permissions/
A ferramenta pode ser utilizada para buscar oportunidades potenciais de escalonamento de privilégios em contas da AWS, consultando várias ações do AWS IAM que podem ser exploradas. Enquanto outras ferramentas realizam varreduras para identificar riscos de escalonamento de privilégios, esta ferramenta permite uma abordagem mais manual, permitindo que os usuários investiguem permissões e revisem rapidamente as funções, usuários e recursos aos quais se aplicam para uma análise direcionada.
Esta ferramenta também oferece a capacidade de exportar e salvar os resultados da consulta no formato CSV, o que é benéfico para equipes de segurança que buscam uma visão geral de alto nível das permissões de entidades e recursos dentro de uma conta AWS. Por exemplo, você pode querer identificar usuários e funções com permissões iam:put* em uma conta. Ao executar uma consulta e gerar um CSV, você pode facilmente revisar todos os usuários e funções com essas permissões, juntamente com os recursos aos quais têm acesso.
Sugerido:
pip3 install iamactionhunter
Grande parte dessa funcionalidade também foi implementada no https://github.com/RhinoSecurityLabs/pacu como um módulo, iam__enum_action_query, se você preferir.
Clone e use Poetry:
git clone https://github.com/RhinoSecurityLabs/IAMActionHunter.git
cd IAMActionHunter
# (potentially necessary: poetry env use python3.9)
poetry install
iamactionhunter --help
iamactionhunter --collect --profile <some-aws-profile>
Clone e use Pip:
git clone https://github.com/RhinoSecurityLabs/IAMActionHunter.git
cd IAMActionHunter
pip install .
iamactionhunter --help
iamactionhunter --collect --profile <some-aws-profile>
Ajuda:
usage: iamactionhunter [-h] [--profile PROFILE] [--account ACCOUNT] [--query QUERY] [--role ROLE] [--user USER]
[--all-or-none] [--collect] [--list] [--csv CSV] [--config CONFIG]
Collect all policies for all users/roles in an AWS account and then query the policies for permissions.
optional arguments:
-h, --help show this help message and exit
--profile PROFILE The name of the AWS profile to use for authentication for user/role collection.
--account ACCOUNT Account number to query.
--query QUERY Permissions to query. A string like: s3:GetObject or s3:* or s3:GetObject,s3:PutObject
--role ROLE Filter role to query.
--user USER Filter user to query.
--all-or-none Check if all queried actions are allowed, not just some.
--collect Collect user and role policies for the account.
--list List accounts available to query.
--csv CSV File name for CSV report output.
--config CONFIG JSON config file for preset queries.
Primeiro, baixe todas as informações do IAM para usuários e funções:
iamactionhunter --collect --profile my-aws-profile
Liste quais dados de conta foram coletados:
iamactionhunter --list
Em seguida, consulte algo:
iamactionhunter --account <account_number_of_profile_above> --query iam:create*
Depois, consulte mais:
iamactionhunter --account <account_number_of_profile_above> --query iam:create*,iam:put*
Consulte uma função específica:
iamactionhunter --account <account_number_of_profile_above> --role some_role --query iam:*
Consulte um usuário específico:
iamactionhunter --account <account_number_of_profile_above> --user some_user --query iam:*
Saída para um CSV:
iamactionhunter --account <account_number_of_profile_above> --query iam:* --csv report.csv
Execute uma configuração predefinida:
iamactionhunter --account <account_number_of_profile_above> --config dangerous_iam
Execute uma consulta que mostre resultados apenas se um usuário ou função tiver todas as permissões consultadas:
iamactionhunter --account <account_number_of_profile_above> --query s3:getobject,s3:listbucket --all-or-none
As opções de configuração embutidas são:
dangerous_iam
write_actions
privescs
iamactionhunter --account <account_number_of_profile> --config dangerous_iam
Um arquivo de configuração é um arquivo JSON que especifica algumas permissões específicas que você deseja procurar. Aqui está um exemplo de arquivo que busca ações de escrita no CodeBuild.
[
{
"Description": "These are all actions which may allow some kind of write privilege in CodeBuild.",
"Name": "CodeBuildWriteActions",
"ActionsNeeded": [
"codebuild:Put*",
"codebuild:Create*",
"codebuild:Delete*",
"codebuild:Modify*",
"codebuild:Update*",
"codebuild:Attach*",
"codebuild:Detach*",
"codebuild:Associate*",
"codebuild:Disassociate*",
"codebuild:Add*",
"codebuild:Remove*",
"codebuild:Set*",
"codebuild:Enable*",
"codebuild:Disable*",
"codebuild:Reset*",
"codebuild:Stop*",
"codebuild:Terminate*",
"codebuild:Reboot*",
"codebuild:Start*"
],
"AllOrNone": false
}
]
Você pode então executar a configuração simplesmente especificando o nome do arquivo no argumento --config.
iamactionhunter --account <account_number_of_profile> --config write_code_build.json