Skip to content

feat: introduce dynamic lab topology and vulnerability mapping system#68

Merged
l50 merged 1 commit into
mainfrom
refactor/data-driven-validation
Apr 5, 2026
Merged

feat: introduce dynamic lab topology and vulnerability mapping system#68
l50 merged 1 commit into
mainfrom
refactor/data-driven-validation

Conversation

@l50
Copy link
Copy Markdown
Contributor

@l50 l50 commented Apr 4, 2026

Key Changes:

  • Replaced static, hardcoded lab topology with dynamic configuration via LabMap
  • Refactored health check, trust verification, and validator logic to use lab config
  • Added flexible vulnerability and host mapping for labs of any structure
  • Implemented comprehensive labmap parsing and test coverage for multiple lab types

Added:

  • Dynamic lab topology and mapping system (LabMap) to parse and represent lab
    structure, hosts, domains, trusts, vulnerabilities, and variant mappings
  • New utility functions in labmap to query DCs, servers, trusts, users, ACLs,
    and vulnerability facts for arbitrary lab topologies
  • Extensive unit tests for labmap covering multiple lab configurations and edge
    cases (labmap_test.go)
  • Dynamic discovery of hosts and roles in infra.go, removing static host list

Changed:

  • Health check, trust verification, and validation commands now use dynamic
    lab topology, supporting arbitrary lab configurations and variants
  • Health checks dynamically generated based on lab config (DCs, servers, trusts,
    DNS relationships, services)
  • Trust verification script generation and execution is now based on lab
    configuration, supporting any number of domains and trust types
  • Validator checks for vulnerabilities (e.g., AS-REP roasting, Kerberoasting,
    delegation, SMB, ACLs, MSSQL, ADCS) now dynamically enumerate hosts and users
    from lab config rather than using static logic
  • Host and instance discovery in infra.go and validate.go now derive
    expected hosts from lab config, supporting variants and custom labs
  • Improved output and logic for SKIP/INFO results in the validator

Removed:

  • All static, hardcoded lists of hostnames, domains, and vulnerability checks
    from CLI and validator logic
  • Obsolete eval functions and trust logic in favor of dynamic, config-driven
    evaluation
  • Static device and host mapping logic from infra and validation code

…ia labmap

**Added:**

- Implemented labmap package to parse arbitrary GOAD-style lab topologies,
  supporting dynamic host/domain/user mappings and variant overlays
- Added comprehensive tests in labmap_test.go covering multiple lab scenarios
  and vulnerability fact queries

**Changed:**

- Refactored health check, validation, and trust verification commands to use
  dynamic lab topology from labmap, removing hardcoded host/domain logic
- Health checks, validation checks, and trust verifications are now driven by
  lab configuration, supporting custom/variant labs
- Health check logic dynamically generates checks for DCs, servers, trusts,
  DNS, MSSQL, and IIS based on parsed lab state
- All validation checks in validate/checks.go now enumerate lab topology and
  vulnerabilities via labmap queries instead of static host/user lists
- Validator and infra context now require and propagate parsed lab config for
  all operations

**Removed:**

- Eliminated all hardcoded hostnames, domain names, and trust assumptions from
  health checks, validation, and trust verification logic
- Removed static lists of GOAD hosts and replaced with lab-driven topology
@l50 l50 merged commit a6a855e into main Apr 5, 2026
6 checks passed
@l50 l50 deleted the refactor/data-driven-validation branch April 5, 2026 04:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant