Red Team Operations Checklist

The full-scope red team checklist turned into a how-to-run operator guide: pre-engagement and infra, recon, initial access, execution, persistence, privilege escalation, defense evasion, credential access, discovery, lateral movement, collection, C2, exfiltration and impact — plus the Active Directory attack chain, OPSEC and reporting — each with the scenario, the real tooling (C2, BloodHound, Rubeus, Impacket, Certipy), the steps, and the control that stops it.

LazyHackers.in — Checklist

🎯 Red Team Operations Checklist

Adversary emulation, phase by phase: scenario · tooling · steps · ATT&CK · the control

☰   How to use this guide

A red team is not a vuln-by-vuln pentest — it's an objective-driven attack chain that emulates a real adversary while staying OPSEC-clean and in scope. The deliverable is the attack narrative + detection gaps, not a pile of findings. This guide turns every checklist line into how-to-run, organised by the engagement lifecycle and MITRE ATT&CK, with the AD chain (where most internal RT lands) detailed at the end. For non-AD service-level testing, pair with the Network checklist.

Each section maps to ATT&CK tactics and ends with a coverage table: the TTP, how to run it, and the defensive control / detection. The closing 'Report as' lines here are framed as the control gap a finding represents.
Authorised scope only, with a signed RoE and authorisation letter in hand. OPSEC every phase: test tooling for detection in a lab first, deconflict before anything that could trigger IR, and never take destructive action outside the RoE.

0   Pre-engagement & setup

Get the paperwork and guardrails right before touching anything. This is what keeps the engagement legal, safe and useful.

⚑ Report as: “Pre-engagement: objectives, RoE, authorisation and deconfliction agreed”
🛡 Fix: Defenders should expect: a defined scope, a deconfliction channel, and a detection-tolerance agreement — these let the engagement test response without real harm.

Pre-engagement & setup — full coverage

Checklist itemHow to runOutcome
Objectives / crown jewels definedworkshop with clientEngagement objectives set
RoE signed (scope/exclusions/timing)RoE documentRules of engagement agreed
Engagement type fixedchoose external/internal/assumed-breachEngagement type set
Authorisation letter in handget-out-of-jail letterAuthorisation obtained
Deconfliction + emergency contactsagree channelDeconfliction process set
Detection-tolerance / destructive limitsagree limitsDetection tolerance agreed
Data handling / cleanup plandefine planData-handling plan set
Own-action logging for reportset up loggingActivity logging set up
TTP profile to emulate chosenpick threat actorAdversary profile selected

1   Reconnaissance

Passive OSINT first (employees, email format, breach data, exposed assets), then careful active recon (low-and-slow).

# Employee + email format + breach correlation
# (LinkedIn org, then derive {first}.{last}@target.tld); check breach datasets
# Exposed assets via cert transparency + Shodan
subfinder -d target.tld -silent | httpx -silent
shodan search "org:Target"
# Careful active perimeter scan (low-and-slow)
nmap -sS -T2 --top-ports 100 -iL external.txt
⚑ Report as: “Control gap: excessive public exposure (employees, assets, leaked creds) enables targeting”
🛡 Fix: Reduce OSINT footprint; monitor for leaked credentials; rate-limit/alert on external scanning; harden VPN/webmail/SSO gateways.

Reconnaissance — full coverage

Checklist itemHow to runOutcome / ATT&CK
Domain & subdomain enumsubfinder/amassAttack surface mapped (T1590)
Employee enumerationLinkedIn/OSINTPersonnel enumerated (T1589)
Email format + breach correlationderive + breach dataValid-account candidates
Credential leaks in dumps/pastebreach datasetsLeaked credentials found
Tech/cloud footprint fingerprintwhatweb/cloud enumTech stack mapped
Exposed assets via Shodan/CTshodan / crt.shExposed assets
Metadata harvesting from docsexiftool on public docsMetadata disclosure
Social/physical recon (if scoped)site surveyPhysical recon
External port/service scan (low-slow)nmap -T2Perimeter services mapped
VPN/webmail/SSO/RDP gateway discoveryprobe gatewaysAuth gateways identified
Public app surface mappingcrawl appsApp surface mapped
Wireless/physical perimeter (if scoped)site reconPerimeter recon

2   Resource development (infra)

Stand up attributable-free infra: redirectors fronting C2, aged/categorised domains, valid TLS, a tuned C2 profile, and phishing infra with aligned email auth.

⚑ Report as: “Control gap: phishing/C2 infra reaches users (weak mail auth, no egress/domain filtering)”
🛡 Fix: Enforce SPF/DKIM/DMARC; filter newly-registered/uncategorised domains; egress-filter and inspect C2-like traffic; alert on beaconing patterns.

Resource development (infra) — full coverage

Checklist itemHow to runOutcome / ATT&CK
Redirectors fronting C2HTTP/HTTPS/DNS redirectorsC2 infra (T1583)
Domain categorisation/agingage & categorise domainsPhishing/C2 domains
Valid TLS on infraLet’s EncryptTLS infra
C2 framework chosen & profiledmalleable/jitter/sleep tuningC2 profile set
Domain fronting/CDN (if legal)CDN frontingFronted channel
Phishing infra + SPF/DKIM/DMARCmail server + GoPhishPhishing infra
Payload dev & EDR-evasion (lab)lab detonation testsTested payloads
Infra not attributable / per-engagementisolated infraAttribution hygiene
Tooling staged on disposable VPSdisposable cloudStaging infra

3   Initial access

Break in: spear-phishing, password spray on exposed auth, edge-service exploitation, or valid leaked accounts.

# Low-and-slow password spray on exposed auth (OWA/VPN/SSO)
# one password, many users, paced under lockout windows
# (e.g. MailSniper/o365spray for M365; ensure RoE allows)
# Edge-service exploitation: target known VPN/Citrix/edge CVEs in scope
⚑ Report as: “Control gap: phishing-susceptible users / sprayable exposed auth / unpatched edge service”
🛡 Fix: MFA everywhere (phishing-resistant where possible); user awareness + reporting; lockout + spray detection; patch edge devices; restrict OAuth consent and device-code flows.

Initial access — full coverage

Checklist itemHow to runOutcome / ATT&CK
Spear-phishing (link/attachment/harvest)GoPhish + payloadPhishing access (T1566)
Malicious doc/macro/container (ISO/LNK/HTA)crafted containerMacro/container access
OAuth / device-code phishingconsent-grant phishIllicit consent (T1528)
Password spray on exposed authlow-and-slow sprayValid accounts (T1110.003)
Credential stuffing from breachreplay combosStuffed access
Exposed service exploitationedge CVEExploit access (T1190)
Valid accounts from leakuse leaked credsValid account (T1078)
MFA fatigue / push bombing (if scoped)push spamMFA fatigue
SIM-swap / vishing (if authorised)social engineeringVishing access
Drive-by / watering hole (scoped)malicious siteDrive-by
Physical: rogue device/USB/tailgatingphysical entryPhysical access
Supply-chain / third-party (if scoped)partner pathSupply-chain access

4   Execution

Get code running and a stable beacon, preferring LOLBins and in-memory/fileless execution.

⚑ Report as: “Control gap: unconstrained script/LOLBin execution (no AMSI/script-block logging or app control)”
🛡 Fix: Enable PowerShell script-block + module logging and AMSI; application control (WDAC/AppLocker); constrained language mode; alert on suspicious parent-child process chains.

Execution — full coverage

Checklist itemHow to runOutcome / ATT&CK
Payload execution (implant/beacon)deliver + runExecution (T1059)
LOLBins for executionliving-off-the-landLOLBin execution
Scripting w/ logging-evasionPowerShell/WMI/CScriptScripted execution
Scheduled task/service executionschtasks/scScheduled execution
In-memory / filelessreflective loadFileless execution
Verify C2 callback + stable sessionconfirm beaconStable C2

5   Persistence

Survive reboots and cleanup with multiple independent, blend-in mechanisms.

⚑ Report as: “Control gap: persistence mechanisms not monitored (run keys, tasks, services, WMI subs)”
🛡 Fix: Monitor autoruns, scheduled tasks, services and WMI event subscriptions; baseline and alert on new persistence; protect krbtgt and DSRM; review OAuth app registrations and refresh tokens in cloud.

Persistence — full coverage

Checklist itemHow to runOutcome / ATT&CK
Registry run keys / startupset run keyPersistence (T1547)
Scheduled tasks / cronschtasks/cronScheduled-task persistence
Service creation/modificationnew serviceService persistence
WMI event subscriptionWMI subWMI persistence (T1546.003)
DLL/COM hijackinghijack search orderHijack persistence
Golden/Silver ticket (AD)see §ADTicket persistence
Skeleton key / DSRM (AD)see §ADAD backdoor
Valid account / cloud token persistencecreate account/tokenAccount persistence
SSH keys / authorized_keys (Linux)add keySSH persistence
OAuth refresh token / app registrationregister appCloud persistence
Multiple independent mechanismslayer persistenceResilient persistence
Blends with legitimate artifactsmimic legitOPSEC persistence

6   Privilege escalation

Escalate locally on Windows and Linux. Triage with WinPEAS/LinPEAS, then exploit the specific misconfig.

# Windows triage + common wins
winPEASany.exe
#  unquoted service path, weak service perms, AlwaysInstallElevated, Potato (token impersonation)
# Linux triage + common wins
linpeas.sh
#  SUID/GTFOBins, sudo NOPASSWD, writable cron/PATH, capabilities
sudo -l ; find / -perm -4000 -type f 2>/dev/null
⚑ Report as: “Control gap: local privilege escalation via <service misconfig / SUID / sudo>”
🛡 Fix: Fix service path/permission misconfigs; remove AlwaysInstallElevated; patch; restrict SUID binaries and sudo NOPASSWD; least-privilege local accounts; EDR on token-manipulation behaviours.

Privilege escalation — full coverage

Checklist itemHow to runOutcome / ATT&CK
Win: unquoted service path / weak permswinPEASService-misconfig privesc
Win: AlwaysInstallElevatedcheck policyAlwaysInstallElevated
Win: token impersonation (Potato)Potato familyToken impersonation
Win: UAC bypassUAC bypass techniqueUAC bypass
Win: credential reuse / cachedharvest & reuseCredential reuse
Win: DLL hijack in priv processhijackDLL-hijack privesc
Win: WinPEAS findings triagedreview outputPrivesc candidates
Linux: SUID/SGID / GTFOBinsfind SUID + GTFOBinsSUID privesc
Linux: sudo NOPASSWD/misconfigsudo -lSudo misconfig
Linux: writable cron/PATHcheck cron/PATHCron/PATH abuse
Linux: capabilities abusegetcapCapabilities privesc
Linux: kernel exploit (last resort)targeted exploitKernel privesc
Linux: LinPEAS findings triagedreview outputPrivesc candidates

7   Defense evasion

OPSEC core: validate evasion in a lab, bypass AMSI/ETW, blend C2 traffic, and minimise footprint.

⚑ Report as: “Control gap: EDR/telemetry evadable (AMSI/ETW unhooking, injection undetected)”
🛡 Fix: Tamper-protect EDR; monitor for AMSI/ETW patching and unbacked memory execution; detect process injection and PPID spoofing; correlate beaconing despite jitter; protect and centralise logs against tampering.

Defense evasion — full coverage

Checklist itemHow to runOutcome / ATT&CK
AV/EDR evasion validated (lab)lab testEvasion validated (T1562)
AMSI bypassAMSI patchAMSI bypass
ETW patching / unhookingpatch ETWETW evasion
PPID spoofing / process injectioninjectProcess injection (T1055)
Indirect syscalls / unhooked NTDLLsyscall techniqueUnhooking
Log tampering minimised/loggedavoid or logLog-tamper control
Timestompingmodify timestampsTimestomp (T1070.006)
Sleep/jitter tunedC2 profileBeacon evasion
Traffic blends with normalmalleable profileTraffic blending
Minimal footprint (no mass scans)targeted actionsLow footprint
Clear command history (where apt)history hygieneHistory clearing
Disable telemetry only if RoE allowsauthorised onlyTelemetry handling

8   Credential access

Harvest credentials — LSASS, hives, DPAPI, AD roasting/DCSync, and creds lying in files/SYSVOL.

# OPSEC-safe LSASS handling, SAM/SYSTEM hives, DPAPI, SYSVOL GPP
# Impacket secretsdump (remote): SAM + LSA + (DCSync) NTDS
secretsdump.py 'DOMAIN/user:pass@host'
# GPP cpassword in SYSVOL (decryptable - known AES key)
findstr /S /I cpassword \\domain\sysvol\*.xml
⚑ Report as: “Control gap: credentials harvestable (LSASS / SYSVOL GPP / cached / vaults)”
🛡 Fix: Enable Credential Guard / LSASS protection; remove GPP passwords from SYSVOL; restrict local-admin reuse (LAPS); protect DPAPI and credential vaults; monitor LSASS access and DCSync (replication) from non-DCs.

Credential access — full coverage

Checklist itemHow to runOutcome / ATT&CK
LSASS dump (OPSEC-safe)protected dump methodCredential dump (T1003.001)
SAM/SECURITY/SYSTEM hivesreg save / secretsdumpHive extraction
DPAPI / browser / saved RDPDPAPI decryptDPAPI secrets
Kerberoasting (AD)see §ADKerberoast
AS-REP roasting (AD)see §ADAS-REP roast
DCSync (AD)see §ADDCSync (T1003.006)
Creds in files/scripts/SYSVOL (GPP)findstr cpasswordGPP password
Cleartext creds in memory/config/envgrep memory/configCleartext credentials
Cloud token/key from metadatametadata theftCloud credential theft
Keylogging / clipboard (if scoped)keyloggerInput capture
Vault / KeePass / Secrets Manager lootloot vaultsVault credential theft

9   Discovery (situational awareness)

Situational awareness: local host, domain, shares, ACLs/delegation, and high-value targets. BloodHound maps the path.

# BloodHound collection (OPSEC-aware), then find shortest path to DA
# SharpHound / bloodhound-python -> import to BloodHound -> "Shortest Path to Domain Admins"
bloodhound-python -d target.local -u user -p pass -c All -ns <dc-ip>
# Share hunting
nxc smb <range> -u user -p pass -M spider_plus
⚑ Report as: “Control gap: excessive AD attack paths (ACLs/delegation) reachable from low-priv user”
🛡 Fix: Reduce AD attack paths (tier model, prune dangerous ACLs/delegation); restrict broad SMB share access; monitor BloodHound-style enumeration and large LDAP queries.

Discovery — full coverage

Checklist itemHow to runOutcome / ATT&CK
Local host enumseatbelt/manualHost discovery (T1082)
Domain enum (users/groups/computers/GPO)PowerView/ldapsearchDomain discovery
BloodHound collectionSharpHoundAttack paths mapped
Network share enumerationnxc spiderShare discovery
ACL / delegation mappingBloodHoundACL/delegation map
High-value target identificationBloodHound markupHVT identified
Cloud / hybrid identity enumAADInternals/ROADtoolsHybrid identity discovery
Security tooling/SIEM/EDR footprintenum AV/EDRDefense footprint mapped
Segmentation/reachable subnetssubnet probeReachable subnets mapped

10   Lateral movement

Move to new hosts with stolen material — PtH/PtT, PsExec/WMI/WinRM, relays and delegation abuse. Spread minimally, objective-driven.

# Pass-the-Hash / exec over SMB or WinRM (Impacket / NetExec)
nxc smb <host> -u user -H <NTLM> -x 'whoami'
psexec.py -hashes :<NTLM> 'DOMAIN/user@host'
# Pass-the-Ticket
export KRB5CCNAME=ticket.ccache ; psexec.py -k -no-pass DOMAIN/user@host
⚑ Report as: “Control gap: unrestricted lateral movement (PtH/PtT, local-admin reuse, delegation abuse)”
🛡 Fix: LAPS to kill local-admin reuse; restrict SMB/WinRM/RDP source hosts (tiering, host firewall); fix unconstrained/RBCD delegation; enforce SMB/LDAP signing against relays; monitor remote-exec and Kerberos anomalies.

Lateral movement — full coverage

Checklist itemHow to runOutcome / ATT&CK
Pass-the-Hashnxc -HPtH (T1550.002)
Pass-the-Ticket / Overpass-the-HashPtTPtT (T1550.003)
PsExec / SMB execpsexec.pySMB exec
WMI / WinRM / DCOMwmiexec/winrmRemote exec
RDP (with OPSEC)rdpRDP movement
SSH pivoting (Linux)ssh tunnelSSH pivot
Token impersonation across hoststoken theftToken movement
Relay attacks (NTLM→SMB/LDAP/ADCS)ntlmrelayxNTLM relay
Delegation abuse (uncon/con/RBCD)Rubeus/impacketDelegation abuse
SOCKS/proxy pivotingchisel/C2 socksPivot proxy
Spread minimal & objective-driventargeted movementOPSEC spread

11–14   Collection, C2, exfiltration & impact

Locate crown-jewel data (collection), keep C2 resilient, prove exfil capability (usually a planted marker, not real PII), and complete the objective — demonstrating impact safely.

⚑ Report as: “Control gap: crown-jewel data reachable + exfil possible (DLP/egress gap) without detection”
🛡 Fix: DLP + egress controls on sensitive data; alert on staging/compression and large outbound transfers; segment crown jewels; the value to the client is proving the chain and the detection gaps, not pillaging real data.

Collection, C2, exfiltration & impact — full coverage

Checklist itemHow to runOutcome / ATT&CK
Locate crown-jewel dataper objectivesTarget data located (T1005)
Sensitive shares/DBs/mailboxesenumerateSensitive data access
Screenshots / proof-of-accesscaptureEvidence captured
Staging (compressed/encrypted)stage dataData staged (T1074)
Minimal copy (proof not estate)collect proof onlyMinimal collection
PII/regulated per RoE (prove, not exfil)prove accessCompliant handling
Beacon stable through redirectorsverify C2Resilient C2 (T1071)
Sleep/jitter; long+short-haultune channelsC2 channels
Fallback C2 channel readyset fallbackC2 redundancy
DNS/HTTPS/fronted backupalt channelBackup C2
Traffic mimics legit (malleable)profileC2 blending
Egress path validatedtest egressEgress mapped
Exfil over C2 (encrypted)exfil channelExfil capability (T1041)
Exfil over alt channel (test DLP)DNS/cloud exfilDLP test
Small canary exfil (purple)planted markerDetection validation
Respect RoE on real datamarker not PIICompliant exfil
Track what left (DLP finding)log exfilDLP coverage finding
Objective achieved (DA/flag)complete objectiveObjective complete (T1486 if scoped)
Demonstrate impact safelyno real destructionImpact demonstrated
Capture evidence chainrecon→objectiveAttack chain evidenced
Ransomware/disruption only if authorisedauthorised onlyScoped impact
Document blast radius & business riskwrite upRisk documented
Active Directory attack chain

AD   Active Directory attack chain

Where most internal red teams land. Enumerate the paths, harvest tickets/hashes, escalate to Domain/Enterprise Admin, then persist. ADCS (ESC1–ESC8) is now a primary route.

# Kerberoast + AS-REP roast (Impacket)
GetUserSPNs.py -request 'DOMAIN/user:pass' -dc-ip <dc>            # -> crack with hashcat -m 13100
GetNPUsers.py 'DOMAIN/' -usersfile users.txt -no-pass -dc-ip <dc> # -> hashcat -m 18200
# DCSync (replication rights)
secretsdump.py -just-dc 'DOMAIN/user:pass@dc'
# ADCS abuse (Certipy) — find + exploit ESC1..ESC8
certipy find -u user@domain -p pass -dc-ip <dc> -vulnerable
certipy req -u user@domain -p pass -ca <CA> -template <vuln> -upn administrator@domain
# Golden ticket (krbtgt hash) — domain persistence
ticketer.py -nthash <krbtgt> -domain-sid <SID> -domain DOMAIN administrator
⚑ Report as: “AD: path to Domain Admin via <Kerberoast / ACL abuse / ADCS ESC / DCSync>”
🛡 Fix: Strong service-account passwords + gMSA (kills Kerberoast); preauth on all accounts (kills AS-REP roast); prune dangerous ACLs and delegation; harden ADCS templates (ESC1–ESC8) and require manager approval; restrict DCSync rights; protect krbtgt (double-rotate); LAPS; tiered admin model.

Active Directory — full coverage

Checklist itemHow to runOutcome / ATT&CK
BloodHound shortest path to DASharpHound + BloodHoundAttack path to DA
SPN / Kerberoastable accountsGetUserSPNs.pyKerberoastable account
AS-REP roastable (no preauth)GetNPUsers.pyAS-REP roastable account
ACL abuse paths (GenericAll/WriteDACL)BloodHoundDangerous ACL
Delegation (uncon/con/RBCD) mappedBloodHound/RubeusAbusable delegation
GPO abuse opportunitiesreview GPOsGPO abuse
Trust relationshipsenumerate trustsTrust path
ADCS misconfig (ESC1-8)certipy find -vulnerableADCS misconfiguration
Kerberoasting → crackhashcat -m 13100Cracked service account
AS-REP roasting → crackhashcat -m 18200Cracked AS-REP
DCSync → hashessecretsdump -just-dcDCSync
LSASS / SAM dumpingsecretsdumpCredential dump
GPP cpassword in SYSVOLfindstr cpasswordGPP password
DPAPI / vault lootingDPAPI decryptVault loot
ACL path abuse (WriteDACL→DCSync)grant rightsACL escalation
RBCD / delegation → impersonateRubeus/impacketDelegation escalation
NTLM relay → LDAP/ADCS (ESC8) → DAntlmrelayx + certipyRelay to DA
ADCS ESC1 → cert as privileged usercertipy reqADCS ESC1
Privileged group membership addadd to DA groupGroup-membership escalation
DA → Enterprise Admin (forest)forest escalationEnterprise Admin
Cross-trust / cross-forest escalationtrust abuseCross-forest escalation
Golden Ticket (krbtgt)ticketer.pyGolden Ticket
Silver Ticket (service account)silver ticketSilver Ticket
Diamond / Sapphire ticketadvanced ticketDiamond/Sapphire ticket
DCShadowDCShadowDCShadow persistence
Skeleton Keyskeleton keySkeleton Key
DSRM password abuseDSRMDSRM backdoor
AdminSDHolder / SDProp backdoorAdminSDHolderAdminSDHolder persistence
Certificate-based persistencesteal CA / forgeCertificate persistence

OP   OPSEC (all phases)

Runs across every phase — the discipline that separates a red team from a noisy pentest.

⚑ Report as: “OPSEC: tooling tested, footprint minimal, attribution clean, activity logged”
🛡 Fix: From the blue side, the goal is to make these expensive: tamper-proof telemetry, behavioural detection, and deception (honey tokens/accounts) that trip OPSEC mistakes.

OPSEC checklist — full coverage

Checklist itemHow to runOutcome
Tooling tested for detection (lab)lab detonationEvasion validated
Beacon sleep/jitter; no aggressive scanstune C2Low-noise C2
LOLBins over dropped binariesprefer LOLBinsReduced footprint
In-memory > on-diskfilelessDisk hygiene
Cleanup plan per artifacttrack artifactsCleanup readiness
No destructive action outside RoErespect RoEScope discipline
Deconflict before IR-triggering actiondeconflictIR deconfliction
Log own activity (timestamps)activity logPurple-ready log
Attribution hygieneisolated infra/credsAttribution clean

✓   Reporting & engagement-type map

The actual deliverable. A red team report's value is the attack narrative and detection gaps — and closing the loop with blue (purple debrief).

Reporting itemHow to do itDeliverable
Executive narrative (recon→objective)write storyAttack narrative
Attack-path diagram / kill-chain timelinediagramKill-chain timeline
Each TTP mapped to ATT&CK IDmap TTPsATT&CK mapping
Detection gaps (what blue missed)list gapsDetection gaps
What blue DID catch (give credit)note detectionsDetection wins
Root-cause findingsanalyseRoot causes
Prioritised remediation + strategyrecommendRemediation plan
Cleanup confirmationverify removalCleanup confirmed

Engagement-type variations: external breaks the perimeter (§1–3 heavy); internal/AD assumes access and lives in §6–10 + AD; assumed-breach starts at §6; cloud red team pivots to the Cloud checklist; purple team runs TTPs deliberately with detection validation each step.

Core principle: red team success = demonstrating realistic business risk through an objective-driven attack chain, OPSEC-clean and in-scope. The report's value is the narrative + detection gaps, not isolated findings — always close with a purple debrief, because that's where defense actually improves.

Reactions

Related Articles