
Un analizzatore di dichiarazioni di policy IAM AWS e uno strumento di interrogazione.
IAMActionHunter è un parser di dichiarazioni di policy IAM e uno strumento di query che mira a semplificare il processo di raccolta e comprensione delle dichiarazioni di policy per utenti e ruoli in AWS Identity and Access Management (IAM). Sebbene la sua funzionalità sia semplice, questo strumento è stato sviluppato in risposta alla necessità di una soluzione efficiente durante i test di penetrazione AWS quotidiani.
https://rhinosecuritylabs.com/aws/iamactionhunter-aws-iam-permissions/
Lo strumento può essere utilizzato per cercare potenziali opportunità di escalation dei privilegi negli account AWS interrogando varie azioni IAM di AWS che potrebbero essere sfruttate. Mentre altri strumenti eseguono scansioni per identificare i rischi di escalation dei privilegi, questo strumento consente un approccio più manuale, permettendo agli utenti di indagare le autorizzazioni e rivedere rapidamente i ruoli, gli utenti e le risorse a cui si applicano per un'analisi mirata.
Questo strumento offre anche la possibilità di esportare e salvare i risultati delle query in formato CSV, utile per i team di sicurezza che cercano una panoramica di alto livello delle autorizzazioni dei principali e delle risorse all'interno di un account AWS. Ad esempio, potresti voler identificare utenti e ruoli con autorizzazioni iam:put* in un account. Eseguendo una query e generando un CSV, puoi facilmente rivedere tutti gli utenti e ruoli con queste autorizzazioni, insieme alle risorse a cui hanno accesso.
Consigliato:
pip3 install iamactionhunter
Gran parte di questa funzionalità è stata implementata anche in https://github.com/RhinoSecurityLabs/pacu come modulo, iam__enum_action_query se preferisci.
Clona e usa Poetry:
git clone https://github.com/RhinoSecurityLabs/IAMActionHunter.git
cd IAMActionHunter
# (potenzialmente necessario: poetry env use python3.9)
poetry install
iamactionhunter --help
iamactionhunter --collect --profile <some-aws-profile>
Clona e usa Pip:
git clone https://github.com/RhinoSecurityLabs/IAMActionHunter.git
cd IAMActionHunter
pip install .
iamactionhunter --help
iamactionhunter --collect --profile <some-aws-profile>
Aiuto:
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.
Prima scarica tutte le informazioni IAM per utenti e ruoli:
iamactionhunter --collect --profile my-aws-profile
Elenca qualsiasi account per cui sono stati raccolti dati:
iamactionhunter --list
Poi esegui una query:
iamactionhunter --account <account_number_of_profile_above> --query iam:create*
Poi esegui altre query:
iamactionhunter --account <account_number_of_profile_above> --query iam:create*,iam:put*
Interroga un ruolo specifico:
iamactionhunter --account <account_number_of_profile_above> --role some_role --query iam:*
Interroga un utente specifico:
iamactionhunter --account <account_number_of_profile_above> --user some_user --query iam:*
Esporta in CSV:
iamactionhunter --account <account_number_of_profile_above> --query iam:* --csv report.csv
Esegui una configurazione predefinita:
iamactionhunter --account <account_number_of_profile_above> --config dangerous_iam
Esegui una query che mostra i risultati solo se un utente o un ruolo ha tutte le autorizzazioni interrogate:
iamactionhunter --account <account_number_of_profile_above> --query s3:getobject,s3:listbucket --all-or-none
Le opzioni di configurazione integrate sono:
dangerous_iam
write_actions
privescs
iamactionhunter --account <account_number_of_profile> --config dangerous_iam
Un file di configurazione è un file JSON che specifica alcune autorizzazioni specifiche che si desidera cercare. Ecco un file di esempio che cerca azioni di scrittura in 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
}
]
Puoi quindi eseguire la configurazione semplicemente specificando il nome del file nell'argomento --config.
iamactionhunter --account <account_number_of_profile> --config write_code_build.json