3.8 KiB
AWS - CodeBuild Post Exploitation
{{#include ../../../../banners/hacktricks-training.md}}
CodeBuild
Aby uzyskać więcej informacji, sprawdź:
{{#ref}} ../../aws-services/aws-codebuild-enum.md {{#endref}}
Sprawdź Sekrety
Jeśli dane uwierzytelniające zostały ustawione w Codebuild w celu połączenia z Github, Gitlab lub Bitbucket w formie tokenów osobistych, haseł lub dostępu za pomocą tokena OAuth, te dane uwierzytelniające będą przechowywane jako sekrety w menedżerze sekretów.
Dlatego, jeśli masz dostęp do odczytu menedżera sekretów, będziesz mógł uzyskać te sekrety i przejść do połączonej platformy.
{{#ref}} ../../aws-privilege-escalation/aws-secrets-manager-privesc.md {{#endref}}
Nadużycie Dostępu do Repozytoriów CodeBuild
Aby skonfigurować CodeBuild, będzie potrzebny dostęp do repozytorium kodu, które będzie używane. Kilka platform może hostować ten kod:

Projekt CodeBuild musi mieć dostęp do skonfigurowanego dostawcy źródła, albo za pomocą roli IAM, albo z użyciem tokena github/bitbucket lub dostępu OAuth.
Atakujący z podwyższonymi uprawnieniami w CodeBuild mógłby nadużyć tego skonfigurowanego dostępu, aby wyciekł kod skonfigurowanego repozytorium i innych, do których ustawione dane uwierzytelniające mają dostęp.
Aby to zrobić, atakujący musiałby po prostu zmienić adres URL repozytorium na każde repozytorium, do którego mają dostęp skonfigurowane dane uwierzytelniające (zauważ, że strona aws wyświetli wszystkie z nich):

I zmienić polecenia Buildspec, aby wyeksportować każde repozytorium.
Warning
Jednak to zadanie jest powtarzalne i nużące i jeśli token github został skonfigurowany z uprawnieniami do zapisu, atakujący nie będzie mógł (nadużyć) tych uprawnień, ponieważ nie ma dostępu do tokena.
A może ma? Sprawdź następny rozdział
Wyciek Tokenów Dostępu z AWS CodeBuild
Możesz wyciekować dostęp przyznany w CodeBuild do platform takich jak Github. Sprawdź, czy jakikolwiek dostęp do zewnętrznych platform został przyznany za pomocą:
aws codebuild list-source-credentials
{{#ref}} aws-codebuild-token-leakage.md {{#endref}}
codebuild:DeleteProject
Atakujący mógłby usunąć cały projekt CodeBuild, co spowodowałoby utratę konfiguracji projektu i wpłynęło na aplikacje polegające na tym projekcie.
aws codebuild delete-project --name <value>
Potencjalny wpływ: Utrata konfiguracji projektu i zakłócenie działania aplikacji korzystających z usuniętego projektu.
codebuild:TagResource , codebuild:UntagResource
Napastnik mógłby dodać, zmodyfikować lub usunąć tagi z zasobów CodeBuild, zakłócając alokację kosztów w organizacji, śledzenie zasobów oraz polityki kontroli dostępu oparte na tagach.
aws codebuild tag-resource --resource-arn <value> --tags <value>
aws codebuild untag-resource --resource-arn <value> --tag-keys <value>
Potencjalny wpływ: Zakłócenie alokacji kosztów, śledzenia zasobów i polityk kontroli dostępu opartych na tagach.
codebuild:DeleteSourceCredentials
Napastnik mógłby usunąć poświadczenia źródłowe dla repozytorium Git, co wpłynęłoby na normalne funkcjonowanie aplikacji polegających na tym repozytorium.
aws codebuild delete-source-credentials --arn <value>
Potencjalny wpływ: Zakłócenie normalnego funkcjonowania aplikacji polegających na dotkniętym repozytorium z powodu usunięcia poświadczeń źródłowych.
{{#include ../../../../banners/hacktricks-training.md}}