# 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}}