
Un analizador de declaraciones de políticas IAM de AWS y herramienta de consulta.
IAMActionHunter es un analizador de declaraciones de políticas IAM y herramienta de consulta que tiene como objetivo simplificar el proceso de recopilación y comprensión de declaraciones de políticas de permisos para usuarios y roles en AWS Identity and Access Management (IAM). Aunque su funcionalidad es sencilla, esta herramienta fue desarrollada en respuesta a la necesidad de una solución eficiente durante las pruebas de penetración diarias en AWS.
https://rhinosecuritylabs.com/aws/iamactionhunter-aws-iam-permissions/
La herramienta se puede utilizar para buscar posibles oportunidades de escalada de privilegios en cuentas de AWS consultando varias acciones de IAM de AWS que podrían ser explotadas. Si bien otras herramientas realizan escaneos para identificar riesgos de escalada de privilegios, esta herramienta permite un enfoque más manual, permitiendo a los usuarios investigar permisos y revisar rápidamente los roles, usuarios y recursos a los que se aplican para un análisis dirigido.
Esta herramienta también ofrece la capacidad de generar y guardar los resultados de las consultas en formato CSV, lo cual es beneficioso para los equipos de seguridad que buscan una visión general de alto nivel de los permisos y recursos de los principales dentro de una cuenta de AWS. Por ejemplo, es posible que desee identificar usuarios y roles con permisos iam:put* en una cuenta. Al ejecutar una consulta y generar un CSV, puede revisar fácilmente todos los usuarios y roles con estos permisos, junto con los recursos a los que tienen acceso.
Recomendado:
pip3 install iamactionhunter
Gran parte de esta funcionalidad también se ha implementado en https://github.com/RhinoSecurityLabs/pacu como un módulo, iam__enum_action_query si lo prefiere.
Clone y use Poetry:
git clone https://github.com/RhinoSecurityLabs/IAMActionHunter.git
cd IAMActionHunter
# (potencialmente necesario: poetry env use python3.9)
poetry install
iamactionhunter --help
iamactionhunter --collect --profile <some-aws-profile>
Clone y use Pip:
git clone https://github.com/RhinoSecurityLabs/IAMActionHunter.git
cd IAMActionHunter
pip install .
iamactionhunter --help
iamactionhunter --collect --profile <some-aws-profile>
Ayuda:
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.
Primero descargue toda la información de IAM para usuarios y roles:
iamactionhunter --collect --profile my-aws-profile
Enumere cualquier cuenta para la que se haya recopilado datos:
iamactionhunter --list
Luego consulte algo:
iamactionhunter --account <account_number_of_profile_above> --query iam:create*
Luego consulte más:
iamactionhunter --account <account_number_of_profile_above> --query iam:create*,iam:put*
Consulte un rol en particular:
iamactionhunter --account <account_number_of_profile_above> --role some_role --query iam:*
Consulte un usuario en particular:
iamactionhunter --account <account_number_of_profile_above> --user some_user --query iam:*
Genere un CSV:
iamactionhunter --account <account_number_of_profile_above> --query iam:* --csv report.csv
Ejecute una configuración predefinida:
iamactionhunter --account <account_number_of_profile_above> --config dangerous_iam
Ejecute una consulta que solo muestre resultados si un usuario o rol tiene todos los permisos consultados:
iamactionhunter --account <account_number_of_profile_above> --query s3:getobject,s3:listbucket --all-or-none
Las opciones de configuración integradas son:
dangerous_iam
write_actions
privescs
iamactionhunter --account <account_number_of_profile> --config dangerous_iam
Un archivo de configuración es un archivo JSON que especifica algunos permisos específicos que desea buscar. Aquí hay un ejemplo de archivo que busca acciones de escritura en 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
}
]
Luego podría ejecutar la configuración simplemente especificando el nombre del archivo en el argumento --config.
iamactionhunter --account <account_number_of_profile> --config write_code_build.json