| name | opsec |
| description | Operational security management — traffic shaping, scan rate limiting, source IP management, tool signature avoidance, evidence handling, anti-detection patterns. |
| allowed-tools | Bash Read |
| metadata | {"subdomain":"opsec","when_to_use":"OPSEC check, rate limit, stealth, detection avoidance, scan timing, user-agent, scope check, evidence handling, clean up, anti-detection","tags":"opsec, stealth, rate-limit, user-agent, scope-check, evidence-handling, anti-detection","mitre_attack":"T1562, T1070, T1036"} |
Operational Security (OPSEC) Knowledge Base
OPSEC ensures the red team engagement remains covert, controlled, and within authorized scope. Poor OPSEC burns the engagement — detected scans alert the blue team, taint findings, and waste client resources. This skill applies across all recon phases.
1. Core OPSEC Principles
The OPSEC Mindset
- Every packet is a signal — assume the target has IDS/IPS, SIEM, and SOC analysts
- Minimize footprint — collect only what you need, no more
- Blend with normal traffic — timing, volume, and patterns should look legitimate
- Know your tools' signatures — every scanner has a fingerprint
- Document everything — if you can't prove it was authorized, it wasn't
Engagement Scope Awareness
Before ANY active operation:
2. Network OPSEC
Scan Rate Limiting
| Target Type | Recommended Rate | Timing Flag |
|---|
| Production web server | 5-10 req/sec | nmap -T2 |
| Internal network | 50-100 req/sec | nmap -T3 |
| Development/staging | 100+ req/sec | nmap -T4 |
| High-security target | 1-2 req/sec | nmap -T1 |
| WAF-protected | 1-5 req/sec | Custom delays |
Traffic Shaping
nmap -sS --max-rate 10 --max-retries 1 -p 80,443 <target>
ffuf -u https://<target>/FUZZ -w wordlist.txt -rate 5
nuclei -u https://<target> -rl 5 -c 2
for url in $(cat urls.txt); do
curl -s -o /dev/null -w "%{http_code} $url\n" "$url"
sleep 2
done
Timing Considerations
- Business hours (9am-5pm target timezone): Higher baseline traffic → scanning blends in
- Weekends/holidays: Lower baseline → scans stand out more
- Maintenance windows: If known, ideal for aggressive scanning
- Burst vs sustained: Short bursts with long pauses are less detectable than sustained scanning
3. HTTP OPSEC
User-Agent Management
Important: User-Agent strings become stale quickly. Always use current browser version strings that match real-world traffic at the time of engagement. Check your own browser's UA or query a live UA database before starting.
UA_LIST=(
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<CHROME_VER> Safari/537.36"
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<CHROME_VER> Safari/537.36"
"Mozilla/5.0 (X11; Linux x86_64; rv:<FIREFOX_VER>) Gecko/20100101 Firefox/<FIREFOX_VER>"
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:<FIREFOX_VER>) Gecko/20100101 Firefox/<FIREFOX_VER>"
)
UA="${UA_LIST[$RANDOM % ${#UA_LIST[@]}]}"
curl -s -A "$UA" https://<target>/
ffuf -u https://<target>/FUZZ -w wordlist.txt -H "User-Agent: $UA"
Header Hygiene
curl -s https://<target>/ \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/<CURRENT_VER> Safari/537.36" \
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" \
-H "Accept-Language: en-US,en;q=0.9" \
-H "Accept-Encoding: gzip, deflate, br"
4. Tool Signature Awareness
Common IDS/WAF Signatures
| Tool | Detection Signature | Mitigation |
|---|
| nmap | SYN scan pattern, probe ordering | Use -T2, --data-length |
| nikto | Default User-Agent, predictable paths | Custom UA, selective tuning |
| sqlmap | Parameter tampering patterns | Not applicable to recon phase |
| ffuf | Rapid sequential requests | Rate limiting (-rate) |
| nuclei | Template-specific payloads | Rate limiting (-rl), selective templates |
| gobuster | Sequential path enumeration | Randomize wordlist, rate limit |
Reducing Scanner Fingerprint
nmap -sS --data-length 24 -T2 <target>
nmap -sS --randomize-hosts -iL targets.txt
nmap -sS -g 53 <target>
nmap -sS -g 80 <target>
5. Source Management
IP Awareness
- Know your egress IP:
curl -s ifconfig.me
- Single source: All scans originate from the sandbox — the target will see one IP
- VPN/proxy considerations: If engagement allows, rotate exit nodes
- Cloud instances: Ephemeral cloud VMs provide disposable IPs
DNS OPSEC
dig @8.8.8.8 <target> A +short
dig @1.1.1.1 <target> A +short
6. Evidence & Data Handling
Engagement Documentation
Every action should be logged:
| Timestamp (UTC) | Action | Target | Tool | Justification |
|-----------------|--------|--------|------|---------------|
| <YYYY-MM-DD HH:MM> | SYN scan top 1000 | 10.0.1.50 | nmap | Passive recon identified as primary web server |
| <YYYY-MM-DD HH:MM> | Dir fuzzing | api.example.com | ffuf | Port 443 open, REST API suspected |
Data Classification
- Workspace files: All scan output goes to the engagement directory — treat as engagement artifacts
- Credentials found: NEVER store in plaintext — immediately document and encrypt
- PII discovered: Note existence, do not exfiltrate — document for client
- Client data: Handle per engagement contract data handling requirements
Clean-Up Protocol
After engagement:
7. Scope Enforcement
Automated Scope Checking
SCOPE_FILE="scope.txt"
TARGET="10.0.1.50"
if grep -q "$TARGET" "$SCOPE_FILE" 2>/dev/null; then
echo "IN SCOPE — proceed"
else
echo "WARNING: $TARGET not found in scope file!"
echo "Verify before proceeding."
fi
Scope Boundaries
- IP ranges: Only scan IPs explicitly listed in scope document
- Domains: Only enumerate subdomains of authorized root domains
- Cloud resources: Only test resources confirmed as client-owned
- Third-party services: DO NOT test shared infrastructure (CDNs, SaaS platforms)
- Physical scope: Only applicable if physical penetration test is authorized
Accidental Out-of-Scope
If you accidentally touch an out-of-scope system:
- Stop immediately
- Document the incident (timestamp, target, action taken)
- Notify the engagement lead
- Do NOT attempt to "clean up" evidence — this makes it worse
8. Detection Indicators to Monitor
Signs You've Been Detected
- Connection resets: Target suddenly dropping connections → firewall rule added
- Rate limiting: 429 responses where 200s were before → WAF triggered
- IP block: Timeouts on previously responsive hosts → IP banned
- Honeypot indicators: Unusually easy targets, too-good-to-be-true services
- Tarpit responses: Extremely slow responses → deliberately slowing scanner
Response to Detection
- Pause all scanning — at least 30 minutes
- Assess what triggered detection — review recent scan patterns
- Reduce scan rate by 50-75%
- Consider different approach — passive only for a period
- Document the detection event for engagement report
9. OPSEC Checklist (Pre-Engagement)