AWS - DataPipeline, CodePipeline & CodeCommit Enum

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

DataPipeline

AWS Data Pipeline est conçu pour faciliter l’accĂšs, la transformation et le transfert efficace de donnĂ©es Ă  grande Ă©chelle. Il permet d’effectuer les opĂ©rations suivantes :

  1. AccĂ©dez Ă  vos donnĂ©es oĂč elles sont stockĂ©es : Les donnĂ©es rĂ©sidant dans divers services AWS peuvent ĂȘtre accessibles sans effort.
  2. Transformez et traitez à grande échelle : Les tùches de traitement et de transformation de données à grande échelle sont gérées efficacement.
  3. TransfĂ©rez les rĂ©sultats efficacement : Les donnĂ©es traitĂ©es peuvent ĂȘtre transfĂ©rĂ©es efficacement vers plusieurs services AWS, y compris :
  • Amazon S3
  • Amazon RDS
  • Amazon DynamoDB
  • Amazon EMR

En essence, AWS Data Pipeline rationalise le mouvement et le traitement des données entre différents services de calcul et de stockage AWS, ainsi que des sources de données sur site, à des intervalles spécifiés.

Enumeration

aws datapipeline list-pipelines
aws datapipeline describe-pipelines --pipeline-ids <ID>
aws datapipeline list-runs --pipeline-id <ID>
aws datapipeline get-pipeline-definition --pipeline-id <ID>

Privesc

Dans la page suivante, vous pouvez vérifier comment abuser des permissions de datapipeline pour escalader les privilÚges :

AWS - Datapipeline Privesc

CodePipeline

AWS CodePipeline est un service de livraison continue entiĂšrement gĂ©rĂ© qui vous aide Ă  automatiser vos pipelines de publication pour des mises Ă  jour d’application et d’infrastructure rapides et fiables. CodePipeline automatise les phases de construction, de test et de dĂ©ploiement de votre processus de publication chaque fois qu’il y a un changement de code, en fonction du modĂšle de publication que vous dĂ©finissez.

Enumeration

aws codepipeline list-pipelines
aws codepipeline get-pipeline --name <pipeline_name>
aws codepipeline list-action-executions --pipeline-name <pl_name>
aws codepipeline list-pipeline-executions --pipeline-name <pl_name>
aws codepipeline list-webhooks
aws codepipeline get-pipeline-state --name <pipeline_name>

Privesc

Dans la page suivante, vous pouvez vérifier comment abuser des permissions de codepipeline pour escalader les privilÚges :

AWS - Codepipeline Privesc

CodeCommit

C’est un service de contrĂŽle de version, qui est hĂ©bergĂ© et entiĂšrement gĂ©rĂ© par Amazon, et qui peut ĂȘtre utilisĂ© pour stocker des donnĂ©es (documents, fichiers binaires, code source) de maniĂšre privĂ©e et les gĂ©rer dans le cloud.

Il Ă©limine la nĂ©cessitĂ© pour l’utilisateur de connaĂźtre Git et de gĂ©rer son propre systĂšme de contrĂŽle de version ou de s’inquiĂ©ter de l’augmentation ou de la rĂ©duction de son infrastructure. Codecommit prend en charge toutes les fonctionnalitĂ©s standard que l’on peut trouver dans Git, ce qui signifie qu’il fonctionne sans effort avec les outils basĂ©s sur Git de l’utilisateur.

Enumeration

# Repos
aws codecommit list-repositories
aws codecommit get-repository --repository-name <name>
aws codecommit get-repository-triggers --repository-name <name>
aws codecommit list-branches --repository-name <name>
aws codecommit list-pull-requests --repository-name <name>

# Approval rules
aws codecommit list-approval-rule-templates
aws codecommit get-approval-rule-template --approval-rule-template-name <name>
aws codecommit list-associated-approval-rule-templates-for-repository --repository-name <name>

# Get & Put files
## Get a file
aws codecommit get-file --repository-name backend-api --file-path app.py
## Put a file
aws codecommit get-branch --repository-name backend-api --branch-name master
aws codecommit put-file --repository-name backend-api --branch-name master --file-content fileb://./app.py --file-path app.py --parent-commit-id <commit-id>

# SSH Keys & Clone repo
## Get codecommit keys
aws iam list-ssh-public-keys #User keys for CodeCommit
aws iam get-ssh-public-key --user-name <username> --ssh-public-key-id <id> --encoding SSH #Get public key with metadata
# The previous command will give you the fingerprint of the ssh key
# With the next command you can check the fingerprint of an ssh key and compare them
ssh-keygen -f .ssh/id_rsa -l -E md5

# Clone repo
git clone ssh://<SSH-KEY-ID>@git-codecommit.<REGION>.amazonaws.com/v1/repos/<repo-name>

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks