Practical documentation · Authorized use only
PoshC2
PoshC2 is a C2 framework whose responsible public treatment is limited to PowerShell telemetry, governance, and isolated detection-validation design. Do not publish deployment, payload, execution, persistence, credential, or AMSI/EDR-bypass instructions.
Start safely and get useful results
Best for
- • PowerShell detection-engineering labs
- • C2 governance education
Not for
- • Payload deployment
- • Evasion or lateral movement
Before you run anything
- • Document the authorized target, time window, success criteria, data-handling rules, and a named stop contact before you begin.
- • Confirm the installed version with the tool’s version or help command, then compare its documented behavior with the linked upstream project before relying on any option.
Practical workflows
Review current documentation and compatibility
Scenario: A SOC lab is evaluating historical C2 telemetry patterns.
PoshC2 --helpVerify whether the installed package exposes a current help interface; consult upstream documentation for supported deployment details.
Expected use: Do not proceed if the lab cannot be isolated and logged.
Validate defensive PowerShell logging
Scenario: A lab endpoint has Script Block Logging and endpoint telemetry enabled.
Use benign pre-approved PowerShell events and compare logging coverage against the detection plan.The objective is telemetry quality, not remote command capability.
Expected use: Record missing event IDs, retention gaps, and recommended control changes.
Interpret results like an analyst
- • C2-related detections should be calibrated with benign test events and change-controlled rules.
- • Treat stale framework instructions as untrusted until current upstream compatibility is confirmed.
Common mistakes and operating tips
Avoid
- • Operating legacy C2 tooling without checking project state and dependencies.
- • Disabling endpoint protections to make a lab demo work.
Operational discipline
- • Treat command output as evidence, not a conclusion: retain the command, version, scope, timestamp, and a redacted result in the engagement record.
- • Start with the smallest safe scope, validate expected behavior in a lab or pilot, then expand only when the authorization and monitoring plan support it.
Verify against the current upstream
Tool behavior and release syntax can change. Treat this guide as practical operating context, then verify version-specific details against the upstream project before an assessment.
Open authoritative upstream documentation