Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .github/workflows/pre-commit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ concurrency:
env:
GO_VERSION: "1.26.1"
PYTHON_VERSION: "3.14.3"
TASK_X_REMOTE_TASKFILES: "1"
TASK_VERSION: 3.49.1

jobs:
pre-commit:
Expand Down Expand Up @@ -82,11 +80,6 @@ jobs:
# Add Go bin directory to PATH
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"

- name: Setup go-task
run: |
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin v${{ env.TASK_VERSION }}
task --version

- name: Run pre-commit
run: |
pre-commit run --show-diff-on-failure --color=always --all-files
7 changes: 7 additions & 0 deletions .hooks/gen-arch-diagram.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,13 @@ def render_svg(mmd_path, svg_path):
finally:
config_path.unlink(missing_ok=True)
puppeteer_config_path.unlink(missing_ok=True)

# Ensure trailing newline so end-of-file-fixer has nothing to fix
svg = Path(svg_path)
content = svg.read_bytes()
if content and not content.endswith(b"\n"):
svg.write_bytes(content + b"\n")

return True


Expand Down
33 changes: 25 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# DreadGOAD

Ansible collection for deploying and configuring vulnerable Active Directory
lab environments for penetration testing and security research.

Based on [GOAD (Game of Active Directory)](https://github.com/Orange-Cyberdefense/GOAD)
by Orange Cyberdefense.
Heavily modified fork of [GOAD (Game of Active Directory)](https://github.com/Orange-Cyberdefense/GOAD)
by Orange Cyberdefense. Deploys vulnerable Active Directory lab environments
for penetration testing and security research, with a Go CLI (`dreadgoad`),
Ansible collection, Packer/Vagrant provisioning, and Docker support.

---

Expand Down Expand Up @@ -218,11 +217,29 @@ The GOAD lab provides:
- role: dreadnode.goad.domain_controller
```

For full orchestration, use the playbooks in the `ansible/playbooks/` directory with
the Taskfile:
For full orchestration, use the `dreadgoad` CLI:

```bash
task provision ENV=dev
# Build the CLI
cd cli && go build -o dreadgoad .

# Provision the lab
dreadgoad provision --env staging

# Health check all instances
dreadgoad health-check --env staging

# Verify domain trusts
dreadgoad verify-trusts --env staging

# Quick vulnerability validation
dreadgoad validate --quick --env staging

# Full vulnerability validation
dreadgoad validate --env staging

# See all commands
dreadgoad --help
```

---
Expand Down
Loading
Loading