From 0894db49fccfd7a80debfe5bcd33df4b697255a4 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 6 Oct 2025 10:00:25 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat --- .../aws-secrets-manager-post-exploitation.md | 77 +++++++++++++++---- .../aws-secrets-manager-privesc.md | 10 +-- 2 files changed, 66 insertions(+), 21 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 23e9f6779..afc19553f 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 @@ -10,16 +10,16 @@ For more information check: ../aws-services/aws-secrets-manager-enum.md {{#endref}} -### Lees geheime +### Lees Secrets -Die **geheime self is sensitiewe inligting**, [kyk na die privesc bladsy](../aws-privilege-escalation/aws-secrets-manager-privesc.md) om te leer hoe om dit te lees. +Die **secrets self is sensitiewe inligting**, [sien die privesc bladsy](../aws-privilege-escalation/aws-secrets-manager-privesc.md) om te leer hoe om dit te lees. -### DoS — Verander geheime waarde +### DoS: Verander Secret Value -Deur die waarde van die geheim te verander, kan jy **'n DoS op al die stelsels wat van daardie waarde afhanklik is veroorsaak.** +Deur die waarde van die secret te verander kan jy **DoS al die stelsels wat van daardie waarde afhanklik is.** > [!WARNING] -> Let wel dat vorige waardes ook gestoor word, so dit is maklik om net terug te keer na die vorige waarde. +> Let daarop dat vorige waardes ook gestoor word, so dit is maklik om net terug te gaan na die vorige waarde. ```bash # Requires permission secretsmanager:PutSecretValue aws secretsmanager put-secret-value \ @@ -28,11 +28,11 @@ aws secretsmanager put-secret-value \ ``` ### DoS Change KMS key -As die aanvaller die secretsmanager:UpdateSecret toestemming het, kan hulle die geheim konfigureer om 'n KMS key te gebruik wat deur die aanvaller besit word. Daardie sleutel word aanvanklik so opgestel dat enigiemand daartoe toegang het en dit kan gebruik, sodat die geheim met die nuwe sleutel bygewerk kan word. As die sleutel nie toeganklik was nie, kon die geheim nie bygewerk word nie. +As die aanvaller die secretsmanager:UpdateSecret permission het, kan hulle die geheim konfigureer om 'n KMS key te gebruik wat deur die aanvaller besit word. Daardie key word aanvanklik so opgestel dat enigiemand daartoe toegang kan kry en dit kan gebruik, so dit is moontlik om die geheim met die nuwe key by te werk. As die key nie toeganklik was nie, sou die geheim nie bygewerk kon word nie. -Na die verandering van die sleutel vir die geheim, wysig die aanvaller die konfigurasie van hul sleutel sodat slegs hulle daartoe toegang het. Op hierdie manier sal toekomstige weergawes van die geheim met die nuwe sleutel geënkripteer word, en aangesien daar geen toegang tot daardie sleutel is nie, sal die vermoë om die geheim op te haal verlore gaan. +Nadat die key vir die geheim verander is, wysig die aanvaller die konfigurasie van hulle key sodat net hulle daartoe toegang het. Op hierdie manier sal toekomstige weergawes van die geheim met die nuwe key versleuteld word, en aangesien daar geen toegang daartoe is nie, sal die vermoë om die geheim op te vra verlore wees. -Dit is belangrik om te let dat hierdie ontoeganklikheid slegs in latere weergawes sal voorkom, nadat die inhoud van die geheim verander is, aangesien die huidige weergawe steeds met die oorspronklike KMS key geënkripteer is. +Dit is belangrik om op te let dat hierdie ontoeganklikheid slegs in latere weergawes sal voorkom, nadat die inhoud van die geheim verander het, aangesien die huidige weergawe nog steeds met die oorspronklike KMS key versleuteld is. ```bash aws secretsmanager update-secret \ --secret-id MyTestSecret \ @@ -40,7 +40,7 @@ aws secretsmanager update-secret \ ``` ### DoS Deleting Secret -Die minimum aantal dae om 'n secret te verwyder is 7 +Die minimum aantal dae om 'n secret te verwyder, is 7 ```bash aws secretsmanager delete-secret \ --secret-id MyTestSecret \ @@ -48,29 +48,29 @@ aws secretsmanager delete-secret \ ``` ## secretsmanager:RestoreSecret -Dit is moontlik om 'n geheim te herstel, wat die herstel van geheime wat vir verwydering geskeduleer is moontlik maak, aangesien die minimum verwyderingsperiode vir geheime 7 dae is en die maksimum 30 dae. Saam met die secretsmanager:GetSecretValue toestemming maak dit moontlik om hul inhoud te bekom. +Dit is moontlik om 'n geheim te herstel, wat die herstel van geheime wat vir verwydering geskeduleer is toelaat, aangesien die minimum verwyderingsperiode vir geheime 7 dae en die maksimum 30 dae is. Saam met die secretsmanager:GetSecretValue-toestemming maak dit moontlik om hul inhoud te verkry. -Om 'n geheim wat in die proses van verwydering is te herstel, gebruik jy die volgende opdrag: +Om 'n geheim te herstel wat in die proses is om verwyder te word, kan jy die volgende opdrag gebruik: ```bash aws secretsmanager restore-secret \ --secret-id ``` ## secretsmanager:DeleteResourcePolicy -Hierdie aksie maak dit moontlik om die hulpbronbeleid te verwyder wat beheer wie toegang tot 'n geheim het. Dit kan tot 'n DoS lei indien die hulpbronbeleid gekonfigureer was om toegang aan 'n spesifieke groep gebruikers toe te laat. +Hierdie aksie laat toe om die resource policy wat beheer wie toegang tot 'n secret het, te verwyder. Dit kan lei tot 'n DoS as die resource policy gekonfigureer was om toegang aan 'n spesifieke groep gebruikers toe te staan. -Om die hulpbronbeleid te verwyder: +Om die resource policy te verwyder: ```bash aws secretsmanager delete-resource-policy \ --secret-id ``` ## secretsmanager:UpdateSecretVersionStage -Die state van 'n geheim word gebruik om weergawes van 'n geheim te bestuur. AWSCURRENT merk die aktiewe weergawe wat toepassings gebruik, AWSPREVIOUS hou die vorige weergawe sodat jy terug kan rol indien nodig, en AWSPENDING word in die rotasieproses gebruik om 'n nuwe weergawe voor te berei en te valideer voordat dit die huidige gemaak word. +Die state van 'n secret word gebruik om weergawes van 'n secret te bestuur. AWSCURRENT merk die aktiewe weergawe wat toepassings gebruik, AWSPREVIOUS hou die vorige weergawe sodat jy kan terugrol indien nodig, en AWSPENDING word in die rotasieproses gebruik om 'n nuwe weergawe voor te berei en te valideer voordat dit die huidige een gemaak word. -Toepassings lees altyd die weergawe met AWSCURRENT. As iemand daardie etiket na die verkeerde weergawe skuif, sal die toepassings ongeldige inlogbewyse gebruik en kan misluk. +Toepassings lees altyd die weergawe met AWSCURRENT. As iemand daardie etiket na die verkeerde weergawe skuif, sal die apps ongeldige inlogbewyse gebruik en kan misluk. -AWSPREVIOUS word nie outomaties gebruik nie. As AWSCURRENT egter verwyder of verkeerd toegewys word, kan dit lyk asof alles steeds op die vorige weergawe loop. +AWSPREVIOUS word nie outomaties gebruik nie. As AWSCURRENT egter verwyder of verkeerd heraangewys word, kan dit lyk asof alles steeds met die vorige weergawe loop. ```bash aws secretsmanager update-secret-version-stage \ --secret-id \ @@ -79,3 +79,48 @@ 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) + +Misbruik die Secrets Manager BatchGetSecretValue API om tot 20 geheime in 'n enkele versoek te kry. Dit kan die aantal API-oproepe drasties verminder vergeleke met die herhaalde gebruik van GetSecretValue vir elke geheim. As filters gebruik word (tags/name), is secretsmanager:ListSecrets-permissie ook nodig. CloudTrail registreer steeds een GetSecretValue-gebeurtenis per geheim wat in die batch onttrek is. + +Vereiste permissies +- secretsmanager:BatchGetSecretValue +- secretsmanager:GetSecretValue vir elke teikengeheim +- secretsmanager:ListSecrets (nodig as --filters gebruik word) +- kms:Decrypt op die CMKs wat deur die geheime gebruik word (as jy nie aws/secretsmanager gebruik nie) + +> [!WARNING] +> Let daarop dat die permissie `secretsmanager:BatchGetSecretValue` op sigself nie voldoende is om geheime te onttrek nie; jy het ook `secretsmanager:GetSecretValue` nodig vir elke geheim wat jy wil onttrek. + +Exfiltrate by explicit list +```bash +aws secretsmanager batch-get-secret-value \ +--secret-id-list \ +--query 'SecretValues[].{Name:Name,Version:VersionId,Val:SecretString}' +``` +Exfiltrate deur filters (tag key/value or name prefix) +```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 +``` +Hantering van gedeeltelike mislukkings +```bash +# Inspect the Errors list for AccessDenied/NotFound and retry/adjust filters +aws secretsmanager batch-get-secret-value --secret-id-list +``` +Impact +- Vinnige “smash-and-grab” van baie secrets met minder API-oproepe, wat moontlik waarskuwings wat op pieke van GetSecretValue ingestel is, kan omseil. +- CloudTrail logs sluit steeds een GetSecretValue-gebeurtenis per secret in wat deur die batch opgehaal is. 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 402d87761..a57b1a9b2 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 -Vir meer inligting oor Secrets Manager, kyk: +Vir meer inligting oor Secrets Manager kyk: {{#ref}} ../aws-services/aws-secrets-manager-enum.md @@ -12,18 +12,18 @@ Vir meer inligting oor Secrets Manager, kyk: ### `secretsmanager:GetSecretValue` -'n attacker met hierdie toestemming kan die **gestoorde waarde binne 'n secret** in AWS **Secretsmanager** kry. +An attacker met hierdie toestemming kan die **gestoorde waarde binne 'n secret'** in AWS **Secretsmanager** kry. ```bash aws secretsmanager get-secret-value --secret-id # Get value ``` -**Potential Impact:** Toegang tot hoogs sensitiewe data binne die AWS secrets manager service. +**Potensiële impak:** Toegang tot hoogs sensitiewe data binne die AWS secrets manager service. > [!WARNING] -> Let wel dat selfs met die `secretsmanager:BatchGetSecretValue` permissie 'n aanvaller ook `secretsmanager:GetSecretValue` nodig sou hê om die sensitiewe secrets te verkry. +> Let wel dat selfs met die `secretsmanager:BatchGetSecretValue` toestemming 'n aanvaller ook die `secretsmanager:GetSecretValue` toestemming nodig het om die sensitiewe secrets te kry. ### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`) -Met die voorafgaande permissies is dit moontlik om **ander principals/accounts (selfs ekstern)** toegang tot die **secret** te gee. Let wel dat om **geënkripteerde secrets te lees** wat met 'n KMS key gekodeer is, die gebruiker ook **toegang tot die KMS key** moet hê (meer inligting op die [KMS Enum page](../aws-services/aws-kms-enum.md)). +Met die vorige permissies is dit moontlik om **toegang te gee aan ander principals/accounts (selfs ekstern)** om toegang tot die **secret** te kry. Let wel dat om **secrets wat met 'n KMS key geënkripteer is** te lees, die gebruiker ook **toegang tot die KMS key** moet hê (meer info in die [KMS Enum page](../aws-services/aws-kms-enum.md)). ```bash aws secretsmanager list-secrets aws secretsmanager get-resource-policy --secret-id