AWS - Codebuild Enum

Tip

Nauči & vežbaj AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

CodeBuild

AWS CodeBuild je prepoznat kao potpuno upravljana usluga kontinuirane integracije. Primarna svrha ove usluge je automatizacija procesa kompajliranja izvornog koda, izvršavanja testova i pakovanja softvera za potrebe deployment-a. Glavna prednost CodeBuild-a je što eliminiše potrebu da korisnici provisiru, upravljaju i skaliraju svoje build servere, jer to servis radi umesto njih. Ključne karakteristike AWS CodeBuild obuhvataju:

  1. Managed Service: CodeBuild upravlja i skalira build servere, oslobađajući korisnike od održavanja servera.
  2. Continuous Integration: Integriše se u tok razvoja i deployment-a, automatizujući faze buildovanja i testiranja u procesu objavljivanja softvera.
  3. Package Production: Nakon faza buildovanja i testiranja, priprema softverske pakete spremne za deployment.

AWS CodeBuild se besprekorno integriše sa drugim AWS servisima, poboljšavajući efikasnost i pouzdanost CI/CD pipeline-a.

Github/Gitlab/Bitbucket Credentials

Default source credentials

Ovo je nasleđena opcija gde je moguće konfigurisati neki pristup (npr. Github token ili app) koji će biti deljen između CodeBuild projekata tako da svi projekti mogu koristiti ovaj konfigurisani set kredencijala.

Skladišteni kredencijali (tokeni, lozinke…) su upravlјani od strane CodeBuild i ne postoji javni način da ih se dohvati preko AWS API-ja.

Custom source credential

U zavisnosti od platforme repozitorijuma (Github, Gitlab i Bitbucket) dostupne su različite opcije. Ali generalno, svaka opcija koja zahteva da se sačuva token ili lozinka će ga sačuvati kao secret u secrets manager-u.

Ovo omogućava različitim CodeBuild projektima da koriste različite konfigurisane pristupe provajderima umesto da koriste samo konfigurisani podrazumevani.

Enumeracija

# List external repo creds (such as github tokens)
## It doesn't return the token but just the ARN where it's located
aws codebuild list-source-credentials

# Projects
aws codebuild list-shared-projects
aws codebuild list-projects
aws codebuild batch-get-projects --names <project_name> # Check for creds in env vars

# Builds
aws codebuild list-builds
aws codebuild list-builds-for-project --project-name <p_name>
aws codebuild list-build-batches
aws codebuild list-build-batches-for-project --project-name <p_name>

# Reports
aws codebuild list-reports
aws codebuild describe-test-cases --report-arn <ARN>

Tip

Ako imate codebuild:StartBuild, imajte na umu da često možete override-ovati env vars pri build-u (--environment-variables-override). Ovo je dovoljno za neke napade čak i bez UpdateProject ili buildspec overrides (na primer: redirecting artifact/upload buckets to exfiltrate secrets, or abusing language/runtime env vars to execute commands).

Privesc

Na sledećoj stranici možete pogledati kako abuse codebuild permissions to escalate privileges:

AWS - Codebuild Privesc

Post Exploitation

AWS - CodeBuild Post Exploitation

Unauthenticated Access

AWS - CodeBuild Unauthenticated Access

References

Tip

Nauči & vežbaj AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks