Content layer - Reusable lab templates, Docker environments, and educational materials for cybersecurity education.
- Overview
- Repository Structure
- Quick Start
- Lab Templates
- Creating New Labs
- Documentation Standards
- Contributing
- License
- Author
WolfCTF Labs & Templates is a public repository containing reusable lab content and course materials, designed for use by students, instructors, and educational institutions.
Split from: wolverine monorepo at tag pre-split-2025-11
- Lab Templates: Pre-configured Docker images and Dockerfiles
- Lab Documentation: Markdown-formatted lab guides and tutorials
- Automated Grading Scripts: Lab completion detection and scoring tools
- Environment Configurations: Development environment setup and dependency management
- Sample Data: Test data and reference implementations
- Product Demos: Product site and demonstration materials
- Templated: All content can be forked and customized as templates
- Independent: No dependency on core or feature layer source code
- Open Collaboration: Welcomes contributions from students and institutions
- Standardized: Unified directory structure and documentation format
wolfctf-labs-templates/
βββ docker-templates/ # Docker image templates
β βββ debian12-ssh/ # Basic Debian environment
β βββ quickjs-cve-*/ # CVE lab environments
β βββ ffmpeg-cve-*/ # Media vulnerability labs
β βββ ... # Other specialized labs
βββ docs/ # Lab documentation and guides
β βββ Agent.md # AI Agent usage guide
β βββ Student_Report.md # Student reporting system
β βββ API.md # API reference
β βββ ... # Other documentation
βββ scripts/ # Automation scripts
β βββ telemetry/ # Telemetry data processing
β βββ ... # Build and deployment scripts
βββ bin/ # Executable tools
βββ local-data/ # Local test data
β βββ courses/ # Sample course data
βββ frontend/public/ # Frontend static assets
β βββ ... # Course materials, images, etc.
βββ Nexterm/ # Terminal component
βββ product-site/ # Product demo site
βββ README.md # This document
git clone https://github.com/quake0day/wolfctf-labs-templates.git
cd wolfctf-labs-templatesls docker-templates/cd docker-templates/debian12-ssh
docker build -t my-lab-image .docker run -d --name my-lab -p 2222:22 my-lab-image
ssh student@localhost -p 2222 # Password usually defined in DockerfileYou can fork this repository or use GitHub's "Use this template" feature to create your own lab content library.
Location: docker-templates/debian12-ssh, docker-templates/*-cve-*
Features:
- Pre-configured vulnerability environments
- CVE reproduction and analysis
- System security hardening exercises
Example Templates:
debian12-ssh: Basic Debian 12 with SSH serverquickjs-cve-*: QuickJS vulnerability labsffmpeg-cve-*: FFmpeg security analysis labs
Location: docker-templates/network-*
Features:
- Network protocol analysis
- Packet capture and analysis
- Network attack and defense exercises
Location: docker-templates/web-*
Features:
- OWASP Top 10 vulnerabilities
- Web application penetration testing
- Secure development practices
Location: docker-templates/forensics-*
Features:
- Memory forensics
- Disk forensics
- Malware analysis
cp -r docker-templates/debian12-ssh docker-templates/my-new-lab
cd docker-templates/my-new-labFROM debian:12-slim
# Install necessary software
RUN apt-get update && apt-get install -y \
openssh-server \
vim \
# Add your lab-specific tools
&& rm -rf /var/lib/apt/lists/*
# Configure SSH
RUN mkdir /var/run/sshd
RUN echo 'root:changeme' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# Add lab files
COPY lab-files/ /home/student/
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]Create lab documentation in docs/ (Markdown format):
# Lab X: Title
## Learning Objectives
- Objective 1
- Objective 2
## Lab Steps
1. Step 1
2. Step 2
## Verification and Submission
...docker build -t my-new-lab .
docker run -d --name test-lab -p 2222:22 my-new-lab
# Test lab environment
ssh root@localhost -p 2222
# Stop and cleanup
docker stop test-lab && docker rm test-labEach lab document should include:
- Title and Introduction: Lab name and objective overview
- Learning Objectives: Knowledge and skills to be mastered
- Prerequisites: Required background knowledge and skills
- Lab Environment: Required software and configuration
- Lab Steps: Detailed operational steps and instructions
- Discussion Questions: Thought-provoking questions
- Verification and Submission: How to verify completion and submit results
- References: Related documentation and resource links
# Lab X: [Lab Title]
## π Introduction
[Lab introduction, 1-2 paragraphs]
## π― Learning Objectives
- Objective 1
- Objective 2
- Objective 3
## π Prerequisites
- Knowledge point 1
- Knowledge point 2
## π₯οΈ Lab Environment
- Operating System: Debian 12
- Required Tools: ...
## π¨ Lab Steps
### Step 1: Title
[Detailed instructions]
```bash
# Sample commands
command here[Detailed instructions]
- Question 1
- Question 2
[How to verify lab completion]
## Contributing
### Submitting New Labs
1. **Fork Repository**
```bash
# Click GitHub Fork button
git clone https://github.com/YOUR-USERNAME/wolfctf-labs-templates.git
-
Create Lab Branch
git checkout -b lab/your-lab-name
-
Add Lab Content
- Create lab environment in
docker-templates/ - Add lab documentation in
docs/ - Add grading scripts in
scripts/(if needed)
- Create lab environment in
-
Test Lab
- Build and test Docker image
- Verify lab step accuracy
- Ensure documentation clarity
-
Submit Pull Request
git add . git commit -m "Add lab: Your Lab Name" git push origin lab/your-lab-name
Create PR on GitHub with:
- Lab description
- Learning objectives
- Test result screenshots
We welcome the following contributions:
- β¨ New lab content
- π Fix issues in existing labs
- π Improve lab documentation
- π οΈ Optimize build scripts and tools
- π Translate lab documentation to other languages
- π‘ Suggest improvements
- Dockerfile: Follow Docker best practices
- Scripts: Use shellcheck for validation
- Documentation: Follow Markdown standards
- Naming: Use clear, descriptive names
Location: scripts/telemetry/
Purpose:
- Detect student lab completion
- Automated scoring and feedback
- Generate learning reports
Example:
cd scripts/telemetry
./check-lab-completion.sh <lab-id> <student-id>Location: scripts/
Purpose:
- Batch build lab images
- Push to Docker Registry
- Version management and tagging
Example:
./scripts/build-all-labs.sh
./scripts/push-to-registry.shThis project is licensed under the MIT License - see the LICENSE file for details.
Si Chen
- Email: quake0day@gmail.com
- GitHub: @quake0day
Si Chen (quake0day@gmail.com)
- wolfctf-core - Core system layer
- wolfctf-os-course - Feature layer with course management
- Documentation Issues: Ask in GitHub Issues
- Technical Support: Create a GitHub issue with "support" label
- Contribution Discussion: Use GitHub Discussions
- Security Issues: Email quake0day@gmail.com (private reporting)
This repository was split from the wolverine monorepo at tag pre-split-2025-11, preserving complete history of all lab templates, documentation, and scripts. Content can be used independently or deployed with core and feature layers for a complete system.
Template Usage: You can directly fork this repository as your lab content library, or use GitHub's "Use this template" feature to create an independent repository.
Community: Join our community discussions to share your labs and learn from others.