Reconstructing Red Team Engagements โ€” Developing Your Own Red Agent

  • Post author:
  • Post category:Uncategorized

Source: Adversary Village talk page ยท GitHub: Red_Agent_Workshop

๐Ÿ“„ Download this note as Markdown

Overview

With recent advances in AI, LLMs are increasingly applied to red team engagements โ€” but mostly just to automate operations during the engagement itself. This talk introduces “Red Agent,” a system designed to enhance the entire lifecycle. After a red team engagement, blue team members implementing remediation need to evaluate their effectiveness โ€” a bottleneck requiring substantial manual effort to interpret findings, reproduce attack paths, and verify mitigations. Red Agent automates this follow-up process, and in doing so also optimized the engagement artifacts (logs, report structures) that feed it โ€” reconstructing the red team lifecycle so practitioners can focus on higher-value work.

Notes

Red Team Engagement

Red Agent does adversary emulation, targeting specifically the post-engagement validation process. It’s a multi-agent system with an orchestrator managing sub-agents that understand the report, plan re-test procedures, execute tasks, and interpret/summarize results โ€” making the validation process repeatable and scalable.

Architecture

Red Agent architecture diagram

  • Deep Agent โ€” agents for long-running tasks with memory, planning, and delegation tools
  • Custom Kali MCP Server โ€” lets the agent execute commands on Kali Linux; existing MCP servers were too limited for re-testing workflows
  • Human-in-the-Loop โ€” validates actions before the agent takes them; can approve, edit, or reject (rejecting skips the action)

Capabilities

Creates documents and artifacts that are LLM/agent-friendly, accumulating data and knowledge over time to extend the agent’s capabilities โ€” freeing the human to focus on more advanced, value-add work.

From the Repo

Three-tier architecture: a Vite + React frontend (port 5173) for reviewing findings with human approval gates, a FastAPI backend (port 8000) orchestrating the verification workflow and persisting to SQLite, and an execution layer running commands through the Kali MCP server over stdio. DC auto-discovery pulls AD domain controller info via DNS/SMB; Entra support integrates with roadrecon. Audit logging retains operations for 180 days by default. Quick setup: make install โ†’ set LLM_BASE_URL in .env โ†’ make dev โ†’ UI at localhost:5173.

A Bug I Found and Fixed

Setting up the repo locally ahead of the workshop (macOS, Python 3.11), I hit a missing greenlet dependency โ€” not pinned in requirements.txt. Without it, SQLAlchemy’s async engine throws on every DB operation, breaking the periodic audit-log prune job and retest history persistence. Fixed it locally, then forked the repo, pushed a fix branch, and opened a PR upstream adding greenlet==3.5.4 to requirements.txt.

Filed Under: #defcon34