Voltar às atualizações
UpdatedSep 2, 2026

CICD-Goat-Vapt-Writeup — Updated!

Writeup completo de VAPT do OWASP CICD-Goat — 9 flags CTFd capturadas, 4 achados críticos + 5 de alta gravidade (incl. CVE-2024-23897) mapeados para o OWASP Top 10 CI/CD Security Risks, com PoCs, remediação e resumos prontos para entrevistas.

Compartilhar

CICD-Goat VAPT Writeup

Uma avaliação completa de vulnerabilidades e teste de penetração contra o OWASP CICD-Goat — um ambiente CI/CD deliberadamente vulnerável (Jenkins, Gitea, GitLab, CTFd) — mapeado de ponta a ponta em relação ao OWASP Top 10 CI/CD Security Risks.

Made for OWASP CICD-Goat Findings Flags Captured License

LinkedIn Location


🧭 Como Isso se Encaixa com Meus Outros Repositórios

RepositórioO que contém
CICD-Goat-Vapt-Writeup (este repositório)Writeup completo de VAPT contra o OWASP CICD-Goat — 16 achados incluindo CVE-2024-23897, mapeados para o OWASP Top 10 CI/CD Security Risks, com PoCs e resumos prontos para entrevista
From-Dev-To-AttackerMeu diário de campo principal — 67 write-ups originais sobre padrões de vulnerabilidade, escritos sob a ótica de um desenvolvedor, com enquadramento de impacto em domínios empresariais como Imposto de Renda, Bancos, Varejo, E-commerce, Logística de Cargas e Educação
From-Pentester-To-Red-TeamerMeu roteiro estruturado de 24 meses para a transição de pentest Web/API para Red Teaming — fases, laboratórios, certificações e progresso acompanhado abertamente conforme avanço
AppSec-From-The-TrenchesReferência de ferramentas e metodologia de pentest — como eu realmente uso Burp Suite, Nmap, Metasploit, Hydra, Hashcat e mais, além da minha metodologia de WAPT
API-From-The-TrenchesSérie aprofundada sobre segurança de API — cobertura do OWASP API Top 10, BOLA, ataques a JWT, testes em GraphQL, metodologia completa
Bug-Bounty-Hunting-CompanionRelatórios reais de bug bounty divulgados publicamente, organizados em checklists reproduzíveis
DarkWeb-From-The-TrenchesMetodologia de threat intelligence e OSINT na dark web — monitoramento de vazamento de credenciais, rastreamento de ransomware, TI de pré-engajamento
.pcap-ArsenalCapturas de pacotes organizadas por protocolo, para análise e aprendizado nas camadas Web/API/Rede

Por que isso existe

A maioria dos writeups de segurança de CI/CD ou fica puramente teórica (um slide explicando "poisoned pipeline execution") ou puramente caçando flags de CTF (uma linha "aqui está a flag, próximo"). Este repositório tenta não fazer nenhum dos dois: cada achado abaixo é uma vulnerabilidade totalmente validada e respaldada por PoC, mapeada para uma categoria específica de risco do OWASP CI/CD-SEC, escrita da forma como você realmente gostaria de explicá-la em uma entrevista ou em um relatório real para um cliente — incluindo os becos sem saída, as suposições erradas e como elas foram corrigidas.

Se você está estudando para uma entrevista de AppSec/DevSecOps/segurança de CI-CD, se preparando para um engajamento de pentest envolvendo uma cadeia de ferramentas CI/CD, ou apenas quer um tour concreto e prático de como "Poisoned Pipeline Execution" ou "Insufficient Credential Hygiene" realmente se parecem no tráfego — isto foi escrito para você.

Ambiente alvo

CampoValor
AlvoOWASP CICD-Goat — implantação local via Docker Compose
Tipo de engajamentoLaboratório de aprendizado autodirigido autorizado (grey-box)
Stack tecnológicoJenkins 2.332.1, Gitea 1.16.5, GitLab 15.11.13-ee, CTFd, Docker Compose
Escopolocalhost:3000 (Gitea), :8080/:50000 (Jenkins), :4000 (GitLab), :8000 (CTFd), :8008 (prod-sim)
MetodologiaFase 0–3 (Escopo → Fingerprinting → Identificação de Vulnerabilidades → Exploração)

Regras de engajamento completas: docs/00-engagement-overview.md.

⚠️ Todos os testes neste repositório foram realizados contra o laboratório Docker Compose local, descartável e intencionalmente vulnerável do próprio testador. Nenhum sistema de produção, infraestrutura compartilhada ou dado de terceiros foi envolvido. Suba sua própria cópia do CICD-Goat a partir do repositório oficial antes de tentar qualquer coisa aqui.

Resultados em resumo

IDTítuloSeveridadeMapeamento OWASP CI/CDFlag CTFd
F-010Exposição de segredos nos logs do console de build do Jenkins → roubo de credenciais → escrita não autorizada em repositórioCRÍTICACICD-SEC-6, -4, -2flag1, flag2
F-013Lógica insegura de auto-merge contorna a revisão de código (heurística de diff de palavras por PR)CRÍTICACICD-SEC-1, -5flag10
F-016CVE-2024-23897 — leitura arbitrária de arquivos via Jenkins CLI no controllerCRÍTICACICD-SEC-7flag8
F-017Token de registro de runner compartilhado do GitLab → roubo de segredos de CI/CD em toda a instânciaCRÍTICACICD-SEC-2, -6flag11
F-019Execução de código no nó controller do Jenkins via sobrescrita de label de agenteCRÍTICACICD-SEC-5, -4flag5
F-018Repositório de pipeline desacoplado + bypass do filtro de exclusão de branchALTACICD-SEC-4, -6flag3
F-020Sistema de arquivos de agente compartilhado expõe credencial de job FreeStyleALTACICD-SEC-6, -5flag6
F-021Sobrescrita de configuração do Checkov SAST permite má configuração de IaC não detectadaALTACICD-SEC-1, -8flag7
F-014Chave secreta de sessão do Flask derivada de uma variável de pipeline CI/CDALTACICD-SEC-6flag11 (via F-017)

Além de 6 achados informativos / de suporte (controles positivos, confirmações de limite de RBAC, divulgação menor de informações) em findings/informational/.

Como os achados se encadeiam

Vários achados não são independentes — um habilita ou completa diretamente outro. Esta é a parte que costuma impressionar em uma entrevista mais do que qualquer achado isolado:

Diagrama da kill chain entre achados do CICD-Goat mostrando F-010 levando a push não autorizado, o bypass de auto-merge do F-013, a leitura arbitrária de arquivos do CVE-2024-23897 do F-016 alimentando capturas de flags e o F-018, e o runner GitLab malicioso do F-017 completando o F-014

9 de 11 desafios do CTFd resolvidos e flags verificadas — veja a referência cruzada completa de desafios, incluindo um caso documentado com honestidade (Dormouse/flag9) em que o limite de controle de acesso resistiu sob ataque sustentado.

Índice Completo

Cada arquivo abaixo está diretamente linkado — a árvore de pastas apenas mostra como eles estão organizados.

📋 Documentos do Engajamento

ArquivoO que contém
docs/00-engagement-overview.mdRegras de engajamento, escopo, stack tecnológico
docs/01-methodology.mdMetodologia de teste fase a fase usada em todo o trabalho
docs/02-owasp-top10-cicd-mapping.mdTaxonomia de referência completa de CICD-SEC-1 a -10
docs/03-remediation-roadmap.mdChecklist de remediação priorizado e acionável
docs/04-interview-prep.mdResumos em estilo falado de cada achado + prováveis perguntas de acompanhamento
docs/05-lessons-learned.mdRetrospectiva — o que funcionou, o que não funcionou, o que fazer diferente na próxima vez

🔍 Recon

ArquivoO que contém
recon/01-fingerprinting.mdFase 1 — fingerprinting não autenticado de cada serviço no escopo
recon/02-authenticated-enumeration.mdFase 2 — enumeração autenticada após a obtenção do acesso inicial

🚨 Achados Críticos e Altos

ℹ️ Achados Informativos / de Suporte

🎯 CTFd

ArquivoO que contém
ctfd/challenge-cross-reference.mdReferência cruzada completa flag a flag, incluindo a investigação bloqueada do Dormouse/flag9 e a correção do Duchess/flag4

Estrutura do repositório

.
├── docs/                          # Engagement context, methodology, mappings, remediation, interview prep
│   ├── 00-engagement-overview.md
│   ├── 01-methodology.md
│   ├── 02-owasp-top10-cicd-mapping.md
│   ├── 03-remediation-roadmap.md
│   ├── 04-interview-prep.md
│   └── 05-lessons-learned.md
├── recon/                         # Phase 1 & 2 — fingerprinting and authenticated enumeration
│   ├── 01-fingerprinting.md
│   └── 02-authenticated-enumeration.md
├── findings/                      # One file per confirmed finding, full PoC + remediation
│   ├── F-010-...md ... F-021-...md
│   └── informational/             # INFO/LOW severity supporting observations
├── ctfd/
│   └── challenge-cross-reference.md
└── LICENSE.md

Caminhos de leitura

  • Só quer os destaques? Comece pela tabela de resultados acima, depois leia F-010, F-013, F-016 e F-017 — as quatro kill chains de ponta a ponta mais completas.
  • Estudando para uma entrevista? Vá direto para docs/04-interview-prep.md — resumos em estilo falado, de um parágrafo, de cada achado principal, além de perguntas de acompanhamento comuns.
  • Construindo/fortalecendo um pipeline CI/CD? Vá direto para docs/03-remediation-roadmap.md — um checklist priorizado e acionável.
  • Novo em conceitos de segurança de CI/CD? Comece por docs/02-owasp-top10-cicd-mapping.md para a taxonomia de referência em torno da qual todo este repositório está organizado.

Sobre o OWASP Top 10 CI/CD Security Risks

Cada achado aqui é mapeado em relação ao OWASP Top 10 CI/CD Security Risks (2023) — uma tabela de referência completa (CICD-SEC-1 a CICD-SEC-10) está em docs/02-owasp-top10-cicd-mapping.md, já que é referenciada constantemente ao longo dos achados individuais.

Este repositório documenta testes realizados exclusivamente contra um laboratório de treinamento local, auto-hospedado e intencionalmente vulnerável (OWASP CICD-Goat), para fins educacionais e de portfólio. Nada aqui tem como alvo, referencia ou foi testado contra qualquer sistema de produção, serviço de terceiros ou credencial real. Não use nenhuma técnica deste repositório contra sistemas que você não possui ou para os quais não tem autorização escrita explícita de teste.


🧠 Filosofia de Teste

"Os melhores pentesters pensam como desenvolvedores primeiro e como atacantes depois. Se você entende por que o código foi escrito de determinada forma, você sempre encontrará mais do que um scanner jamais encontraria."

Eu abordo cada engajamento em três fases:

1. Entenda antes de atacar — Leia a aplicação. Use-a como um usuário real. Entenda a lógica de negócio antes de tocar em qualquer ferramenta.

2. Manual primeiro, ferramentas depois — Scanners automatizados encontram o que estão configurados para encontrar. Os bugs interessantes são sempre encontrados pensando, não escaneando.

3. Relate como um desenvolvedor — Um achado que os desenvolvedores não conseguem entender ou reproduzir é um achado que não será corrigido.


👤 Sobre Mim

  • Nome — Dheeraj Kumar Jayaswal
  • Cargo — Technology Lead – Offensive Security, Infosys Limited
  • Foco — Teste de Penetração em Aplicações Web e APIs
  • Experiência — 15+ anos em TI · 6+ anos em Offensive Security
  • Diferencial — Ex-desenvolvedor full-stack (ASP.NET / SQL Server) — penso como desenvolvedor, ataco como hacker
  • Domínios — Imposto de Renda · Bancos · Varejo · E-commerce · Logística de Cargas · Educação

🏅 Certificações

CertificaçãoEmissorStatus
Certified Ethical Hacker (CEH)EC-Council✅ 2021
AWS Certified Solutions Architect – AssociateAmazon Web Services✅ 2022
AWS Certified Cloud PractitionerAmazon Web Services✅ 2022
Executive Certificate in Cyber SecurityIIT Kanpur✅ 2026
OSWE — OffSec Web Expert (trilha OSCE3)OffSec🔄 Em Andamento

Direção futura — Red Teaming: OSCP → CRTO → OSEP, CRTP, CRTL, CRTE


📄 Licença

Este conteúdo está licenciado sob CC BY 4.0. Você pode reutilizar ou adaptar qualquer parte deste write-up — apenas dê atribuição clara a Dheeraj Kumar Jayaswal com um link de volta para este repositório. O CICD-Goat em si é um projeto separado da Cider Security — vá dar uma estrela no original.


🤝 Conecte-se

LinkedIn — aberto a consultoria, colaboração e discussões sobre segurança.

Feedback, correções e PRs (por exemplo, para flag9/Dormouse, ou o acompanhamento de Duchess/flag4 na referência cruzada do CTFd) são bem-vindos — veja CONTRIBUTING.md.

Categorias