Volver a actualizaciones
ActualizadaSep 2, 2026

CICD-Goat-Vapt-Writeup — Actualizado!

Informe completo de VAPT de OWASP CICD-Goat — 9 flags CTFd capturadas, 4 hallazgos críticos + 5 altos (incl. CVE-2024-23897) mapeados al OWASP Top 10 de Riesgos de Seguridad CI/CD, con PoCs, remediación y resúmenes listos para entrevistas.

Compartir

CICD-Goat VAPT Writeup

Una evaluación completa de vulnerabilidades y prueba de penetración contra OWASP CICD-Goat — un entorno CI/CD deliberadamente vulnerable (Jenkins, Gitea, GitLab, CTFd) — mapeado de extremo a extremo contra los OWASP Top 10 CI/CD Security Risks.

Made for OWASP CICD-Goat Findings Flags Captured License

LinkedIn Location


🧭 Cómo encaja esto con mis otros repositorios

RepositorioQué contiene
CICD-Goat-Vapt-Writeup (este repositorio)Writeup completo de VAPT contra OWASP CICD-Goat — 16 hallazgos incluyendo CVE-2024-23897, mapeados a los OWASP Top 10 CI/CD Security Risks, con PoCs y resúmenes listos para entrevistas
From-Dev-To-AttackerMi diario de campo insignia — 67 writeups originales sobre patrones de vulnerabilidad, escritos desde la perspectiva de un desarrollador, con enfoque en el impacto a nivel de dominio empresarial en Impuestos, Banca, Retail, E-commerce, Logística de Carga y Educación
From-Pentester-To-Red-TeamerMi hoja de ruta estructurada de 24 meses para la transición del pentesting Web/API al Red Teaming — fases, laboratorios, certificaciones y progreso documentado abiertamente mientras avanzo
AppSec-From-The-TrenchesReferencia de herramientas y metodología de pentesting — cómo uso realmente Burp Suite, Nmap, Metasploit, Hydra, Hashcat y más, además de mi metodología WAPT
API-From-The-TrenchesSerie de análisis profundo sobre seguridad de API — cobertura del OWASP API Top 10, BOLA, ataques JWT, testing de GraphQL, metodología completa
Bug-Bounty-Hunting-CompanionReportes reales de bug bounty divulgados públicamente, desglosados en checklists reproducibles
DarkWeb-From-The-TrenchesMetodología de threat intelligence y OSINT en la dark web — monitoreo de filtraciones de credenciales, seguimiento de ransomware, TI previa al engagement
.pcap-ArsenalCapturas de paquetes organizadas por protocolo, para análisis y aprendizaje en las capas Web/API/Red

Por qué existe esto

La mayoría de los writeups de seguridad CI/CD o se quedan puramente en lo teórico (una diapositiva explicando "poisoned pipeline execution") o puramente en la caza de flags de CTF (una línea de "aquí está la flag, siguiente"). Este repositorio intenta no hacer ninguna de las dos cosas: cada hallazgo a continuación es una vulnerabilidad completamente validada y respaldada por PoC, mapeada a una categoría de riesgo específica de OWASP CI/CD-SEC, escrita de la forma en que realmente querrías explicarla en una entrevista o en un informe real para un cliente — incluyendo los callejones sin salida, las suposiciones erróneas y cómo se corrigieron.

Si estás estudiando para una entrevista de AppSec/DevSecOps/seguridad CI-CD, preparándote para un engagement de pentesting que involucre una cadena de herramientas CI/CD, o simplemente quieres un recorrido concreto y práctico de cómo se ve realmente "Poisoned Pipeline Execution" o "Insufficient Credential Hygiene" en el tráfico — esto está escrito para ti.

Entorno objetivo

CampoValor
ObjetivoOWASP CICD-Goat — despliegue local con Docker Compose
Tipo de engagementLaboratorio de aprendizaje autodirigido autorizado (grey-box)
Stack tecnológicoJenkins 2.332.1, Gitea 1.16.5, GitLab 15.11.13-ee, CTFd, Docker Compose
Alcancelocalhost:3000 (Gitea), :8080/:50000 (Jenkins), :4000 (GitLab), :8000 (CTFd), :8008 (prod-sim)
MetodologíaFase 0–3 (Alcance → Fingerprinting → Identificación de Vulnerabilidades → Explotación)

Reglas de engagement completas: docs/00-engagement-overview.md.

⚠️ Todo el testing en este repositorio se realizó contra el laboratorio Docker Compose local, desechable y deliberadamente vulnerable del propio tester. No se involucró ningún sistema de producción, infraestructura compartida ni datos de terceros. Levanta tu propia copia de CICD-Goat desde el repositorio oficial antes de intentar cualquiera de estas técnicas por tu cuenta.

Resultados de un vistazo

IDTítuloSeveridadMapeo OWASP CI/CDFlag CTFd
F-010Exposición de secretos en los logs de consola de builds de Jenkins → robo de credenciales → escritura no autorizada en repositorioCRÍTICACICD-SEC-6, -4, -2flag1, flag2
F-013La lógica insegura de auto-merge elude la revisión de código (heurística de diff por palabras a nivel de PR)CRÍTICACICD-SEC-1, -5flag10
F-016CVE-2024-23897 — Lectura arbitraria de archivos en el controlador vía Jenkins CLICRÍTICACICD-SEC-7flag8
F-017Token de registro de runner compartido de GitLab → robo de secretos CI/CD a nivel de instanciaCRÍTICACICD-SEC-2, -6flag11
F-019Ejecución de código en el nodo controlador de Jenkins mediante override de etiqueta de agenteCRÍTICACICD-SEC-5, -4flag5
F-018Repositorio de pipeline desacoplado + bypass del filtro de exclusión de ramasALTACICD-SEC-4, -6flag3
F-020El sistema de archivos del agente compartido expone credenciales de jobs FreeStyleALTACICD-SEC-6, -5flag6
F-021El override de configuración de Checkov SAST permite una mala configuración de IaC no detectadaALTACICD-SEC-1, -8flag7
F-014Clave secreta de sesión de Flask derivada de una variable de pipeline CI/CDALTACICD-SEC-6flag11 (vía F-017)

Además, 6 hallazgos informativos / de soporte (controles positivos, confirmaciones de límites RBAC, divulgación menor de información) en findings/informational/.

Cómo se encadenan los hallazgos

Varios hallazgos no son independientes — uno habilita o completa directamente a otro. Esta es la parte que tiende a impresionar en una entrevista más que cualquier hallazgo individual por sí solo:

Diagrama de la kill chain cruzada de CICD-Goat mostrando F-010 conduciendo a un push no autorizado, el bypass de auto-merge de F-013, la lectura arbitraria de archivos de CVE-2024-23897 en F-016 alimentando la captura de flags y F-018, y el runner GitLab malicioso de F-017 completando F-014

9 de 11 desafíos CTFd resueltos y verificados por flag — consulta la referencia cruzada completa de desafíos, incluyendo un caso documentado honestamente (Dormouse/flag9) donde el límite de control de acceso resistió bajo ataque sostenido.

Tabla de Contenidos completa

Cada archivo a continuación está enlazado directamente — el árbol de carpetas solo muestra cómo están organizados.

📋 Documentos del Engagement

ArchivoQué contiene
docs/00-engagement-overview.mdReglas de engagement, alcance, stack tecnológico
docs/01-methodology.mdMetodología de testing fase por fase utilizada a lo largo de todo el trabajo
docs/02-owasp-top10-cicd-mapping.mdTaxonomía de referencia completa CICD-SEC-1 a -10
docs/03-remediation-roadmap.mdChecklist de remediación priorizado y accionable
docs/04-interview-prep.mdResúmenes de cada hallazgo en estilo hablado + posibles preguntas de seguimiento
docs/05-lessons-learned.mdRetrospectiva — qué funcionó, qué no, y qué hacer diferente la próxima vez

🔍 Reconocimiento

ArchivoQué contiene
recon/01-fingerprinting.mdFase 1 — fingerprinting no autenticado de cada servicio en el alcance
recon/02-authenticated-enumeration.mdFase 2 — enumeración autenticada una vez obtenido el acceso inicial

🚨 Hallazgos Críticos y Altos

ℹ️ Hallazgos Informativos / de Soporte

🎯 CTFd

ArchivoQué contiene
ctfd/challenge-cross-reference.mdReferencia cruzada completa flag por flag, incluyendo la investigación bloqueada de Dormouse/flag9 y la corrección de Duchess/flag4

Estructura del repositorio

.
├── 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

Rutas de lectura

  • ¿Solo quieres lo más destacado? Empieza con la tabla de resultados de arriba, luego lee F-010, F-013, F-016 y F-017 — las cuatro kill chains de extremo a extremo más completas.
  • ¿Estudiando para una entrevista? Ve directamente a docs/04-interview-prep.md — resúmenes de un párrafo en estilo hablado de cada hallazgo importante, más preguntas de seguimiento comunes.
  • ¿Construyendo/endureciendo un pipeline CI/CD? Ve directamente a docs/03-remediation-roadmap.md — un checklist priorizado y accionable.
  • ¿Nuevo en conceptos de seguridad CI/CD? Empieza con docs/02-owasp-top10-cicd-mapping.md para la taxonomía de referencia en torno a la cual está organizado todo este repositorio.

Acerca de los OWASP Top 10 CI/CD Security Risks

Cada hallazgo aquí está mapeado contra los OWASP Top 10 CI/CD Security Risks (2023) — una tabla de referencia completa (CICD-SEC-1 a CICD-SEC-10) se encuentra en docs/02-owasp-top10-cicd-mapping.md, ya que se referencia constantemente a lo largo de los hallazgos individuales.

Descargo de responsabilidad

Este repositorio documenta testing realizado exclusivamente contra un laboratorio de entrenamiento local, autoalojado y deliberadamente vulnerable (OWASP CICD-Goat), con fines educativos y de portafolio. Nada aquí apunta, referencia ni fue probado contra ningún sistema de producción, servicio de terceros o credencial real. No utilices ninguna técnica de este repositorio contra sistemas que no poseas o para los que no tengas autorización escrita explícita para probar.


🧠 Filosofía de Testing

"Los mejores pentesters piensan primero como desarrolladores y segundo como atacantes. Si entiendes por qué el código se escribió de cierta manera, siempre encontrarás más de lo que un escáner jamás encontrará."

Abordo cada engagement en tres fases:

1. Entender antes de atacar — Lee la aplicación. Úsala como un usuario real. Comprende la lógica de negocio antes de tocar una sola herramienta.

2. Manual primero, herramientas después — Los escáneres automatizados encuentran lo que están configurados para encontrar. Los bugs interesantes siempre se encuentran pensando, no escaneando.

3. Reportar como un desarrollador — Un hallazgo que los desarrolladores no pueden entender o reproducir es un hallazgo que no se corrige.


👤 Sobre mí

  • Nombre — Dheeraj Kumar Jayaswal
  • Rol — Technology Lead – Offensive Security, Infosys Limited
  • Enfoque — Pentesting de Aplicaciones Web y API
  • Experiencia — 15+ años en TI · 6+ años en Offensive Security
  • Ventaja — Ex desarrollador full-stack (ASP.NET / SQL Server) — pienso como desarrollador, ataco como hacker
  • Dominios — Impuestos · Banca · Retail · E-commerce · Logística de Carga · Educación

🏅 Certificaciones

CertificaciónEmisorEstado
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 (OSCE3 track)OffSec🔄 En progreso

Dirección futura — Red Teaming: OSCP → CRTO → OSEP, CRTP, CRTL, CRTE


📄 Licencia

Este contenido está licenciado bajo CC BY 4.0. Eres bienvenido a reutilizar o adaptar cualquiera de estos writeups — solo da atribución clara a Dheeraj Kumar Jayaswal con un enlace de vuelta a este repositorio. CICD-Goat en sí es un proyecto separado de Cider Security — ve y dale una estrella al original.


🤝 Conectar

LinkedIn — abierto a consultoría, colaboración y discusiones sobre seguridad.

Los comentarios, correcciones y PRs (por ejemplo, para flag9/Dormouse, o el seguimiento de Duchess/flag4 en la referencia cruzada de CTFd) son bienvenidos — consulta CONTRIBUTING.md.

Categorías