
Énumérer les autorisations associées à un ensemble d'informations d'identification AWS
Vous avez trouvé un ensemble d'identifiants AWS et vous n'avez aucune idée des permissions qu'ils pourraient avoir ?
$ ./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!
Maintenant, vous le savez !
enumerate-iam.py tente de forcer par force brute tous les appels API autorisés par la politique IAM.
Les appels effectués par cet outil sont tous non destructifs (seuls les appels get* et list*
sont effectués).
git clone [email protected]:andresriancho/enumerate-iam.git
cd enumerate-iam/
pip install -r requirements.txt
Ce logiciel a été écrit pour être facilement intégré à d'autres outils, il suffit d'importer la fonction principale et de fournir les arguments requis :
from enumerate_iam.main import enumerate_iam
enumerate_iam(access_key,
secret_key,
session_token,
region)
La sortie contiendra toutes les informations de permissions énumérées dans un dictionnaire Python.
Avant d'écrire enumerate-iam.py, j'ai essayé quelques outils qui effectuaient la même tâche.
J'ai décidé d'écrire le mien parce que les autres :
Les appels API à effectuer lors de l'énumération des permissions sont stockés dans
enumerate_iam/bruteforce_tests.py, un dict() Python qui est généré par
enumerate_iam/generate_bruteforce_tests.py en utilisant la documentation API
disponible dans la bibliothèque aws-sdk-js.
AWS publie de nouveaux services chaque trimestre, pour vous assurer que cet outil trouve toutes les permissions existantes, exécutez :
cd enumerate_iam/
git clone https://github.com/aws/aws-sdk-js.git
python generate_bruteforce_tests.py
rm -rf aws-sdk-js
Cet outil a été publié dans le cadre de la recherche Internet-Scale Analysis of AWS Cognito Security. Durant cette recherche, l'outil cc-lambda a également été utilisé pour extraire des informations à partir des données de Common Crawl.
Le code initial a été publié dans ce gist et amélioré de multiples façons :