Update wiki: 14/60 projects, difficulty-based organization, 11 new project pages

- Updated Home, Sidebar, Getting-Started, Project-Roadmap for new structure
- Updated existing project pages (API Scanner, E2E Chat, Keylogger)
- Updated Tools-and-Resources and Certification-Roadmaps with folder links
- Added 11 new project wiki pages (Base64-Tool, Caesar-Cipher, DNS-Lookup,
  Metadata-Scrubber-Tool, Network-Traffic-Analyzer, Simple-Port-Scanner,
  Simple-Vulnerability-Scanner, Docker-Security-Audit, SIEM-Dashboard,
  API-Rate-Limiter, Bug-Bounty-Platform)
- Added Contributing page
- Updated footer year to 2026
CarterPerez-dev 2026-02-11 04:56:38 -05:00
parent 76dc456cc1
commit 9ea8c2f795
22 changed files with 1936 additions and 160 deletions

173
API-Rate-Limiter.md Normal file

@ -0,0 +1,173 @@
# API Rate Limiter
Production-ready rate limiting library for FastAPI with three algorithms, three-layer defense, and advanced client fingerprinting.
## Overview
**fastapi-420** is a rate limiting library implementing sliding window, token bucket, and fixed window algorithms with Redis or in-memory storage. Features a three-layer defense system (per-user, per-endpoint, global DDoS protection), advanced client fingerprinting with IPv6 /64 normalization, and atomic Lua scripts for correctness under concurrent load.
**Status:** Complete | **Difficulty:** Advanced
## Tech Stack
| Technology | Version | Purpose |
|------------|---------|---------|
| Python | 3.12+ | Async/await throughout |
| FastAPI | - | ASGI web framework |
| Redis | 7+ | Distributed storage backend |
| Pydantic | v2 | Settings validation |
| Lua scripts | - | Atomic Redis operations |
## Features
### Rate Limiting Algorithms
| Algorithm | Accuracy | Memory | Best For |
|-----------|----------|--------|----------|
| Sliding Window | 99.997% | Constant | Production default |
| Token Bucket | Exact | Constant | Burst tolerance |
| Fixed Window | ~Exact | Constant | Simple use cases (has boundary exploit) |
### Three-Layer Defense
1. **Per-User Limits** — Stop individual abuse
2. **Per-Endpoint Limits** — Prevent endpoint-specific attacks
3. **Global Limits** — DDoS protection with circuit breaker
### Client Fingerprinting
- IP extraction with proxy-aware `X-Forwarded-For` handling
- IPv6 /64 block normalization (prevents trivial bypass)
- User-Agent and Accept header analysis
- JWT/API key/session identity extraction
- Composite fingerprinting combining all methods
### Response Headers
```
HTTP/1.1 420 Enhance Your Calm
Retry-After: 42
RateLimit-Limit: 100
RateLimit-Remaining: 0
RateLimit-Reset: 1706900000
```
### Security Relevance
- GitHub 1.35 Tbps DDoS (2018) — rate limiting enabled 10-minute recovery
- Dunkin' Donuts credential stuffing (2019) — login rate limits block this
- PS5 scalper bots (2020) — checkout rate limits for fair access
## Architecture
```
Incoming Request
┌─────────────────────────────────────────────┐
│ ASGI Middleware (middleware.py) │
└──────────────────────┬──────────────────────┘
┌─────────────────────────────────────────────┐
│ Client Fingerprinting (composite.py) │
│ IP + Headers + Auth → Composite Key │
└──────────────────────┬──────────────────────┘
┌─────────────────────────────────────────────┐
│ Three-Layer Defense (layers.py) │
│ User Layer → Endpoint Layer → Global Layer │
└──────────────────────┬──────────────────────┘
┌──────────────┬──────────────┬──────────────┐
│ Sliding │ Token │ Fixed │
│ Window │ Bucket │ Window │
└──────┬───────┴──────┬───────┴──────┬───────┘
└──────────────┼──────────────┘
┌──────────────┬──────────────┐
│ Redis │ In-Memory │
│ Backend │ Backend │
│ (Lua atomic)│ (asyncio) │
└──────────────┴──────────────┘
```
## Quick Start
```bash
cd PROJECTS/advanced/api-rate-limiter
# Install dependencies
uv sync
# Optional: Start Redis
docker run -d -p 6379:6379 redis:7-alpine
# Run the example app
uv run python examples/app.py
# Test rate limiting
curl http://localhost:8000/auth/login -X POST -d "username=test&password=test"
# After 3 requests: HTTP/1.1 420 Enhance Your Calm
```
## Configuration
```bash
# Redis (production)
REDIS_URL=redis://localhost:6379
# Fallback to in-memory when Redis unavailable
FALLBACK_TO_MEMORY=True
# Trust proxy headers
TRUST_X_FORWARDED_FOR=True
# Circuit breaker threshold
CIRCUIT_THRESHOLD=1000
```
## Project Structure
```
api-rate-limiter/
├── src/fastapi_420/
│ ├── algorithms/ # Rate limiting algorithms
│ │ ├── sliding_window.py
│ │ ├── token_bucket.py
│ │ └── fixed_window.py
│ ├── storage/ # Storage backends
│ │ ├── memory.py # In-memory (single instance)
│ │ ├── redis_backend.py # Redis (distributed)
│ │ └── lua/ # Atomic Lua scripts
│ ├── fingerprinting/ # Client identification
│ │ ├── ip.py # IP + IPv6 /64 normalization
│ │ ├── headers.py # User-Agent, Accept-*
│ │ ├── auth.py # JWT, API keys, sessions
│ │ └── composite.py # Combined fingerprint
│ ├── defense/ # Multi-layer protection
│ │ ├── layers.py # User/Endpoint/Global limits
│ │ └── circuit_breaker.py
│ ├── limiter.py # Main RateLimiter class
│ ├── middleware.py # ASGI middleware
│ ├── dependencies.py # FastAPI dependency injection
│ ├── config.py # Pydantic settings
│ └── types.py # Data structures
├── examples/
│ └── app.py # Full working example
└── tests/
```
## Development
```bash
# Run tests
uv run pytest tests/ -v
# Linting
uv run ruff check .
# Type checking
uv run mypy src/
# Format
uv run ruff format .
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/advanced/api-rate-limiter)

@ -6,7 +6,7 @@ Enterprise-grade automated API security scanner for vulnerability assessment acr
A full-stack security testing tool that performs deep vulnerability assessment, detecting OWASP API Top 10 flaws through intelligent fuzzing, authentication bypass testing, and comprehensive reporting.
**Status:** Complete | **Difficulty:** Advanced
**Status:** Complete | **Difficulty:** Intermediate
## Tech Stack
@ -104,7 +104,7 @@ A full-stack security testing tool that performs deep vulnerability assessment,
## Quick Start
```bash
cd PROJECTS/api-security-scanner
cd PROJECTS/intermediate/api-security-scanner
# Copy environment file
cp .env.example .env
@ -189,4 +189,4 @@ make format
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/api-security-scanner)
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/intermediate/api-security-scanner)

106
Base64-Tool.md Normal file

@ -0,0 +1,106 @@
# Base64 Tool
Multi-format encoding/decoding CLI with recursive layer peeling for security analysis.
## Overview
A Python CLI tool that handles Base64, Base64URL, Base32, hex, and URL encoding with automatic format detection and recursive multi-layer decoding. The standout feature is layer peeling — the same technique used to analyze obfuscated malware payloads and WAF bypass attempts.
**Status:** Complete | **Difficulty:** Beginner
## Tech Stack
| Technology | Version | Purpose |
|------------|---------|---------|
| Python | 3.14+ | Modern syntax, native type hints |
| Typer | - | CLI framework |
| Rich | - | Terminal formatting |
## Features
### Core Functionality
- Encode/decode across 5 formats (Base64, Base64URL, Base32, Hex, URL)
- Automatic format detection with confidence scoring
- Recursive layer peeling (decodes stacked encodings)
- Chain encoding (apply multiple encodings in sequence)
- Pipe/stdin support
### Security Relevance
- Analyze obfuscated malware payloads (e.g., DARKGATE multi-layer encoding)
- Decode WAF bypass attempts
- Inspect JWT tokens, certificates, and hex dumps
- Understand why encoding is not encryption
## Architecture
```
User Command
cli.py (Typer commands: encode, decode, detect, peel, chain)
┌──────────────┬──────────────┬──────────────┐
│ encoders.py │ detector.py │ peeler.py │
│ Pure encode │ Format │ Recursive │
│ /decode + │ detection + │ multi-layer │
│ registry │ confidence │ decoding │
└──────────────┴──────────────┴──────────────┘
formatter.py (Rich terminal output)
```
## Quick Start
```bash
cd PROJECTS/beginner/base64-tool
# Install dependencies
uv sync
# Encode/decode
uv run b64tool encode "Hello World"
uv run b64tool decode "SGVsbG8gV29ybGQ="
# Auto-detect format
uv run b64tool detect "SGVsbG8gV29ybGQ="
# Multi-layer peeling
uv run b64tool chain "alert('xss')" --steps base64,hex
uv run b64tool peel "5957786c636e516f4a33687a63796370"
# Pipe support
echo "SGVsbG8=" | uv run b64tool decode
```
## Project Structure
```
base64-tool/
├── src/base64_tool/
│ ├── cli.py # Typer commands
│ ├── constants.py # Enums, thresholds, character sets
│ ├── encoders.py # Pure encode/decode functions + registry
│ ├── detector.py # Format detection with confidence scoring
│ ├── peeler.py # Recursive multi-layer decoding
│ ├── formatter.py # Rich terminal output
│ └── utils.py # Input resolution, text helpers
├── tests/ # 78 tests across all modules
├── pyproject.toml
└── Justfile
```
## Development
```bash
# Run tests
uv run pytest tests/ -v
# Linting
uv run ruff check .
# Format
uv run ruff format .
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/beginner/base64-tool)

193
Bug-Bounty-Platform.md Normal file

@ -0,0 +1,193 @@
# Bug Bounty Platform
Full-stack vulnerability disclosure platform with CVSS scoring, report lifecycle management, and role-based access.
## Overview
A complete bug bounty platform where security researchers submit vulnerability reports to organizations. Features JWT authentication with Argon2id hashing, CVSS severity scoring, full report lifecycle management (submitted → triaged → accepted → resolved), role-based access control (user/company/admin), and a React dashboard for managing programs and submissions.
**Status:** Complete | **Difficulty:** Advanced
## Tech Stack
### Backend
| Technology | Version | Purpose |
|------------|---------|---------|
| FastAPI | 0.123+ | Async web framework |
| PostgreSQL | 18 | Primary database |
| SQLAlchemy | 2.0+ | Async ORM (mapped columns) |
| Alembic | 1.15+ | Database migrations |
| PyJWT | - | JWT token handling |
| pwdlib + Argon2 | - | Password hashing |
| Pydantic | v2 | Request/response validation |
| uuid-utils | - | UUID v7 generation |
### Frontend
| Technology | Version | Purpose |
|------------|---------|---------|
| React | - | UI framework |
| TypeScript | - | Type safety |
| Vite | - | Build tool |
| TanStack Query | v5 | Server state management |
| Zustand | - | Client state (persisted) |
| Axios | - | HTTP client with interceptors |
| Zod | - | Runtime validation |
| Sass | - | Styling |
### Infrastructure
- Docker Compose
- Nginx reverse proxy
- Justfile task runner
## Features
### Authentication & Authorization
- JWT access + refresh token flow with automatic renewal
- Argon2id password hashing (PHC winner)
- Token version tracking for instant invalidation
- Role-based access control (User, Company, Admin)
### Vulnerability Reports
- CVSS severity scoring
- Full lifecycle: submitted → triaged → accepted → resolved / rejected
- Markdown-formatted descriptions
- Attachment support
### Platform Management
- Company program creation and management
- Researcher profiles and submission history
- Admin dashboard for platform oversight
### Architecture Patterns
- Repository pattern for data access
- Pydantic schemas for validation (input/output separation)
- FastAPI dependency injection throughout
- Database session management with automatic rollback
- Mixin-based models (UUIDMixin, TimestampMixin)
## Architecture
```
┌─────────────────────────────────────────────────────────┐
│ Frontend (React + TS) │
│ Zustand (auth) | TanStack Query | Axios interceptors │
│ Auto token refresh on 401 │
└───────────────────────────┬─────────────────────────────┘
┌───────────────────────────▼─────────────────────────────┐
│ Nginx Reverse Proxy │
└───────────────────────────┬─────────────────────────────┘
┌───────────────────────────▼─────────────────────────────┐
│ Backend (FastAPI) │
│ │
│ Routes → Dependencies → Repositories → Models │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
│ │ Auth │ │ Users │ │ Reports / Programs │ │
│ │ JWT + │ │ CRUD │ │ CVSS scoring │ │
│ │ Argon2 │ │ Roles │ │ Lifecycle mgmt │ │
│ └──────────┘ └──────────┘ └──────────────────────┘ │
│ │
│ Core: database.py | security.py | dependencies.py │
│ Base: UUIDMixin | TimestampMixin | DeclarativeBase │
└───────────────────────────┬─────────────────────────────┘
┌───────────────────────────▼─────────────────────────────┐
│ PostgreSQL 18 │
│ Users | Reports | Programs | Credentials │
│ UUID v7 PKs | Async via asyncpg │
└─────────────────────────────────────────────────────────┘
```
## Quick Start
```bash
cd PROJECTS/advanced/bug-bounty-platform
# Copy environment file
cp .env.example .env
# Start development environment
just up
# Or: docker compose up --build
# Access at http://localhost:8420
```
## Configuration
```bash
# Database
DATABASE_URL=postgresql+asyncpg://user:pass@localhost:5432/bugbounty
# JWT
SECRET_KEY=your-secret-key
JWT_ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=15
REFRESH_TOKEN_EXPIRE_DAYS=7
# CORS
CORS_ORIGINS=["http://localhost:3000"]
```
## API Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/api/auth/register` | User registration |
| POST | `/api/auth/login` | JWT authentication |
| POST | `/api/auth/refresh` | Token refresh |
| GET | `/api/users/me` | Current user profile |
| POST | `/api/reports` | Submit vulnerability report |
| GET | `/api/reports/{id}` | Get report details |
| PATCH | `/api/reports/{id}` | Update report status |
| GET | `/api/programs` | List bounty programs |
## Project Structure
```
bug-bounty-platform/
├── backend/
│ ├── src/app/
│ │ ├── core/
│ │ │ ├── database.py # Async session manager
│ │ │ ├── security.py # JWT + Argon2id
│ │ │ ├── dependencies.py # Auth dependency injection
│ │ │ └── Base.py # UUIDMixin, TimestampMixin
│ │ ├── user/ # User module
│ │ │ ├── models.py # User + UserRole enum
│ │ │ ├── repository.py # Data access
│ │ │ ├── schemas.py # Pydantic validation
│ │ │ └── routes.py # API endpoints
│ │ ├── report/ # Report module (same pattern)
│ │ └── program/ # Program module (same pattern)
│ └── pyproject.toml
├── frontend/
│ ├── src/
│ │ ├── api/ # Axios client + hooks
│ │ ├── stores/ # Zustand (auth persisted)
│ │ └── components/
│ └── package.json
├── infra/ # Docker + Nginx
├── compose.yml
└── Justfile
```
## Development
```bash
# Backend
uv run ruff check .
uv run mypy .
uv run pytest tests/
# Frontend
pnpm lint
pnpm build
pnpm test
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/advanced/bug-bounty-platform)

101
Caesar-Cipher.md Normal file

@ -0,0 +1,101 @@
# Caesar Cipher
Classical encryption tool with brute-force cracking and frequency analysis.
## Overview
A CLI tool implementing the Caesar cipher with encrypt, decrypt, and crack commands. The crack feature uses chi-squared frequency analysis to automatically determine the shift key by ranking all 26 possible decryptions against English letter frequency distributions.
**Status:** Complete | **Difficulty:** Beginner
## Tech Stack
| Technology | Version | Purpose |
|------------|---------|---------|
| Python | 3.12+ | Core language |
| Typer | - | CLI framework |
| Rich | - | Terminal formatting and tables |
## Features
### Core Functionality
- Encrypt text with a given shift key
- Decrypt text when the key is known
- Brute-force crack by trying all 26 shifts
- Chi-squared frequency analysis for ranking results
- File I/O support
### Security Relevance
- ROT13 is still used in forums and email
- Frequency analysis applies to other substitution ciphers in CTF challenges
- Brute-forcing small key spaces applies to weak passwords and short PINs
- Foundation for understanding why simple substitution ciphers fail
## Architecture
```
User Command
main.py (Typer CLI: encrypt, decrypt, crack)
┌──────────────┬──────────────┬──────────────┐
│ cipher.py │ analyzer.py │ constants.py │
│ Encrypt/ │ Frequency │ English │
│ decrypt │ analysis + │ letter │
│ logic │ chi-squared │ frequencies │
└──────────────┴──────────────┴──────────────┘
utils.py (File I/O, input validation)
```
## Quick Start
```bash
cd PROJECTS/beginner/caesar-cipher
# Install dependencies
uv sync
# Encrypt
caesar-cipher encrypt "HELLO WORLD" --key 3
# Output: KHOOR ZRUOG
# Decrypt
caesar-cipher decrypt "KHOOR ZRUOG" --key 3
# Output: HELLO WORLD
# Crack without knowing the key
caesar-cipher crack "KHOOR ZRUOG"
# Shows ranked table of all 26 possible decryptions
```
## Project Structure
```
caesar-cipher/
├── src/caesar_cipher/
│ ├── cipher.py # Core encryption/decryption logic
│ ├── analyzer.py # Frequency analysis for cracking
│ ├── constants.py # English letter frequencies, alphabet
│ ├── main.py # CLI commands
│ └── utils.py # File I/O and input validation
├── tests/
└── pyproject.toml
```
## Development
```bash
# Run tests
uv run pytest tests/ -v
# Linting
uv run ruff check .
# Format
uv run ruff format .
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/beginner/caesar-cipher)

@ -2,20 +2,22 @@
Role-based certification paths for cybersecurity careers. Each roadmap progresses from entry-level to expert.
> The repository now has a dedicated [ROADMAPS/](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/ROADMAPS) folder with individual, detailed files for each career path. This wiki page provides a summary.
## Quick Navigation
| Role | Entry Cert | Target Cert |
|------|------------|-------------|
| [SOC Analyst](#soc-analyst) | Security+ | CISSP |
| [Penetration Tester](#penetration-tester) | Security+ | OSCP/OSEP |
| [Security Engineer](#security-engineer) | Security+ | CISSP |
| [Incident Responder](#incident-responder) | Security+ | GCFA/GREM |
| [Security Architect](#security-architect) | Security+ | CISSP/SABSA |
| [Cloud Security Engineer](#cloud-security-engineer) | Security+ | CCSP |
| [GRC Analyst](#grc-analyst) | Security+ | CISA/CRISC |
| [Threat Intelligence](#threat-intelligence-analyst) | Security+ | GCTI |
| [Application Security](#application-security) | Security+ | OSWE |
| [Network Security](#network-security-engineer) | Network+ | CCNP Security |
| Role | Entry Cert | Target Cert | Details |
|------|------------|-------------|---------|
| [SOC Analyst](#soc-analyst) | Security+ | CISSP | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/SOC-ANALYST.md) |
| [Penetration Tester](#penetration-tester) | Security+ | OSCP/OSEP | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/PENTESTER.md) |
| [Security Engineer](#security-engineer) | Security+ | CISSP | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/SECURITY-ENGINEER.md) |
| [Incident Responder](#incident-responder) | Security+ | GCFA/GREM | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/INCIDENT-RESPONDER.md) |
| [Security Architect](#security-architect) | Security+ | CISSP/SABSA | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/SECURITY-ARCHITECT.md) |
| [Cloud Security Engineer](#cloud-security-engineer) | Security+ | CCSP | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/CLOUD-SECURITY-ENGINEER.md) |
| [GRC Analyst](#grc-analyst) | Security+ | CISA/CRISC | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/GRC-ANALYST.md) |
| [Threat Intelligence](#threat-intelligence-analyst) | Security+ | GCTI | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/THREAT-INTELLIGENCE-ANALYST.md) |
| [Application Security](#application-security) | Security+ | OSWE | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/APPLICATION-SECURITY.md) |
| [Network Security](#network-security-engineer) | Network+ | CCNP Security | [Full Roadmap](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/ROADMAPS/NETWORK-ENGINEER.md) |
---
@ -234,4 +236,4 @@ Network+ ──> Security+ ──> CCNA ──> CCNP Security ──> CISSP
---
See the main [README](https://github.com/CarterPerez-dev/Cybersecurity-Projects) for complete certification tables with all links.
For the most comprehensive and up-to-date version, see the individual roadmap files in the [ROADMAPS/ folder](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/ROADMAPS).

69
Contributing.md Normal file

@ -0,0 +1,69 @@
# Contributing
Want to contribute a project? Here's how to get started.
> For the full, detailed contributing guide, see [CONTRIBUTING.md](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/CONTRIBUTING.md) in the repository.
## Quick Overview
1. **Fork** the repository
2. **Create** your project in `PROJECTS/{difficulty}/{project-name}/`
3. **Include** a `learn/` folder with educational documentation
4. **Submit** a pull request
## Project Structure
Projects live in difficulty-based directories:
```
PROJECTS/
├── beginner/ # Basic tools, single-file scripts
├── intermediate/ # Multi-component systems, API integrations
└── advanced/ # Full-stack apps, distributed systems
```
Naming convention: lowercase, hyphenated (e.g., `api-security-scanner`, `dns-lookup`)
## Required: learn/ Folder
Every project must include a `learn/` directory with five educational files:
| File | Content |
|------|---------|
| `00-OVERVIEW.md` | What it does, prerequisites, quick start |
| `01-CONCEPTS.md` | Security theory, real breaches, CVE references |
| `02-ARCHITECTURE.md` | System design with ASCII diagrams |
| `03-IMPLEMENTATION.md` | Code walkthrough with file:line references |
| `04-CHALLENGES.md` | Extension ideas from easy to expert |
Copy the template from `.github/learn-folder-template/` to get started.
## Package Managers
- **Python:** Use [uv](https://github.com/astral-sh/uv) (not pip)
- **Node.js:** Use [pnpm](https://pnpm.io/) or [Bun](https://bun.sh/) (not npm)
## Code Quality
All Python code must pass:
- `ruff check .` (linting)
- `mypy .` (type checking)
- `pylint src/` (additional linting)
Format with the repo's YAPF configuration (see `TEMPLATES/.style.yapf`).
## Documentation Standards
- Reference actual code with `filename:line` format
- Include real-world examples (breaches, CVEs, incidents)
- Use ASCII diagrams for architecture
- Write in a clear, human voice (no marketing speak)
- Ground concepts in real-world security scenarios
## Full-Stack Template
Building a full-stack app? Use the included [fullstack-template](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/TEMPLATES/fullstack-template) with FastAPI, React, Docker, and more.
## Questions?
[Open an issue](https://github.com/CarterPerez-dev/Cybersecurity-Projects/issues) to discuss project ideas before starting.

114
DNS-Lookup.md Normal file

@ -0,0 +1,114 @@
# DNS Lookup
Professional DNS reconnaissance tool for security research and network analysis.
## Overview
A CLI tool that performs DNS queries, reverse lookups, resolution tracing, WHOIS lookups, and batch domain reconnaissance. Unlike simple `dig` wrappers, this implements concurrent async DNS queries, resolution path tracing from root servers, and structured output formatting.
**Status:** Complete | **Difficulty:** Beginner
## Tech Stack
| Technology | Version | Purpose |
|------------|---------|---------|
| Python | 3.13+ | Async support |
| Typer | - | CLI framework |
| Rich | - | Terminal formatting |
| dnspython | - | DNS protocol operations |
| asyncio | - | Concurrent queries |
## Features
### Core Functionality
- Multi-type DNS record queries (A, AAAA, MX, NS, TXT, CNAME, SOA)
- Reverse DNS lookups (IPv4 and IPv6 PTR records)
- DNS resolution trace from root servers through TLD to authoritative nameservers
- Batch operations with concurrent async queries
- WHOIS domain registration lookups
- Custom DNS server selection
- JSON output for automation
### Security Relevance
- Reconnaissance techniques used in penetration testing
- DNS infrastructure enumeration (MITRE T1590.002)
- Understanding DNS hijacking (Sea Turtle, DNSpionage campaigns)
- Detecting DNS tunneling and cache poisoning
- Investigating suspicious domains during incident response
## Architecture
```
User Command
cli.py (Typer: query, reverse, trace, batch, whois)
┌──────────────────┬──────────────────┐
│ resolver.py │ whois_lookup.py │
│ Async DNS │ Domain │
│ operations │ registration │
│ (~400 lines) │ details │
└──────────────────┴──────────────────┘
output.py (Rich formatting, ~400 lines)
Terminal Display
```
## Quick Start
```bash
cd PROJECTS/beginner/dns-lookup
# Install dependencies
uv sync
# Query all record types
uv run dnslookup query example.com
# Specific records with custom server
uv run dnslookup query example.com --type A,MX --server 8.8.8.8
# Trace resolution path
uv run dnslookup trace example.com
# Reverse lookup
uv run dnslookup reverse 8.8.8.8
# Batch reconnaissance
echo "example.com" > domains.txt
uv run dnslookup batch domains.txt --output results.json
# WHOIS lookup
uv run dnslookup whois example.com
```
## Project Structure
```
dns-lookup/
├── src/dnslookup/
│ ├── cli.py # Typer command interface
│ ├── resolver.py # Core DNS logic
│ ├── output.py # Rich terminal formatting
│ └── whois_lookup.py # WHOIS operations
├── tests/
└── pyproject.toml
```
## Development
```bash
# Run tests
uv run pytest tests/ -v
# Linting
uv run ruff check .
# Format
uv run ruff format .
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/beginner/dns-lookup)

154
Docker-Security-Audit.md Normal file

@ -0,0 +1,154 @@
# Docker Security Audit
Go-based Docker environment security scanner validating against CIS Docker Benchmark.
## Overview
**docksec** is a CLI tool that scans Docker environments for security misconfigurations. It analyzes running containers, daemon settings, images, Dockerfiles, and docker-compose files against the CIS Docker Benchmark v1.6.0, detecting issues like privileged containers, dangerous capabilities, Docker socket mounts, and hardcoded secrets.
**Status:** Complete | **Difficulty:** Intermediate
## Tech Stack
| Technology | Version | Purpose |
|------------|---------|---------|
| Go | 1.23+ | Core language |
| Docker SDK | - | Container/image/daemon introspection |
| Cobra | - | CLI framework |
| moby/buildkit | - | Dockerfile AST parsing |
| errgroup | - | Concurrent scanning |
### Output Formats
| Format | Purpose |
|--------|---------|
| Terminal | Human-readable colored output |
| JSON | Structured data for automation |
| SARIF 2.1.0 | GitHub Security tab integration |
| JUnit XML | CI/CD pipeline integration |
## Features
### Security Scanners
| Scanner | Target | Checks |
|---------|--------|--------|
| Container | Running containers | Privileged mode, capabilities, mounts, namespaces, security profiles, resource limits |
| Daemon | Docker daemon | Insecure registries, ICC, user namespaces, experimental features |
| Image | Local images | USER instruction, secrets in history, base image tags |
| Dockerfile | Build files | USER instruction, ADD vs COPY, secrets in ENV/ARG, HEALTHCHECK |
| Compose | docker-compose.yml | Same as container checks for service definitions |
### Advanced Features
- 41 Linux capabilities mapped with risk levels
- 200+ sensitive host path detection
- 80+ secret patterns with Shannon entropy analysis
- CIS Benchmark control mapping with scored/unscored distinction
- Severity filtering (INFO through CRITICAL)
- CI/CD fail-on threshold (`--fail-on medium`)
- Concurrent scanning with rate limiting
## Architecture
```
cmd/docksec/main.go (Cobra CLI)
internal/scanner/scanner.go (Orchestration)
↓ errgroup + rate limiter
┌──────────┬──────────┬──────────┬────────────┬───────────┐
│Container │ Daemon │ Image │ Dockerfile │ Compose │
│Analyzer │ Analyzer │ Analyzer │ Analyzer │ Analyzer │
└────┬─────┴────┬─────┴────┬─────┴─────┬──────┴─────┬────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────┐
│ Rules Engine │
│ capabilities.go | paths.go | secrets.go │
│ (41 caps) | (200+ paths) | (80+ patterns) │
└───────────────────────────┬─────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ CIS Benchmark Registry │
│ benchmark/controls.go (100+ controls) │
└───────────────────────────┬─────────────────────────────┘
┌──────────┬──────────┬──────────┬──────────┐
│ Terminal │ JSON │ SARIF │ JUnit │
│ Reporter │ Reporter │ Reporter │ Reporter │
└──────────┴──────────┴──────────┴──────────┘
```
## Quick Start
```bash
cd PROJECTS/intermediate/docker-security-audit
# Build
go build -o docksec ./cmd/docksec
# Scan all running containers
./docksec scan
# Scan specific targets
./docksec scan --target containers
./docksec scan --target daemon
./docksec scan --target images
# Scan a Dockerfile
./docksec scan --file Dockerfile
# Scan docker-compose
./docksec scan --file docker-compose.yml
# JSON output for automation
./docksec scan --output json --output-file results.json
# SARIF for GitHub Security
./docksec scan --output sarif --output-file results.sarif
# Fail CI on findings
./docksec scan --fail-on medium
```
## Project Structure
```
docker-security-audit/
├── cmd/docksec/
│ └── main.go # CLI entry point
├── internal/
│ ├── analyzer/ # Security check implementations
│ │ ├── container.go # Running container checks
│ │ ├── daemon.go # Daemon config checks
│ │ ├── image.go # Image metadata checks
│ │ ├── dockerfile.go # Dockerfile static analysis
│ │ └── compose.go # docker-compose checks
│ ├── benchmark/
│ │ └── controls.go # CIS Docker Benchmark v1.6.0
│ ├── config/ # Runtime configuration
│ ├── docker/ # Docker SDK client wrapper
│ ├── finding/ # Finding data model
│ ├── proc/ # Linux /proc inspection
│ ├── report/ # Output formatters
│ ├── rules/ # Security rule data
│ └── scanner/ # Scan orchestration
├── Dockerfile
├── go.mod
└── go.sum
```
## Development
```bash
# Run tests
go test ./...
# Build
go build -o docksec ./cmd/docksec
# Build with version info
go build -ldflags "-X main.version=1.0.0" -o docksec ./cmd/docksec
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/intermediate/docker-security-audit)

@ -156,7 +156,7 @@ Root Key ─────┬─────> Chain Key 1 ──> Message Key 1
## Quick Start
```bash
cd PROJECTS/encrypted-p2p-chat
cd PROJECTS/advanced/encrypted-p2p-chat
# Copy environment file
cp .env.example .env
@ -239,4 +239,4 @@ make test
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/encrypted-p2p-chat)
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/advanced/encrypted-p2p-chat)

@ -5,8 +5,11 @@
### General Requirements
- Git 2.x+
- Docker & Docker Compose
- Python 3.11+ (3.13+ for newer projects)
- Python 3.13+ (for Python projects)
- Go 1.23+ (for Go projects)
- Node.js 20+ (for frontend projects)
- [uv](https://github.com/astral-sh/uv) (Python package manager)
- [pnpm](https://pnpm.io/) (Node.js package manager)
### Cloning the Repository
@ -23,80 +26,143 @@ cd Cybersecurity-Projects
git submodule update --init --recursive
```
### Updating Submodules
## Project Organization
To pull the latest changes from submodules:
Projects are organized by difficulty level:
```bash
git submodule update --remote
```
PROJECTS/
├── beginner/ # Foundation tools, CLI apps, single-component
├── intermediate/ # Multi-component systems, API integrations
└── advanced/ # Full-stack apps, distributed systems
```
Each completed project contains a `learn/` folder with educational documentation:
```
any-project/
├── learn/
│ ├── 00-OVERVIEW.md # Quick start, prerequisites
│ ├── 01-CONCEPTS.md # Security theory, real breaches, CVEs
│ ├── 02-ARCHITECTURE.md # System design, ASCII diagrams
│ ├── 03-IMPLEMENTATION.md # Code walkthrough
│ └── 04-CHALLENGES.md # Extension ideas
├── src/ # Source code
├── tests/ # Test suite
└── README.md
```
## Running Projects
Each completed project in `PROJECTS/` has its own setup. Most use Docker Compose for easy deployment.
### Quick Start Pattern
Most projects follow this pattern:
```bash
cd PROJECTS/<project-name>
cd PROJECTS/<difficulty>/<project-name>
# Development mode
# Full-stack projects (Docker-based)
make dev
# or
docker compose -f dev.compose.yml up --build
# Production mode
make prod
# or
docker compose up --build
# CLI tools (Python)
uv sync
uv run python src/main.py
# CLI tools (Go)
go build -o bin/ ./cmd/...
./bin/<tool-name>
```
### Project-Specific Instructions
| Project | Setup Command | Access |
|---------|--------------|--------|
#### Beginner Projects
| Project | Setup | Access |
|---------|-------|--------|
| Simple Port Scanner | `cd src && g++ -o scanner scanner.cpp` | CLI |
| Keylogger | `uv sync && uv run python src/keylogger.py` | CLI |
| Caesar Cipher | `uv sync && uv run python src/caesar.py` | CLI |
| DNS Lookup | `uv sync && uv run python -m dnslookup` | CLI |
| Vulnerability Scanner | `go build ./cmd/vulnscan` | CLI |
| Metadata Scrubber | `uv sync && uv run python src/scrubber.py` | CLI |
| Network Traffic Analyzer | `uv sync && sudo uv run python src/analyzer.py` | CLI |
| Base64 Tool | `uv sync && uv run python src/base64_tool.py` | CLI |
#### Intermediate Projects
| Project | Setup | Access |
|---------|-------|--------|
| API Security Scanner | `make dev` | http://localhost:3000 |
| SIEM Dashboard | `make dev` | http://localhost:3000 |
| Docker Security Audit | `go build ./cmd/audit` | CLI |
#### Advanced Projects
| Project | Setup | Access |
|---------|-------|--------|
| API Rate Limiter | `uv sync && uv run python examples/demo.py` | Library / CLI |
| Encrypted P2P Chat | `make dev` | http://localhost:3000 |
| Keylogger | `python keylogger.py` | CLI output |
| Bug Bounty Platform | `make dev` | http://localhost:3000 |
## Development Environment
### Recommended Tools
- **IDE:** VS Code with Python, TypeScript, Docker extensions
- **IDE:** VS Code with Python, TypeScript, Go, Docker extensions
- **API Testing:** Bruno, Postman, or httpie
- **Database:** DBeaver or pgAdmin for PostgreSQL
- **Network:** Wireshark for packet analysis
### Python Setup
### Python Setup (uv)
```bash
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
pip install -e ".[dev]"
# Navigate to a Python project
cd PROJECTS/beginner/dns-lookup
# Create venv and install deps
uv sync
# Run
uv run python -m dnslookup example.com
```
### Node.js Setup
### Node.js Setup (pnpm)
```bash
# Install pnpm
npm install -g pnpm
# Navigate to a frontend project
cd PROJECTS/intermediate/api-security-scanner/frontend
# Install dependencies
npm install
# or
pnpm install
# Development server
npm run dev
pnpm dev
```
### Go Setup
```bash
# Navigate to a Go project
cd PROJECTS/beginner/simple-vulnerability-scanner
# Build
go build -o bin/vulnscan ./cmd/vulnscan
# Run
./bin/vulnscan --help
```
## Environment Variables
Each project has a `.env.example` file. Copy and configure:
Full-stack projects have a `.env.example` file. Copy and configure:
```bash
cp .env.example .env
@ -105,9 +171,30 @@ cp .env.example .env
Never commit `.env` files with secrets.
## Code Quality
All projects use strict linting and type checking:
```bash
# Python
ruff check . # Linting
mypy . # Type checking
pylint src/ # Additional linting
# Go
go vet ./... # Static analysis
golangci-lint run # Linting
# Frontend
pnpm lint # ESLint
pnpm typecheck # TypeScript checking
```
## Next Steps
1. Pick a project from the [Project Roadmap](Project-Roadmap)
2. Read the project-specific wiki page
1. Browse the [Project Roadmap](Project-Roadmap) to find a project that interests you
2. Read the project's wiki page and `learn/00-OVERVIEW.md`
3. Clone and run locally
4. Explore the code and learn
4. Work through the `learn/` documentation
5. Try the challenges in `learn/04-CHALLENGES.md`
6. Want to contribute? See [Contributing](Contributing)

113
Home.md

@ -1,59 +1,108 @@
# 60 Cybersecurity Projects
A comprehensive collection of hands on cybersecurity projects with full source code, documentation, and learning resources. Built for security professionals, students, and anyone looking to develop practical skills.
A comprehensive collection of hands-on cybersecurity projects with full source code, documentation, and learning resources. Built for security professionals, students, and anyone looking to develop practical skills.
## Progress: 3/60 Projects Complete
## Progress: 14/60 Projects Complete
| Status | Project | Difficulty | Tech Stack |
|--------|---------|------------|------------|
| **Complete** | [API Security Scanner](API-Security-Scanner) | Advanced | FastAPI, React 19, PostgreSQL, Docker |
| **Complete/In-Progress** | [Encrypted P2P Chat](Encrypted-P2P-Chat) | Advanced | FastAPI, SolidJS, Signal Protocol, WebAuthn |
| **Complete** | [Keylogger](Keylogger) | Beginner | Python 3.13+, pynput |
| *In Progress* | [Aenebris Reverse Proxy](Aenebris) | Advanced | Haskell |
| *Next* | DNS Lookup Tool | Beginner | Python |
### Beginner (8/20 Complete)
| Project | Tech Stack | Status |
|---------|------------|--------|
| [Simple Port Scanner](Simple-Port-Scanner) | C++ | Complete |
| [Keylogger](Keylogger) | Python 3.13+ | Complete |
| [Caesar Cipher](Caesar-Cipher) | Python | Complete |
| [DNS Lookup Tool](DNS-Lookup) | Python | Complete |
| [Simple Vulnerability Scanner](Simple-Vulnerability-Scanner) | Go | Complete |
| [Metadata Scrubber Tool](Metadata-Scrubber-Tool) | Python | Complete |
| [Network Traffic Analyzer](Network-Traffic-Analyzer) | Python | Complete |
| [Base64 Encoder/Decoder](Base64-Tool) | Python | Complete |
### Intermediate (3/22 Complete)
| Project | Tech Stack | Status |
|---------|------------|--------|
| [API Security Scanner](API-Security-Scanner) | FastAPI, React, PostgreSQL, Docker | Complete |
| [SIEM Dashboard](SIEM-Dashboard) | Flask, React, Docker | Complete |
| [Docker Security Audit](Docker-Security-Audit) | Go, Docker | Complete |
### Advanced (3/18 Complete)
| Project | Tech Stack | Status |
|---------|------------|--------|
| [API Rate Limiter](API-Rate-Limiter) | Python, Redis | Complete |
| [Encrypted P2P Chat](Encrypted-P2P-Chat) | FastAPI, SolidJS, Signal Protocol, WebAuthn | Complete |
| [Bug Bounty Platform](Bug-Bounty-Platform) | FastAPI, React, PostgreSQL | Complete |
## Quick Links
- [Getting Started](Getting-Started) - Setup instructions and prerequisites
- [Project Roadmap](Project-Roadmap) - Build order and timeline for all 60 projects
- [Certification Roadmaps](Certification-Roadmaps) - 10 role-based cert paths
- [Tools & Resources](Tools-and-Resources) - Curated cybersecurity tools and learning platforms
- [Getting Started](Getting-Started) - Setup instructions and prerequisites
- [Contributing](Contributing) - How to contribute a project
## Repository Structure
```
Cybersecurity-Projects/
├── PROJECTS/ # Full source code for completed projects
│ ├── api-security-scanner/
│ ├── encrypted-p2p-chat/
│ ├── keylogger/
│ └── Aenebris/
├── SYNOPSES/ # Brief instructions for all 60 projects
├── PROJECTS/ # Full source code (organized by difficulty)
│ ├── beginner/ # 8 complete projects
│ │ ├── base64-tool/
│ │ ├── caesar-cipher/
│ │ ├── dns-lookup/
│ │ ├── keylogger/
│ │ ├── metadata-scrubber-tool/
│ │ ├── network-traffic-analyzer/
│ │ ├── simple-port-scanner/
│ │ └── simple-vulnerability-scanner/
│ ├── intermediate/ # 3 complete projects
│ │ ├── api-security-scanner/
│ │ ├── docker-security-audit/
│ │ └── siem-dashboard/
│ └── advanced/ # 3 complete projects
│ ├── api-rate-limiter/
│ ├── bug-bounty-platform/
│ └── encrypted-p2p-chat/
├── SYNOPSES/ # Project outlines for remaining 46 projects
│ ├── beginner/
│ ├── intermediate/
│ └── advanced/
├── templates/ # Fullstack template (submodule)
└── README.md # Main resource guide with certs & tools
├── RESOURCES/ # Learning resources
│ ├── TOOLS.md
│ ├── COURSES.md
│ ├── CERTIFICATIONS.md
│ ├── COMMUNITIES.md
│ └── FRAMEWORKS.md
├── ROADMAPS/ # 10 certification career paths
│ ├── SOC-ANALYST.md
│ ├── PENTESTER.md
│ ├── SECURITY-ENGINEER.md
│ └── ... (7 more)
├── TEMPLATES/ # Fullstack template (submodule)
├── CONTRIBUTING.md
└── README.md
```
## Project Categories
## What Each Project Includes
Every completed project ships with:
- **Full source code** with modern best practices and strict type checking
- **learn/ folder** with 5 educational documents:
- `00-OVERVIEW.md` - Quick start and prerequisites
- `01-CONCEPTS.md` - Security theory, real breaches, CVE references
- `02-ARCHITECTURE.md` - System design with ASCII diagrams
- `03-IMPLEMENTATION.md` - Line-by-line code walkthrough
- `04-CHALLENGES.md` - Extension ideas for further learning
- **Production-ready tooling** - Docker, pre-commit hooks, linting, tests
## Project Categories (All 60)
### Beginner (20 Projects)
Port Scanner, Keylogger, Caesar Cipher, DNS Lookup, Vulnerability Scanner, Metadata Scrubber, Network Traffic Analyzer, Hash Cracker, Steganography, MAC Spoofer, File Integrity Monitor, Security News Scraper, Phishing URL Detector, SSH Brute Force Detector, WiFi Scanner, Base64 Encoder, Firewall Log Parser, ARP Spoofing Detector, Windows Registry Monitor, Ransomware Simulator
### Intermediate (22 Projects)
Reverse Shell Handler, SIEM Dashboard, Threat Intelligence Aggregator, OAuth Token Analyzer, Web Vulnerability Scanner, DDoS Mitigation, Container Security Scanner, API Rate Limiter, Wireless Deauth Detector, AD Enumeration, Binary Analysis, Network IPS, Password Policy Auditor, Cloud Asset Inventory, OSINT Framework, SSL/TLS Scanner, Mobile App Analyzer, Backup Integrity Checker, WAF, Privilege Escalation Finder, Network Baseline Monitor, Docker Security Audit
Reverse Shell Handler, SIEM Dashboard, Threat Intelligence Aggregator, OAuth Token Analyzer, Web Vulnerability Scanner, DDoS Mitigation, Container Security Scanner, API Security Scanner, Wireless Deauth Detector, AD Enumeration, Binary Analysis, Network IPS, Password Policy Auditor, Cloud Asset Inventory, OSINT Framework, SSL/TLS Scanner, Mobile App Analyzer, Backup Integrity Checker, WAF, Privilege Escalation Finder, Network Baseline Monitor, Docker Security Audit
### Advanced (18 Projects)
API Security Scanner, Encrypted Chat, Exploit Framework, AI Threat Detection, Bug Bounty Platform, Cloud Security Posture Management, Malware Analysis Platform, Quantum Resistant Encryption, Zero Day Scanner, Distributed Password Cracker, Kernel Rootkit Detection, Smart Contract Auditor, Adversarial ML, APT Simulator, HSM Emulator, Network Covert Channel, Automated Pentesting, Supply Chain Analyzer
## About This Project
This repository serves as both a learning resource and portfolio showcase. Each project includes:
- Full source code with modern best practices
- Production-ready architecture (Docker, CI/CD)
- Security-focused implementation details
- Educational documentation
**Goal:** Build all 60 projects with complete documentation to help others learn practical cybersecurity skills.
API Rate Limiter, Encrypted Chat, Exploit Framework, AI Threat Detection, Bug Bounty Platform, Cloud Security Posture Management, Malware Analysis Platform, Quantum Resistant Encryption, Zero Day Scanner, Distributed Password Cracker, Kernel Rootkit Detection, Smart Contract Auditor, Adversarial ML, APT Simulator, HSM Emulator, Network Covert Channel, Automated Pentesting, Supply Chain Analyzer

@ -93,19 +93,19 @@ This tool is for **educational and authorized security testing only**. Only use
## Quick Start
```bash
cd PROJECTS/keylogger
cd PROJECTS/beginner/keylogger
# Install dependencies
pip install -e .
uv sync
# Run keylogger
python keylogger.py
uv run python src/keylogger.py
# With webhook
python keylogger.py --webhook https://your-endpoint.com/logs
uv run python src/keylogger.py --webhook https://your-endpoint.com/logs
# Custom log file
python keylogger.py --log-file /path/to/keylog.txt
uv run python src/keylogger.py --log-file /path/to/keylog.txt
```
## Configuration
@ -240,4 +240,4 @@ class KeyEvent:
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/keylogger)
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/beginner/keylogger)

138
Metadata-Scrubber-Tool.md Normal file

@ -0,0 +1,138 @@
# Metadata Scrubber Tool
Privacy-focused CLI tool for stripping metadata from images, PDFs, and Office documents.
## Overview
A command-line tool that removes privacy-sensitive metadata from files — GPS coordinates, camera serial numbers, author identities, timestamps, and revision history. Supports JPEG, PNG, PDF, Word, Excel, and PowerPoint formats with batch processing and verification.
**Status:** Complete | **Difficulty:** Beginner
## Legal Disclaimer
This tool is for **privacy protection and authorized security testing only**. Metadata scrubbing is a legitimate privacy practice used by journalists, whistleblowers, and security researchers.
## Tech Stack
| Technology | Version | Purpose |
|------------|---------|---------|
| Python | 3.10+ | Modern type hints, pattern matching |
| Typer | - | CLI framework |
| Rich | - | Terminal UI, progress bars, tables |
| Pillow | - | Image EXIF handling |
| openpyxl | - | Excel metadata |
| python-pptx | - | PowerPoint metadata |
| python-docx | - | Word document metadata |
| PyPDF2 | - | PDF metadata |
## Features
### Core Functionality
- Read metadata from any supported file
- Scrub (remove) metadata while preserving file functionality
- Verify before/after metadata states with colored comparison
- Batch processing with ThreadPoolExecutor for concurrent operations
- Recursive directory processing with extension filtering
### Supported Formats
| Format | Metadata Removed |
|--------|-----------------|
| JPEG | EXIF (GPS, camera model, timestamps, serial numbers) |
| PNG | tEXt chunks, EXIF data |
| PDF | Info dictionary (author, creator, timestamps) |
| Word (.docx) | Document properties (author, company, revision) |
| Excel (.xlsx) | Workbook properties |
| PowerPoint (.pptx) | Presentation properties |
### Security Relevance
- **John McAfee (2013):** Located via EXIF GPS data in a journalist's photo
- **Anonymous (2012):** Members doxxed through PDF author metadata
- File metadata can leak identity, location, organization, and edit history
## Architecture
```
User Command (read / scrub / verify)
main.py (Typer CLI)
┌───────────────────────────────────────────────┐
│ MetadataFactory │
│ Routes files to handlers by extension │
└───────────────────┬───────────────────────────┘
┌──────────┬────────────┬───────────┬───────────┐
│ Image │ PDF │ Word │ Excel/ │
│ Handler │ Handler │ Handler │ PPT │
│ JPEG/PNG│ PyPDF2 │ docx │ Handlers │
└──────────┴────────────┴───────────┴───────────┘
BatchProcessor (ThreadPoolExecutor)
ReportGenerator (verification)
```
## Quick Start
```bash
cd PROJECTS/beginner/metadata-scrubber-tool
# Install dependencies
uv sync
# Read metadata from a file
uv run mst read photo.jpg
# Scrub metadata from a single file
uv run mst scrub photo.jpg --output ./cleaned
# Process an entire directory recursively
uv run mst scrub ./photos -r -ext jpg --output ./scrubbed
# Verify metadata was removed
uv run mst verify photo.jpg ./cleaned/processed_photo.jpg
```
## Project Structure
```
metadata-scrubber-tool/
├── src/
│ ├── commands/ # CLI command implementations
│ │ ├── read.py # Display metadata
│ │ ├── scrub.py # Remove metadata
│ │ └── verify.py # Compare before/after
│ ├── core/ # Format-specific processors
│ │ ├── jpeg_metadata.py # EXIF handling for JPEG
│ │ └── png_metadata.py # Textual chunk + EXIF for PNG
│ ├── services/ # Business logic
│ │ ├── metadata_handler.py # Abstract base class
│ │ ├── image_handler.py # Images
│ │ ├── pdf_handler.py # PDFs
│ │ ├── excel_handler.py # Excel
│ │ ├── powerpoint_handler.py # PowerPoint
│ │ ├── worddoc_handler.py # Word
│ │ ├── metadata_factory.py # File routing
│ │ ├── batch_processor.py # Concurrent processing
│ │ └── report_generator.py # Verification reports
│ ├── utils/
│ └── main.py
└── tests/
```
## Development
```bash
# Run tests
uv run pytest tests/ -v
# Linting
uv run ruff check .
# Format
uv run ruff format .
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/beginner/metadata-scrubber-tool)

131
Network-Traffic-Analyzer.md Normal file

@ -0,0 +1,131 @@
# Network Traffic Analyzer
Real-time packet capture and analysis tool with protocol identification, bandwidth tracking, and visualization.
## Overview
A Python-based packet capture and analysis tool that sniffs network traffic in real time, identifies protocols, tracks bandwidth usage, and generates visual reports. Uses a producer-consumer threading pattern for wire-speed capture without dropping packets.
**Status:** Complete | **Difficulty:** Beginner
## Legal Disclaimer
This tool is for **authorized network analysis only**. Only capture traffic on networks you own or have explicit permission to monitor. Unauthorized packet capture is illegal.
## Tech Stack
| Technology | Version | Purpose |
|------------|---------|---------|
| Python | 3.14+ | Modern syntax |
| Scapy | - | Packet capture and dissection |
| Rich | - | Real-time terminal dashboards |
| Matplotlib | - | Protocol charts, bandwidth timelines |
| Typer | - | CLI framework |
### Platform Requirements
- Root/admin access required for packet capture
- Linux: root or CAP_NET_RAW capability
- macOS: root or /dev/bpf access
- Windows: Administrator + Npcap installed
## Features
### Core Functionality
- Real-time packet capture with BPF kernel-level filtering
- Protocol identification across Layers 2-7
- Active interface discovery
- Top talker analysis by traffic volume
- Bandwidth sampling at configurable intervals
### Analysis & Reporting
- Protocol distribution pie charts
- Bandwidth timeline graphs
- Top talker bar charts
- JSON/CSV data export
- PCAP file analysis
### Security Relevance
- Network baseline establishment for anomaly detection
- Data exfiltration detection
- DDoS traffic identification
- Incident response packet analysis
## Architecture
```
┌─────────────────────────────────────────────┐
│ Producer Thread (capture.py) │
│ Scapy sniff() → BPF filter → Queue │
└──────────────────────┬──────────────────────┘
│ Thread-safe Queue
┌──────────────────────▼──────────────────────┐
│ Consumer Thread (analyzer.py) │
│ Protocol ID → Statistics → Export │
└──────────────────────┬──────────────────────┘
┌─────────────┼─────────────┐
▼ ▼ ▼
┌─────────────┐ ┌───────────┐ ┌───────────┐
│ statistics │ │ output │ │ visualize │
│ Thread-safe │ │ Rich │ │ Matplotlib│
│ collector │ │ console │ │ charts │
└─────────────┘ └───────────┘ └───────────┘
```
## Quick Start
```bash
cd PROJECTS/beginner/network-traffic-analyzer
# Install dependencies
uv sync
# List available interfaces
sudo uv run netanal interfaces
# Capture 50 packets on loopback
sudo uv run netanal capture -i lo -c 50 --verbose
# Analyze an existing pcap file
uv run netanal analyze traffic.pcap --top-talkers 20
# Generate charts
uv run netanal chart traffic.pcap --type all -d ./charts/
```
## Project Structure
```
network-traffic-analyzer/
├── src/netanal/
│ ├── capture.py # Producer-consumer packet capture engine
│ ├── analyzer.py # Protocol identification and parsing
│ ├── filters.py # BPF filter builder with validation
│ ├── statistics.py # Thread-safe stats collector
│ ├── models.py # Data structures (PacketInfo, Protocol enum)
│ ├── visualization.py # Matplotlib chart generation
│ ├── export.py # JSON/CSV export
│ ├── output.py # Rich console formatting
│ ├── main.py # Typer CLI commands
│ ├── constants.py # Configuration values
│ └── exceptions.py # Custom exception hierarchy
├── tests/
└── pyproject.toml
```
## Development
```bash
# Run tests
uv run pytest tests/ -v
# Linting
uv run ruff check .
# Format
uv run ruff format .
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/beginner/network-traffic-analyzer)

@ -4,9 +4,14 @@ Suggested build order organized by skill progression. Each phase builds on previ
## Current Status
- **Completed:** 3/60
- **Completed:** 14/60
- **In Progress:** Aenebris (Haskell Reverse Proxy)
- **Next Up:** DNS Lookup Tool
```
[##############------------------------------------] 14/60 (23%)
```
**Legend:** **Bold** = Complete | Regular = Not started
---
@ -15,11 +20,12 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 4 | **DNS Lookup Tool** | Beginner | dnspython, DNS records, CLI | Low |
| 5 | Simple Port Scanner | Beginner | Sockets, threading, networking | Low |
| 6 | Caesar Cipher | Beginner | Cryptography basics, CLI | Low |
| 7 | Base64 Encoder/Decoder | Beginner | Encoding schemes, data formats | Low |
| 8 | Hash Cracker | Beginner | Hashing, wordlists, hashlib | Low |
| 1 | **[Simple Port Scanner](Simple-Port-Scanner)** | Beginner | Sockets, async I/O, service detection | Low |
| 2 | **[Keylogger](Keylogger)** | Beginner | Event handling, file I/O, pynput | Low |
| 3 | **[Caesar Cipher](Caesar-Cipher)** | Beginner | Cryptography basics, brute force, CLI | Low |
| 4 | **[DNS Lookup Tool](DNS-Lookup)** | Beginner | dnspython, DNS records, WHOIS | Low |
| 5 | **[Base64 Encoder/Decoder](Base64-Tool)** | Beginner | Encoding schemes, data formats | Low |
| 6 | Hash Cracker | Beginner | Hashing, wordlists, hashlib | Low |
---
@ -28,10 +34,10 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 9 | Metadata Scrubber | Beginner | EXIF, file parsing, PIL/PyPDF | Low |
| 10 | Steganography Tool | Beginner | LSB encoding, image manipulation | Low |
| 11 | File Integrity Monitor | Beginner | Checksums, watchdog, file I/O | Low-Med |
| 12 | Firewall Log Parser | Beginner | Log parsing, regex, visualization | Low-Med |
| 7 | **[Metadata Scrubber](Metadata-Scrubber-Tool)** | Beginner | EXIF, file parsing, PIL/PyPDF | Low |
| 8 | Steganography Tool | Beginner | LSB encoding, image manipulation | Low |
| 9 | File Integrity Monitor | Beginner | Checksums, watchdog, file I/O | Low-Med |
| 10 | Firewall Log Parser | Beginner | Log parsing, regex, visualization | Low-Med |
---
@ -40,10 +46,10 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 13 | Network Traffic Analyzer | Beginner | Scapy, packet capture, protocols | Medium |
| 14 | ARP Spoofing Detector | Beginner | ARP protocol, network monitoring | Medium |
| 15 | WiFi Network Scanner | Beginner | Wireless protocols, scapy | Medium |
| 16 | MAC Address Spoofer | Beginner | Network interfaces, OS commands | Low |
| 11 | **[Network Traffic Analyzer](Network-Traffic-Analyzer)** | Beginner | Scapy, packet capture, protocols | Medium |
| 12 | ARP Spoofing Detector | Beginner | ARP protocol, network monitoring | Medium |
| 13 | WiFi Network Scanner | Beginner | Wireless protocols, scapy | Medium |
| 14 | MAC Address Spoofer | Beginner | Network interfaces, OS commands | Low |
---
@ -52,10 +58,10 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 17 | SSH Brute Force Detector | Beginner | Log analysis, iptables, alerting | Medium |
| 18 | Phishing URL Detector | Beginner | URL parsing, Safe Browsing API | Low-Med |
| 19 | Security News Scraper | Beginner | Web scraping, BeautifulSoup, CVE | Low |
| 20 | Simple Vulnerability Scanner | Beginner | pip-audit, CVE databases | Medium |
| 15 | SSH Brute Force Detector | Beginner | Log analysis, iptables, alerting | Medium |
| 16 | Phishing URL Detector | Beginner | URL parsing, Safe Browsing API | Low-Med |
| 17 | Security News Scraper | Beginner | Web scraping, BeautifulSoup, CVE | Low |
| 18 | **[Simple Vulnerability Scanner](Simple-Vulnerability-Scanner)** | Beginner | CVE databases, dependency scanning | Medium |
---
@ -64,8 +70,8 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 21 | Windows Registry Monitor | Beginner | winreg, Windows API | Medium |
| 22 | Ransomware Simulator | Beginner | Encryption, file handling | Medium |
| 19 | Windows Registry Monitor | Beginner | winreg, Windows API | Medium |
| 20 | Ransomware Simulator | Beginner | Encryption, file handling | Medium |
---
@ -74,11 +80,11 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 23 | Reverse Shell Handler | Intermediate | Sockets, sessions, cmd2 | Medium |
| 24 | DDoS Mitigation Tool | Intermediate | Traffic analysis, iptables, anomaly detection | Medium-High |
| 25 | Wireless Deauth Detector | Intermediate | 802.11, deauth frames, alerting | Medium |
| 26 | Network Intrusion Prevention | Intermediate | Snort rules, packet inspection | High |
| 27 | Network Baseline Monitor | Intermediate | Statistics, anomaly detection | Medium |
| 21 | Reverse Shell Handler | Intermediate | Sockets, sessions, cmd2 | Medium |
| 22 | DDoS Mitigation Tool | Intermediate | Traffic analysis, iptables, anomaly detection | Medium-High |
| 23 | Wireless Deauth Detector | Intermediate | 802.11, deauth frames, alerting | Medium |
| 24 | Network Intrusion Prevention | Intermediate | Snort rules, packet inspection | High |
| 25 | Network Baseline Monitor | Intermediate | Statistics, anomaly detection | Medium |
---
@ -87,11 +93,11 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 28 | Web Vulnerability Scanner | Intermediate | httpx, XSS, SQLi, CSRF | High |
| 29 | OAuth Token Analyzer | Intermediate | JWT, PyJWT, token security | Medium |
| 30 | API Rate Limiter | Intermediate | Redis, token bucket, middleware | Medium |
| 31 | SSL/TLS Certificate Scanner | Intermediate | SSL/TLS, cipher suites, HSTS | Medium |
| 32 | Web Application Firewall | Intermediate | Reverse proxy, pattern matching | High |
| 26 | Web Vulnerability Scanner | Intermediate | httpx, XSS, SQLi, CSRF | High |
| 27 | OAuth Token Analyzer | Intermediate | JWT, PyJWT, token security | Medium |
| 28 | **[API Security Scanner](API-Security-Scanner)** | Intermediate | OWASP API Top 10, fuzzing, GraphQL | High |
| 29 | SSL/TLS Certificate Scanner | Intermediate | SSL/TLS, cipher suites, HSTS | Medium |
| 30 | Web Application Firewall | Intermediate | Reverse proxy, pattern matching | High |
---
@ -100,10 +106,10 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 33 | SIEM Dashboard | Intermediate | FastAPI, React, syslog, correlation | High |
| 34 | Threat Intelligence Aggregator | Intermediate | APIs, IOCs, WHOIS, enrichment | High |
| 35 | Password Policy Auditor | Intermediate | AD/LDAP, policy analysis | Medium |
| 36 | OSINT Reconnaissance Framework | Intermediate | Multiple data sources, automation | High |
| 31 | **[SIEM Dashboard](SIEM-Dashboard)** | Intermediate | Flask, React, syslog, correlation | High |
| 32 | Threat Intelligence Aggregator | Intermediate | APIs, IOCs, WHOIS, enrichment | High |
| 33 | Password Policy Auditor | Intermediate | AD/LDAP, policy analysis | Medium |
| 34 | OSINT Reconnaissance Framework | Intermediate | Multiple data sources, automation | High |
---
@ -112,10 +118,10 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 37 | Container Security Scanner | Intermediate | Docker API, Dockerfile analysis | Medium-High |
| 38 | Docker Security Audit | Intermediate | CIS benchmarks, container inspection | Medium |
| 39 | Cloud Asset Inventory | Intermediate | boto3, Azure SDK, GCP SDK | High |
| 40 | Backup Integrity Checker | Intermediate | Checksums, restoration testing | Medium |
| 35 | Container Security Scanner | Intermediate | Docker API, Dockerfile analysis | Medium-High |
| 36 | **[Docker Security Audit](Docker-Security-Audit)** | Intermediate | CIS benchmarks, container inspection | Medium |
| 37 | Cloud Asset Inventory | Intermediate | boto3, Azure SDK, GCP SDK | High |
| 38 | Backup Integrity Checker | Intermediate | Checksums, restoration testing | Medium |
---
@ -124,8 +130,8 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 41 | Active Directory Enumeration | Intermediate | LDAP, AD structure, permissions | High |
| 42 | Privilege Escalation Finder | Intermediate | SUID, permissions, kernel exploits | High |
| 39 | Active Directory Enumeration | Intermediate | LDAP, AD structure, permissions | High |
| 40 | Privilege Escalation Finder | Intermediate | SUID, permissions, kernel exploits | High |
---
@ -134,8 +140,8 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 43 | Binary Analysis Tool | Intermediate | PE/ELF parsing, disassembly | High |
| 44 | Mobile App Security Analyzer | Intermediate | APK/IPA decompilation, OWASP Mobile | High |
| 41 | Binary Analysis Tool | Intermediate | PE/ELF parsing, disassembly | High |
| 42 | Mobile App Security Analyzer | Intermediate | APK/IPA decompilation, OWASP Mobile | High |
---
@ -144,9 +150,10 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 45 | Bug Bounty Platform | Advanced | Full-stack, CVSS, workflows | Very High |
| 46 | Cloud Security Posture Management | Advanced | Multi-cloud, CIS benchmarks | Very High |
| 47 | Malware Analysis Platform | Advanced | Sandboxing, YARA, behavior tracking | Very High |
| 43 | **[API Rate Limiter](API-Rate-Limiter)** | Advanced | Token bucket, Redis, distributed systems | Very High |
| 44 | **[Bug Bounty Platform](Bug-Bounty-Platform)** | Advanced | Full-stack, CVSS, workflows | Very High |
| 45 | Cloud Security Posture Management | Advanced | Multi-cloud, CIS benchmarks | Very High |
| 46 | Malware Analysis Platform | Advanced | Sandboxing, YARA, behavior tracking | Very High |
---
@ -155,8 +162,8 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 48 | AI Threat Detection | Advanced | ML, CICIDS2017, FastAPI inference | Very High |
| 49 | Adversarial ML Attacker | Advanced | FGSM, DeepFool, model robustness | Very High |
| 47 | AI Threat Detection | Advanced | ML, CICIDS2017, FastAPI inference | Very High |
| 48 | Adversarial ML Attacker | Advanced | FGSM, DeepFool, model robustness | Very High |
---
@ -165,11 +172,11 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 50 | Exploit Development Framework | Advanced | Metasploit-like, shellcode, payloads | Very High |
| 51 | Advanced Persistent Threat Simulator | Advanced | C2, lateral movement, persistence | Very High |
| 52 | Automated Penetration Testing | Advanced | Orchestration, full pentest workflow | Very High |
| 53 | Zero Day Vulnerability Scanner | Advanced | Fuzzing, AFL, crash triage | Very High |
| 54 | Distributed Password Cracker | Advanced | GPU, distributed computing | Very High |
| 49 | Exploit Development Framework | Advanced | Metasploit-like, shellcode, payloads | Very High |
| 50 | Advanced Persistent Threat Simulator | Advanced | C2, lateral movement, persistence | Very High |
| 51 | Automated Penetration Testing | Advanced | Orchestration, full pentest workflow | Very High |
| 52 | Zero Day Vulnerability Scanner | Advanced | Fuzzing, AFL, crash triage | Very High |
| 53 | Distributed Password Cracker | Advanced | GPU, distributed computing | Very High |
---
@ -178,6 +185,7 @@ Suggested build order organized by skill progression. Each phase builds on previ
| # | Project | Difficulty | Key Skills | Est. Complexity |
|---|---------|------------|------------|-----------------|
| 54 | **[Encrypted P2P Chat](Encrypted-P2P-Chat)** | Advanced | Signal Protocol, Double Ratchet, WebAuthn | Very High |
| 55 | Quantum Resistant Encryption | Advanced | Kyber, Dilithium, liboqs | Very High |
| 56 | Blockchain Smart Contract Auditor | Advanced | Solidity, Mythril, Slither | Very High |
| 57 | Network Covert Channel | Advanced | DNS/ICMP tunneling, steganography | High |
@ -195,12 +203,21 @@ Suggested build order organized by skill progression. Each phase builds on previ
---
## Progress Tracking
## Completed Projects Summary
```
[###-----------------------------------------------] 3/60 (5%)
Completed: API Security Scanner, Encrypted P2P Chat, Keylogger
In Progress: Aenebris (Haskell Reverse Proxy)
Next: DNS Lookup Tool
```
| # | Project | Difficulty | Tech Stack |
|---|---------|------------|------------|
| 1 | [Simple Port Scanner](Simple-Port-Scanner) | Beginner | C++ |
| 2 | [Keylogger](Keylogger) | Beginner | Python |
| 3 | [Caesar Cipher](Caesar-Cipher) | Beginner | Python |
| 4 | [DNS Lookup Tool](DNS-Lookup) | Beginner | Python |
| 5 | [Base64 Encoder/Decoder](Base64-Tool) | Beginner | Python |
| 7 | [Metadata Scrubber](Metadata-Scrubber-Tool) | Beginner | Python |
| 11 | [Network Traffic Analyzer](Network-Traffic-Analyzer) | Beginner | Python |
| 18 | [Vulnerability Scanner](Simple-Vulnerability-Scanner) | Beginner | Go |
| 28 | [API Security Scanner](API-Security-Scanner) | Intermediate | FastAPI, React |
| 31 | [SIEM Dashboard](SIEM-Dashboard) | Intermediate | Flask, React |
| 36 | [Docker Security Audit](Docker-Security-Audit) | Intermediate | Go |
| 43 | [API Rate Limiter](API-Rate-Limiter) | Advanced | Python, Redis |
| 44 | [Bug Bounty Platform](Bug-Bounty-Platform) | Advanced | FastAPI, React |
| 54 | [Encrypted P2P Chat](Encrypted-P2P-Chat) | Advanced | FastAPI, SolidJS |

174
SIEM-Dashboard.md Normal file

@ -0,0 +1,174 @@
# SIEM Dashboard
Full-stack Security Information and Event Management platform with real-time log correlation, alerting, and attack playbooks.
## Overview
A SIEM platform that ingests log events from multiple sources, normalizes them into a common schema, classifies severity using pattern matching, and runs a real-time correlation engine to generate alerts. Includes a React dashboard for monitoring, investigation, and attack scenario playback using MITRE ATT&CK techniques.
**Status:** Complete | **Difficulty:** Intermediate
## Tech Stack
### Backend
| Technology | Version | Purpose |
|------------|---------|---------|
| Flask | - | Web framework (app factory pattern) |
| MongoDB | - | Log and alert persistence |
| Redis Streams | - | Real-time event delivery |
| MongoEngine | - | MongoDB ODM |
| Pydantic | - | Request/response validation |
| JWT + Argon2id | - | Authentication |
### Frontend
| Technology | Version | Purpose |
|------------|---------|---------|
| React | - | UI framework |
| TypeScript | - | Type safety |
| Zustand | - | Client state management |
| TanStack Query | v5 | Server state management |
| visx | - | Chart visualization |
| SSE | - | Real-time streaming |
### Infrastructure
- Docker Compose (dev + prod configs)
- Nginx reverse proxy (SSE-aware)
- Gunicorn WSGI server
## Features
### Log Processing
- Multi-source ingestion (firewall, IDS, auth, endpoint, DNS, proxy)
- Common schema normalization
- Regex-based severity classification
- Event pivot API for investigation workflows
### Correlation Engine
- Sliding window rule evaluation
- Threshold counting (e.g., 20 failed logins in 5 minutes)
- Ordered sequence detection (brute force → successful login)
- Distinct-value aggregation
- Rule testing against historical data
### Alert Management
- Full lifecycle: detection → acknowledgment → investigation → resolution
- False positive classification
- Severity-based prioritization
### Attack Playbooks
- YAML-based scenario definitions
- MITRE ATT&CK technique mapping
- Brute force (T1110.001), DNS tunneling (T1048.003), and more
- Threaded scenario execution
### Real-Time Dashboard
- Server-Sent Events for live updates
- Protocol distribution charts
- Severity breakdown timelines
- Top source analysis
- MongoDB aggregation pipelines
## Architecture
```
┌─────────────────────────────────────────────────────────┐
│ Frontend (React + TS) │
│ Zustand stores | TanStack Query | SSE streaming │
└───────────────────────────┬─────────────────────────────┘
┌───────────────────────────▼─────────────────────────────┐
│ Nginx (SSE-aware proxy) │
└───────────────────────────┬─────────────────────────────┘
┌───────────────────────────▼─────────────────────────────┐
│ Backend (Flask) │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Engine │ │
│ │ normalizer.py | severity.py | correlation.py │ │
│ └──────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Scenarios │ │
│ │ playbook.py (YAML parser) | runner.py (thread) │ │
│ └──────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Routes / Controllers / Schemas │ │
│ │ ~30 endpoints under /v1/ │ │
│ └──────────────────────────────────────────────────┘ │
└────────┬──────────────────┬─────────────────────────────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ MongoDB │ │ Redis │
│ Logs/Alerts│ │ Streams │
│ Rules/Users│ │ + Consumer │
└─────────────┘ │ Groups │
└─────────────┘
```
## Quick Start
```bash
cd PROJECTS/intermediate/siem-dashboard
# Start development environment
docker compose -f dev.compose.yml up --build
# Access at http://localhost:8431
# API at http://localhost:8431/api/v1/
# Create admin account
docker exec -it siem-backend-dev flask admin create \
--username admin --email admin@example.com
# Ingest a test event
curl -X POST http://localhost:8431/api/v1/logs/ingest \
-H "Content-Type: application/json" \
-d '{"source_type":"auth","event_type":"login_failure","source_ip":"10.0.0.1","username":"root"}'
```
## Project Structure
```
siem-dashboard/
├── backend/
│ ├── app/
│ │ ├── __init__.py # Flask app factory
│ │ ├── config.py # Pydantic settings (60+ values)
│ │ ├── core/ # Auth, streaming, errors, decorators
│ │ ├── engine/ # Normalizer, severity, correlation
│ │ ├── models/ # MongoEngine documents
│ │ ├── routes/ # Flask blueprints
│ │ ├── controllers/ # Business logic
│ │ ├── schemas/ # Pydantic validation
│ │ └── scenarios/ # Attack playbooks (YAML)
│ └── pyproject.toml
├── frontend/
│ ├── src/
│ │ ├── api/ # TanStack Query hooks + Zod types
│ │ ├── core/ # Shell, routing, stores, charts
│ │ └── routes/ # Page components (lazy loaded)
│ └── package.json
├── conf/ # Docker + Nginx configs
├── compose.yml # Production
└── dev.compose.yml # Development
```
## Development
```bash
# Backend
make backend-lint
make backend-test
# Frontend
make frontend-lint
make frontend-build
# Both
make lint
make test
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/intermediate/siem-dashboard)

120
Simple-Port-Scanner.md Normal file

@ -0,0 +1,120 @@
# Simple Port Scanner
Concurrent TCP port scanner written in C++ with async I/O and banner grabbing.
## Overview
A high-performance TCP port scanner using Boost.Asio for asynchronous I/O. Probes target hosts to identify open, closed, and filtered ports with concurrent scanning of hundreds of ports simultaneously. Includes service banner grabbing for fingerprinting.
**Status:** Complete | **Difficulty:** Beginner
## Legal Disclaimer
This tool is for **authorized security testing only**. Only scan systems you own or have explicit written permission to test. Unauthorized port scanning may be illegal.
## Tech Stack
| Technology | Version | Purpose |
|------------|---------|---------|
| C++ | C++20 | Core language |
| Boost.Asio | - | Async network I/O |
| Boost.Program_options | - | CLI argument parsing |
| CMake | 3.31+ | Build system |
## Features
### Core Functionality
- Concurrent TCP connect scanning
- Configurable thread count (default 100)
- Port range and list support (e.g., `1-1024` or `80,443,8080`)
- Three port state detection: OPEN, CLOSED, FILTERED
- Service banner grabbing for fingerprinting
- Configurable connection timeout
### Port State Detection
| State | Meaning | TCP Response |
|-------|---------|-------------|
| OPEN | Service listening | SYN-ACK received |
| CLOSED | Nothing listening, host responded | RST received |
| FILTERED | Firewall dropped packets silently | Timeout (no response) |
### Security Relevance
- First step in penetration testing reconnaissance
- Attack surface mapping for security audits
- Detecting unauthorized services and backdoors
- Understanding TCP handshake mechanics
## Architecture
```
main.cpp (CLI parsing with boost::program_options)
┌─────────────────────────────────────────────┐
│ PortScanner Class │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ Boost.Asio io_context │ │
│ │ Thread pool (configurable count) │ │
│ └──────────────────┬──────────────────┘ │
│ │ │
│ ┌──────────────────▼──────────────────┐ │
│ │ Async TCP Connect per port │ │
│ │ - Connect attempt with timeout │ │
│ │ - State detection (open/closed/ │ │
│ │ filtered) │ │
│ │ - Banner grab on success │ │
│ └──────────────────┬──────────────────┘ │
│ │ │
│ ┌──────────────────▼──────────────────┐ │
│ │ Results Collection │ │
│ │ Port | State | Service | Banner │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
```
## Quick Start
```bash
cd PROJECTS/beginner/simple-port-scanner
# Build
mkdir build && cd build
cmake ..
make
# Scan localhost ports 1-1024
./simplePortScanner -i 127.0.0.1 -p 1-1024
# Scan specific ports with custom settings
./simplePortScanner -i scanme.nmap.org -p 80,443,8080 -t 50 -e 3
```
### CLI Options
| Flag | Description | Default |
|------|-------------|---------|
| `-i` | Target IP address | Required |
| `-p` | Port range or list | Required |
| `-t` | Thread count | 100 |
| `-e` | Timeout (seconds) | 3 |
## Project Structure
```
simple-port-scanner/
├── src/
│ ├── PortScanner.hpp # Class definition and method signatures
│ └── PortScanner.cpp # Scanning logic, async operations, banner grabbing
├── main.cpp # Entry point, CLI argument parsing
└── CMakeLists.txt # Build configuration (Boost dependencies)
```
## Build Requirements
- CMake 3.31+
- C++20 compiler (GCC 10+, Clang 12+, or MSVC 2019+)
- Boost libraries (`apt install libboost-all-dev` or `brew install boost`)
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/beginner/simple-port-scanner)

@ -0,0 +1,130 @@
# Simple Vulnerability Scanner
Go-based Python dependency security scanner that checks for outdated packages and known CVEs.
## Overview
**angela** is a CLI tool that scans Python projects for outdated dependencies and known security vulnerabilities. It reads `pyproject.toml` or `requirements.txt`, checks PyPI for latest versions, queries OSV.dev for CVEs, and updates dependency files while preserving comments and formatting.
**Status:** Complete | **Difficulty:** Beginner
## Tech Stack
| Technology | Version | Purpose |
|------------|---------|---------|
| Go | 1.24+ | Core language |
| Cobra | - | CLI framework |
| pelletier/go-toml | - | TOML parsing |
| PyPI Simple API | PEP 691 | Package metadata |
| OSV.dev API | - | Vulnerability database |
## Features
### Core Functionality
- Scan `pyproject.toml` and `requirements.txt` for outdated dependencies
- Query OSV.dev for known CVEs with severity levels (CRITICAL, HIGH, MODERATE, LOW)
- Update dependency versions in-place, preserving comments and formatting
- Dry-run mode to preview changes before applying
- File-based caching with ETag support and TTL expiration
- Concurrent workers with bounded concurrency via errgroup
### Commands
| Command | Description |
|---------|-------------|
| `scan` | Check for outdated packages and vulnerabilities |
| `check` | Dry run — show what would change |
| `update` | Update dependency versions in-place |
| `update --vulns` | Update and scan for vulnerabilities |
| `cache clear` | Clear the local cache |
### Security Relevance
- Supply chain attacks (PyTorch torchtriton compromise, 2022)
- Dependency confusion and typosquatting
- CVE tracking across transitive dependencies
- PEP 440 version parsing for accurate resolution
## Architecture
```
cmd/angela/main.go (Entry point)
internal/cli/ (Cobra commands + output formatting)
┌──────────────┬──────────────┬──────────────┐
│ pypi/ │ osv/ │ pyproject/ │
│ PyPI Simple │ OSV.dev │ TOML parser │
│ API client │ batch CVE │ + writer │
│ + cache │ queries │ (preserves │
│ (ETag/TTL) │ │ comments) │
├──────────────┼──────────────┼──────────────┤
│ version.go │ client.go │ parser.go │
│ PEP 440 │ │ writer.go │
│ parser │ │ │
└──────────────┴──────────────┴──────────────┘
internal/ui/ (Terminal colors and spinners)
```
## Quick Start
```bash
cd PROJECTS/beginner/simple-vulnerability-scanner
# Install Go dependencies
go mod download
# Scan test data
go run ./cmd/angela scan --file testdata/pyproject.toml
# Check what would change (dry run)
go run ./cmd/angela check --file testdata/pyproject.toml
# Update dependencies
go run ./cmd/angela update --file testdata/pyproject.toml
# Update and scan for vulnerabilities
go run ./cmd/angela update --vulns --file testdata/pyproject.toml
```
## Project Structure
```
simple-vulnerability-scanner/
├── cmd/angela/
│ └── main.go # Entry point
├── internal/
│ ├── cli/ # Cobra commands and output
│ │ ├── update.go
│ │ └── output.go
│ ├── pypi/ # PyPI API client
│ │ ├── client.go # HTTP client with caching
│ │ ├── cache.go # File-based cache (ETag)
│ │ └── version.go # PEP 440 version parser
│ ├── osv/ # Vulnerability scanner
│ │ └── client.go # Batch CVE queries
│ ├── pyproject/ # TOML parser/writer
│ ├── requirements/ # requirements.txt parser
│ ├── config/ # Configuration loader
│ └── ui/ # Terminal colors/spinners
├── pkg/types/ # Shared type definitions
├── testdata/ # Sample files
├── Justfile
└── .golangci.yml
```
## Development
```bash
# Run tests
go test ./...
# Lint
golangci-lint run
# Build
go build -o angela ./cmd/angela
```
## Source Code
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/beginner/simple-vulnerability-scanner)

@ -2,6 +2,8 @@
Curated collection of cybersecurity tools, learning platforms, and resources.
> The repository now has a dedicated [RESOURCES/](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/RESOURCES) folder with expanded, regularly updated content split across multiple files: [TOOLS.md](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/RESOURCES/TOOLS.md), [COURSES.md](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/RESOURCES/COURSES.md), [CERTIFICATIONS.md](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/RESOURCES/CERTIFICATIONS.md), [COMMUNITIES.md](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/RESOURCES/COMMUNITIES.md), and [FRAMEWORKS.md](https://github.com/CarterPerez-dev/Cybersecurity-Projects/blob/main/RESOURCES/FRAMEWORKS.md). This wiki page provides a summary.
## Tools by Category
### Reconnaissance & Scanning
@ -164,7 +166,9 @@ Curated collection of cybersecurity tools, learning platforms, and resources.
---
## Reddit Communities
## Community
### Reddit
| Subreddit | Focus |
|-----------|-------|
@ -177,9 +181,7 @@ Curated collection of cybersecurity tools, learning platforms, and resources.
| [r/RedTeam](https://www.reddit.com/r/RedTeam/) | Offensive security |
| [r/malware](https://www.reddit.com/r/malware/) | Malware analysis |
---
## News & Blogs
### News & Blogs
| Source | Type |
|--------|------|
@ -205,4 +207,4 @@ Curated collection of cybersecurity tools, learning platforms, and resources.
---
See the main [README](https://github.com/CarterPerez-dev/Cybersecurity-Projects) for complete resource lists.
For the most comprehensive and up-to-date version, see the [RESOURCES/ folder](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/RESOURCES) in the repository.

@ -1 +1 @@
*©AngelaMos | [CertGames.com](https://certgames.com) | [CarterPerez-dev](https://github.com/CarterPerez-dev) | 2025*
*©AngelaMos | [CertGames.com](https://certgames.com) | [CarterPerez-dev](https://github.com/CarterPerez-dev) | 2026*

@ -2,14 +2,30 @@
**[Home](Home)**
### Projects
- [API Security Scanner](API-Security-Scanner)
- [Encrypted P2P Chat](Encrypted-P2P-Chat)
### Beginner Projects
- [Simple Port Scanner](Simple-Port-Scanner)
- [Keylogger](Keylogger)
- [Caesar Cipher](Caesar-Cipher)
- [DNS Lookup Tool](DNS-Lookup)
- [Vulnerability Scanner](Simple-Vulnerability-Scanner)
- [Metadata Scrubber](Metadata-Scrubber-Tool)
- [Network Traffic Analyzer](Network-Traffic-Analyzer)
- [Base64 Encoder/Decoder](Base64-Tool)
### Intermediate Projects
- [API Security Scanner](API-Security-Scanner)
- [SIEM Dashboard](SIEM-Dashboard)
- [Docker Security Audit](Docker-Security-Audit)
### Advanced Projects
- [API Rate Limiter](API-Rate-Limiter)
- [Encrypted P2P Chat](Encrypted-P2P-Chat)
- [Bug Bounty Platform](Bug-Bounty-Platform)
### Guides
- [Getting Started](Getting-Started)
- [Project Roadmap](Project-Roadmap)
- [Contributing](Contributing)
### Resources
- [Certification Roadmaps](Certification-Roadmaps)
@ -17,6 +33,6 @@
---
**Progress: 3/60**
**Progress: 14/60**
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects)
[View on GitHub](https://github.com/CarterPerez-dev/Cybersecurity-Projects)