AWS - CodeBuild Post Exploitation

Apoya a HackTricks

CodeBuild

Para más información, revisa:

AWS - Codebuild Enum

Abusar del Acceso al Repo de CodeBuild

Para configurar CodeBuild, necesitará acceso al repositorio de código que va a utilizar. Varias plataformas podrían estar alojando este código:

El proyecto de CodeBuild debe tener acceso al proveedor de origen configurado, ya sea a través de IAM role o con un token o acceso OAuth de github/bitbucket.

Un atacante con permisos elevados sobre un CodeBuild podría abusar de este acceso configurado para filtrar el código del repositorio configurado y otros donde las credenciales establecidas tengan acceso. Para hacer esto, un atacante solo necesitaría cambiar la URL del repositorio a cada repo al que las credenciales de configuración tengan acceso (ten en cuenta que la web de aws los listará todos para ti):

Y cambiar los comandos de Buildspec para exfiltrar cada repo.

Sin embargo, esta tarea es repetitiva y tediosa y si se configuró un token de github con permisos de escritura, un atacante no podrá (ab)usar esos permisos ya que no tiene acceso al token. ¿O sí? Revisa la siguiente sección

Filtrando Tokens de Acceso desde AWS CodeBuild

Puedes filtrar el acceso dado en CodeBuild a plataformas como Github. Verifica si se dio acceso a plataformas externas con:

aws codebuild list-source-credentials
AWS Codebuild - Token Leakage

codebuild:DeleteProject

Un atacante podría eliminar un proyecto completo de CodeBuild, causando la pérdida de la configuración del proyecto y afectando a las aplicaciones que dependen del proyecto.

aws codebuild delete-project --name <value>

Impacto Potencial: Pérdida de configuración del proyecto y interrupción del servicio para aplicaciones que usan el proyecto eliminado.

codebuild:TagResource , codebuild:UntagResource

Un atacante podría agregar, modificar o eliminar etiquetas de los recursos de CodeBuild, interrumpiendo la asignación de costos, el seguimiento de recursos y las políticas de control de acceso de su organización basadas en etiquetas.

aws codebuild tag-resource --resource-arn <value> --tags <value>
aws codebuild untag-resource --resource-arn <value> --tag-keys <value>

Impacto Potencial: Disrupción de la asignación de costos, seguimiento de recursos y políticas de control de acceso basadas en etiquetas.

codebuild:DeleteSourceCredentials

Un atacante podría eliminar las credenciales de origen de un repositorio Git, afectando el funcionamiento normal de las aplicaciones que dependen del repositorio.

aws codebuild delete-source-credentials --arn <value>

Impacto Potencial: Disrupción del funcionamiento normal de las aplicaciones que dependen del repositorio afectado debido a la eliminación de las credenciales de origen.

Apoya a HackTricks

Last updated