
Listen Sie die mit dem AWS-Anmeldeinformationssatz verbundenen Berechtigungen auf
Sie haben einen Satz AWS-Anmeldeinformationen gefunden und keine Ahnung, welche Berechtigungen damit verbunden sein könnten?
$ ./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!
Jetzt schon!
enumerate-iam.py versucht, alle von der IAM-Richtlinie erlaubten API-Aufrufe per Brute-Force zu ermitteln.
Die von diesem Tool durchgeführten Aufrufe sind alle nicht-destruktiv (es werden nur get*- und list*-Aufrufe durchgeführt).
git clone [email protected]:andresriancho/enumerate-iam.git
cd enumerate-iam/
pip install -r requirements.txt
Diese Software wurde so geschrieben, dass sie sich leicht in andere Tools integrieren lässt. Importieren Sie einfach die Hauptfunktion und übergeben Sie die erforderlichen Argumente:
from enumerate_iam.main import enumerate_iam
enumerate_iam(access_key,
secret_key,
session_token,
region)
Die Ausgabe enthält alle aufgelisteten Berechtigungsinformationen in einem Python-Dictionary.
Bevor ich enumerate-iam.py geschrieben habe, habe ich einige ausprobiert, die dieselbe Aufgabe erfüllten. Ich habe mich entschieden, mein eigenes zu schreiben, weil die anderen:
Die während der Berechtigungsauflistung durchzuführenden API-Aufrufe sind in enumerate_iam/bruteforce_tests.py gespeichert, einem Python-dict(), das von enumerate_iam/generate_bruteforce_tests.py unter Verwendung der in der aws-sdk-js-Bibliothek verfügbaren API-Dokumentation generiert wird.
AWS veröffentlicht jedes Quartal neue Dienste. Um sicherzustellen, dass dieses Tool alle vorhandenen Berechtigungen findet, führen Sie aus:
cd enumerate_iam/
git clone https://github.com/aws/aws-sdk-js.git
python generate_bruteforce_tests.py
rm -rf aws-sdk-js
Dieses Tool wurde als Teil der Forschung Internet-Scale Analysis of AWS Cognito Security veröffentlicht. Während dieser Forschung wurde auch das Tool cc-lambda verwendet, um Informationen aus den Common-Crawl-Daten zu extrahieren.
Der ursprüngliche Code wurde in diesem Gist veröffentlicht und in mehrfacher Hinsicht verbessert: