# AWS - CodeBuild Post Explotación {{#include ../../../../banners/hacktricks-training.md}} ## CodeBuild Para más información, consulta: {{#ref}} ../../aws-services/aws-codebuild-enum.md {{#endref}} ### Verificar Secretos Si se han configurado credenciales en Codebuild para conectarse a Github, Gitlab o Bitbucket en forma de tokens personales, contraseñas o acceso a tokens OAuth, estas **credenciales se almacenarán como secretos en el administrador de secretos**.\ Por lo tanto, si tienes acceso para leer el administrador de secretos, podrás obtener estos secretos y pivotar a la plataforma conectada. {{#ref}} ../../aws-privilege-escalation/aws-secrets-manager-privesc/README.md {{#endref}} ### Abusar del Acceso al Repositorio 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 **rol de IAM** o con un **token de github/bitbucket o acceso OAuth**. Un atacante con **permisos elevados en un CodeBuild** podría abusar de este acceso configurado para filtrar el código del repositorio configurado y otros a los que las credenciales establecidas tienen acceso.\ Para hacer esto, un atacante solo necesitaría **cambiar la URL del repositorio a cada repositorio al que las credenciales de configuración tienen acceso** (ten en cuenta que la web de aws listará todos ellos para ti):
Y **cambiar los comandos de Buildspec para exfiltrar cada repositorio**. > [!WARNING] > 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í? Consulta la siguiente sección ### Filtrando Tokens de Acceso desde AWS CodeBuild Puedes filtrar el acceso otorgado en CodeBuild a plataformas como Github. Verifica si se otorgó acceso a plataformas externas con: ```bash aws codebuild list-source-credentials ``` {{#ref}} aws-codebuild-token-leakage.md {{#endref}} ### `codebuild:DeleteProject` Un atacante podría eliminar un proyecto completo de CodeBuild, causando la pérdida de la configuración del proyecto e impactando las aplicaciones que dependen del proyecto. ```bash aws codebuild delete-project --name ``` **Impacto Potencial**: Pérdida de la configuración del proyecto y interrupción del servicio para las aplicaciones que utilizan 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 de su organización, el seguimiento de recursos y las políticas de control de acceso basadas en etiquetas. ```bash aws codebuild tag-resource --resource-arn --tags aws codebuild untag-resource --resource-arn --tag-keys ``` **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 para un repositorio de Git, afectando el funcionamiento normal de las aplicaciones que dependen del repositorio. ```sql aws codebuild delete-source-credentials --arn ``` **Impacto Potencial**: Disrupción del funcionamiento normal de las aplicaciones que dependen del repositorio afectado debido a la eliminación de credenciales de origen. {{#include ../../../../banners/hacktricks-training.md}}