AWS - DataPipeline, CodePipeline & CodeCommit Enum

Support HackTricks

DataPipeline

AWS Data Pipeline está diseñado para facilitar el acceso, transformación y transferencia eficiente de datos a gran escala. Permite realizar las siguientes operaciones:

  1. Accede a tus datos donde están almacenados: Los datos que residen en varios servicios de AWS se pueden acceder sin problemas.

  2. Transforma y procesa a gran escala: Las tareas de procesamiento y transformación de datos a gran escala se manejan de manera eficiente.

  3. Transfiere resultados de manera eficiente: Los datos procesados se pueden transferir de manera eficiente a múltiples servicios de AWS, incluyendo:

  • Amazon S3

  • Amazon RDS

  • Amazon DynamoDB

  • Amazon EMR

En esencia, AWS Data Pipeline optimiza el movimiento y procesamiento de datos entre diferentes servicios de computación y almacenamiento de AWS, así como fuentes de datos locales, en intervalos especificados.

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

En la siguiente página puedes verificar cómo abusar de los permisos de datapipeline para escalar privilegios:

CodePipeline

AWS CodePipeline es un servicio de entrega continua completamente gestionado que te ayuda a automatizar tus pipelines de lanzamiento para actualizaciones rápidas y confiables de aplicaciones e infraestructura. CodePipeline automatiza las fases de construcción, prueba y despliegue de tu proceso de lanzamiento cada vez que hay un cambio en el código, basado en el modelo de lanzamiento que defines.

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

En la siguiente página puedes verificar cómo abusar de los permisos de codepipeline para escalar privilegios:

CodeCommit

Es un servicio de control de versiones, que está alojado y completamente gestionado por Amazon, que se puede utilizar para almacenar datos de forma privada (documentos, archivos binarios, código fuente) y gestionarlos en la nube.

Elimina la necesidad de que el usuario conozca Git y gestione su propio sistema de control de versiones o se preocupe por escalar su infraestructura. Codecommit admite todas las funcionalidades estándar que se pueden encontrar en Git, lo que significa que funciona sin problemas con las herramientas basadas en Git actuales del usuario.

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>

Referencias

Apoya a HackTricks

Last updated