
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.
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.
🧭 Como Isso se Encaixa com Meus Outros Repositórios
| Repositório | O 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-Attacker | Meu 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-Teamer | Meu 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-Trenches | Referê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-Trenches | Sé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-Companion | Relatórios reais de bug bounty divulgados publicamente, organizados em checklists reproduzíveis |
| DarkWeb-From-The-Trenches | Metodologia de threat intelligence e OSINT na dark web — monitoramento de vazamento de credenciais, rastreamento de ransomware, TI de pré-engajamento |
| .pcap-Arsenal | Capturas 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
| Campo | Valor |
|---|---|
| Alvo | OWASP CICD-Goat — implantação local via Docker Compose |
| Tipo de engajamento | Laboratório de aprendizado autodirigido autorizado (grey-box) |
| Stack tecnológico | Jenkins 2.332.1, Gitea 1.16.5, GitLab 15.11.13-ee, CTFd, Docker Compose |
| Escopo | localhost:3000 (Gitea), :8080/:50000 (Jenkins), :4000 (GitLab), :8000 (CTFd), :8008 (prod-sim) |
| Metodologia | Fase 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
| ID | Título | Severidade | Mapeamento OWASP CI/CD | Flag CTFd |
|---|---|---|---|---|
| F-010 | Exposição de segredos nos logs do console de build do Jenkins → roubo de credenciais → escrita não autorizada em repositório | CRÍTICA | CICD-SEC-6, -4, -2 | flag1, flag2 |
| F-013 | Lógica insegura de auto-merge contorna a revisão de código (heurística de diff de palavras por PR) | CRÍTICA | CICD-SEC-1, -5 | flag10 |
| F-016 | CVE-2024-23897 — leitura arbitrária de arquivos via Jenkins CLI no controller | CRÍTICA | CICD-SEC-7 | flag8 |
| F-017 | Token de registro de runner compartilhado do GitLab → roubo de segredos de CI/CD em toda a instância | CRÍTICA | CICD-SEC-2, -6 | flag11 |
| F-019 | Execução de código no nó controller do Jenkins via sobrescrita de label de agente | CRÍTICA | CICD-SEC-5, -4 | flag5 |
| F-018 | Repositório de pipeline desacoplado + bypass do filtro de exclusão de branch | ALTA | CICD-SEC-4, -6 | flag3 |
| F-020 | Sistema de arquivos de agente compartilhado expõe credencial de job FreeStyle | ALTA | CICD-SEC-6, -5 | flag6 |
| F-021 | Sobrescrita de configuração do Checkov SAST permite má configuração de IaC não detectada | ALTA | CICD-SEC-1, -8 | flag7 |
| F-014 | Chave secreta de sessão do Flask derivada de uma variável de pipeline CI/CD | ALTA | CICD-SEC-6 | flag11 (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:
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
| Arquivo | O que contém |
|---|---|
docs/00-engagement-overview.md | Regras de engajamento, escopo, stack tecnológico |
docs/01-methodology.md | Metodologia de teste fase a fase usada em todo o trabalho |
docs/02-owasp-top10-cicd-mapping.md | Taxonomia de referência completa de CICD-SEC-1 a -10 |
docs/03-remediation-roadmap.md | Checklist de remediação priorizado e acionável |
docs/04-interview-prep.md | Resumos em estilo falado de cada achado + prováveis perguntas de acompanhamento |
docs/05-lessons-learned.md | Retrospectiva — o que funcionou, o que não funcionou, o que fazer diferente na próxima vez |
🔍 Recon
| Arquivo | O que contém |
|---|---|
recon/01-fingerprinting.md | Fase 1 — fingerprinting não autenticado de cada serviço no escopo |
recon/02-authenticated-enumeration.md | Fase 2 — enumeração autenticada após a obtenção do acesso inicial |
🚨 Achados Críticos e Altos
ℹ️ Achados Informativos / de Suporte
🎯 CTFd
| Arquivo | O que contém |
|---|---|
ctfd/challenge-cross-reference.md | Referê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.mdpara 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.
Aviso legal
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ção | Emissor | Status |
|---|---|---|
| Certified Ethical Hacker (CEH) | EC-Council | ✅ 2021 |
| AWS Certified Solutions Architect – Associate | Amazon Web Services | ✅ 2022 |
| AWS Certified Cloud Practitioner | Amazon Web Services | ✅ 2022 |
| Executive Certificate in Cyber Security | IIT 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.