
Enumera le autorizzazioni associate al set di credenziali AWS
Hai trovato un set di credenziali AWS e non hai idea di quali permessi possa avere?
$ ./enumerate-iam.py --access-key AKIA... --secret-key StF0q...
2019-05-10 15:57:58,447 - 21345 - [INFO] Starting permission enumeration for access-key-id "AKIA..."
2019-05-10 15:58:01,532 - 21345 - [INFO] Run for the hills, get_account_authorization_details worked!
2019-05-10 15:58:01,537 - 21345 - [INFO] -- {
"RoleDetailList": [
{
"Tags": [],
"AssumeRolePolicyDocument": {
"Version": "2008-10-17",
"Statement": [
{
...
2019-05-10 15:58:26,709 - 21345 - [INFO] -- gamelift.list_builds() worked!
2019-05-10 15:58:26,850 - 21345 - [INFO] -- cloudformation.list_stack_sets() worked!
2019-05-10 15:58:26,982 - 21345 - [INFO] -- directconnect.describe_locations() worked!
2019-05-10 15:58:27,021 - 21345 - [INFO] -- gamelift.describe_matchmaking_rule_sets() worked!
2019-05-10 15:58:27,311 - 21345 - [INFO] -- sqs.list_queues() worked!
Ora lo sai!
enumerate-iam.py tenta di forzare tutte le chiamate API consentite dalla policy IAM.
Le chiamate eseguite da questo strumento sono tutte non distruttive (vengono eseguite solo chiamate get* e list*).
git clone [email protected]:andresriancho/enumerate-iam.git
cd enumerate-iam/
pip install -r requirements.txt
Questo software è stato scritto per essere facilmente integrabile con altri strumenti, basta importare la funzione principale e fornire gli argomenti richiesti:
from enumerate_iam.main import enumerate_iam
enumerate_iam(access_key,
secret_key,
session_token,
region)
L'output conterrà tutte le informazioni sui permessi enumerati in un dizionario Python.
Prima di scrivere enumerate-iam.py ho provato alcuni che svolgevano lo stesso compito.
Ho deciso di scrivere il mio perché gli altri:
Le chiamate API da eseguire durante l'enumerazione dei permessi sono memorizzate in
enumerate_iam/bruteforce_tests.py, un dict() Python generato da
enumerate_iam/generate_bruteforce_tests.py utilizzando la documentazione API
disponibile nella libreria aws-sdk-js.
AWS rilascia nuovi servizi ogni trimestre, per assicurarti che questo strumento trovi tutti i permessi esistenti esegui:
cd enumerate_iam/
git clone https://github.com/aws/aws-sdk-js.git
python generate_bruteforce_tests.py
rm -rf aws-sdk-js
Questo strumento è stato rilasciato come parte della ricerca Internet-Scale Analysis of AWS Cognito Security. Durante questa ricerca è stato utilizzato anche lo strumento cc-lambda per estrarre informazioni dai dati di Common Crawl.
Il codice iniziale è stato rilasciato in questo gist e migliorato in diversi modi: