From 858701e88b72f00e86c026c6d46bb4fd92c69f3c Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 4 Oct 2025 09:19:15 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat --- .../aws-secrets-manager-post-exploitation.md | 48 +++++++++++++++---- .../aws-secrets-manager-privesc.md | 13 +++-- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md index 0fe605193..4d24e8b27 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md @@ -4,7 +4,7 @@ ## Secrets Manager -更多信息请参阅: +更多信息请参见: {{#ref}} ../aws-services/aws-secrets-manager-enum.md @@ -12,14 +12,14 @@ ### 读取 Secrets -这些 **secrets 本身是敏感信息**,[查看 privesc 页面](../aws-privilege-escalation/aws-secrets-manager-privesc.md) 了解如何读取它们。 +这些 **secrets 本身是敏感信息**,[请查看 privesc 页面](../aws-privilege-escalation/aws-secrets-manager-privesc.md) 了解如何读取它们。 ### DoS 更改 Secret 值 -更改 secret 的值可能会导致所有依赖该值的系统 **被 DoS。** +更改 secret 的值可能会对所有依赖该值的系统造成 **DoS**。 > [!WARNING] -> 请注意,先前的值也会被存储,因此很容易回滚到之前的值。 +> 请注意,先前的值也会被存储,因此可以很容易地恢复到之前的值。 ```bash # Requires permission secretsmanager:PutSecretValue aws secretsmanager put-secret-value \ @@ -28,11 +28,11 @@ aws secretsmanager put-secret-value \ ``` ### DoS Change KMS key -如果攻击者具有 secretsmanager:UpdateSecret 权限,他们可以将 secret 配置为使用攻击者拥有的 KMS key。该 key 最初被设置为任何人都可以访问和使用,因此可以使用该新 key 更新 secret。如果该 key 无法访问,则无法更新 secret。 +如果 attacker 拥有 secretsmanager:UpdateSecret 权限,就可以将 secret 配置为使用由 attacker 拥有的 KMS key。该 key 最初被设置为任何人都可以访问和使用,因此可以使用该新 key 更新 secret。如果该 key 无法访问,则无法更新 secret。 -在更改 secret 使用的 key 之后,攻击者会修改他们的 key 的配置,使只有他们自己可以访问。这样,secret 的后续版本将使用该新 key 加密,由于无法访问该 key,就无法检索这些 secret。 +在更改 secret 的 key 之后,attacker 会修改其 key 的配置,使只有他们自己可以访问。这样,之后的 secret 版本将使用新 key 加密,由于无法访问该 key,就无法检索 secret。 -需要注意的是,这种不可访问性只会出现在后续版本(在 secret 内容更改之后),因为当前版本仍然使用原来的 KMS key 加密。 +需要注意的是,这种不可访问性只会发生在后续版本(在 secret 内容更改之后),因为当前版本仍然使用原来的 KMS key 加密。 ```bash aws secretsmanager update-secret \ --secret-id MyTestSecret \ @@ -40,10 +40,42 @@ aws secretsmanager update-secret \ ``` ### DoS Deleting Secret -删除一个 secret 的最短天数为 7 天 +删除 secret 的最短天数为 7 天 ```bash aws secretsmanager delete-secret \ --secret-id MyTestSecret \ --recovery-window-in-days 7 ``` +## secretsmanager:RestoreSecret + +可以恢复一个 secret,这允许恢复已计划删除的 secret,因为 secrets 的最短删除期限为 7 天,最长为 30 天。再加上 secretsmanager:GetSecretValue 权限,就可以检索它们的内容。 + +要恢复正在被删除的 secret,您可以使用以下命令: +```bash +aws secretsmanager restore-secret \ +--secret-id +``` +## secretsmanager:DeleteResourcePolicy + +此操作允许删除控制谁可以访问 secret 的 resource policy。如果该 resource policy 被配置为允许特定用户集访问,则可能导致 DoS。 + +要删除 resource policy: +```bash +aws secretsmanager delete-resource-policy \ +--secret-id +``` +## secretsmanager:UpdateSecretVersionStage + +一个 secret 的状态用于管理 secret 的不同版本。AWSCURRENT 标记应用程序使用的活动版本,AWSPREVIOUS 保留前一个版本以便在必要时回滚,而 AWSPENDING 在轮换过程中用于准备并验证新版本,在将其设为当前版本之前使用。 + +应用程序总是读取标有 AWSCURRENT 的版本。如果有人把该标签移动到错误的版本,应用将使用无效的凭据并可能失败。 + +AWSPREVIOUS 不会被自动使用。然而,如果 AWSCURRENT 被移除或错误地重新分配,可能会看起来一切仍在使用前一个版本运行。 +```bash +aws secretsmanager update-secret-version-stage \ +--secret-id \ +--version-stage AWSCURRENT \ +--move-to-version-id \ +--remove-from-version-id +``` {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md index 3c48c779b..ff9878c62 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md @@ -4,7 +4,7 @@ ## Secrets Manager -有关 Secrets Manager 的更多信息,请查看: +有关 secrets manager 的更多信息,请查看: {{#ref}} ../aws-services/aws-secrets-manager-enum.md @@ -12,21 +12,24 @@ ### `secretsmanager:GetSecretValue` -具有此权限的攻击者可以获取 AWS **Secretsmanager** 中 **秘密内保存的值**。 +拥有此权限的攻击者可以在 AWS **Secretsmanager** 中获取 **secret 内已保存的值**。 ```bash aws secretsmanager get-secret-value --secret-id # Get value ``` -**潜在影响:** 访问 AWS Secrets Manager 服务中的高度敏感数据。 +**潜在影响:** 访问 AWS secrets manager service 中的高度敏感数据。 + +> [!WARNING] +> 请注意,即使具有 `secretsmanager:BatchGetSecretValue` 权限,攻击者仍然需要 `secretsmanager:GetSecretValue` 才能检索这些敏感的 secret。 ### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`) -通过之前的权限,可以**授予其他主体/账户(甚至外部)**访问**秘密**的权限。请注意,为了**读取使用 KMS 密钥加密的秘密**,用户还需要对**KMS 密钥**具有**访问权限**(更多信息请参见 [KMS Enum page](../aws-services/aws-kms-enum.md))。 +在具备上述权限的情况下,可以**将访问权限授予其他主体/账户(甚至外部)**来访问该 **secret**。注意,为了**读取使用 KMS key 加密的 secrets**,用户还需要对 **KMS key** 具有访问权限(更多信息见 [KMS Enum page](../aws-services/aws-kms-enum.md))。 ```bash aws secretsmanager list-secrets aws secretsmanager get-resource-policy --secret-id aws secretsmanager put-resource-policy --secret-id --resource-policy file:///tmp/policy.json ``` -policy.json: +请粘贴 policy.json 的内容,我会把其中可翻译的英文说明翻译成中文(保留代码、文件名、路径和标签不翻译)。 ```json { "Version": "2012-10-17",