Skip to main content

opsec

Operational security management — traffic shaping, scan rate limiting, source IP management, tool signature avoidance, evidence handling, anti-detection patterns.

Zur Installation springen

Quellinformationen

Repository
BitterSecurity/Decepticon
Letzte Quellaktivität
26. Mai 2026 um 15:19
Erkannte Sprache von SKILL.md
Englisch
Sterne
5.611
Forks
1.061

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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 1. **Every packet is a signal** — assume the target has IDS/IPS, SIEM, and SOC analysts 2. **Minimize footprint** — collect only what you need, no more 3. **Blend with normal traffic** — timing, volume, and patterns should look legitimate 4. **Know your tools' signatures** — every scanner has a fingerprint 5. **Document everything** — if you can't prove it was authorized, it wasn't ### Engagement Scope Awareness Before ANY active operation: - [ ] Written Rules of Engagement (ROE) on file - [ ] Target IP ranges and domains explicitly listed - [ ] Out-of-scope assets clearly identified - [ ] Testing window defined (dates, times) - [ ] Emergency contact for the client (for accidental impact) - [ ] Get-out-of-jail letter accessible ## 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 ```bash # nmap with specific rate limiting nmap -sS --max-rate 10 --max-retries 1 -p 80,443 <target> # ffuf with rate limiting ffuf -u https://<target>/FUZZ -w wordlist.txt -rate 5 # nuclei with rate limiting nuclei -u https://<target> -rl 5 -c 2 # curl with delay between requests 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. ```bash # Step 1: Get a current, real User-Agent from your own browser or a live source # Option A: Copy from your browser's DevTools (Network tab → Request Headers) # Option B: Use a curated list — update version numbers to match current releases # Step 2: Build a rotation list with CURRENT versions # Template — replace <CHROME_VER> and <FIREFOX_VER> with latest stable versions 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 with custom user agent ffuf -u https://<target>/FUZZ -w wordlist.txt -H "User-Agent: $UA" ``` ### Header Hygiene ```bash # Avoid tool-specific headers that reveal scanner identity # BAD: Default tool user agents # - "Nmap Scripting Engine" # - "nikto" # - "gobuster" # - "sqlmap" # GOOD: Mimic real browser headers (use current browser versions!) 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 ```bash # nmap — add random data to packets nmap -sS --data-length 24 -T2 <target> # nmap — randomize host order (for multi-target) nmap -sS --randomize-hosts -iL targets.txt # nmap — spoof source port (use common ports) nmap -sS -g 53 <target> # Appear as DNS traffic nmap -sS -g 80 <target> # Appear as HTTP traffic ``` ## 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 ```bash # Use public resolvers to avoid leaking internal DNS queries dig @8.8.8.8 <target> A +short dig @1.1.1.1 <target> A +short # Don't use target's own DNS servers for recon queries # (they may log all queries from unknown sources) ``` ## 6. Evidence & Data Handling ### Engagement Documentation Every action should be logged: ```markdown | 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: - [ ] All tools stopped - [ ] No persistent connections to target - [ ] Scan data secured per client requirements - [ ] Temporary files cleaned from sandbox - [ ] No data left on third-party services (Shodan searches, etc.) ## 7. Scope Enforcement ### Automated Scope Checking ```bash # Before scanning, verify target is in scope 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: 1. **Stop immediately** 2. **Document the incident** (timestamp, target, action taken) 3. **Notify the engagement lead** 4. **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 1. **Pause all scanning** — at least 30 minutes 2. **Assess what triggered detection** — review recent scan patterns 3. **Reduce scan rate** by 50-75% 4. **Consider different approach** — passive only for a period 5. **Document the detection event** for engagement report ## 9. OPSEC Checklist (Pre-Engagement) - [ ] ROE document reviewed and understood - [ ] Scope file created at `scope.txt` - [ ] Emergency client contact accessible - [ ] Egress IP noted: `curl -s ifconfig.me` - [ ] Tool user agents configured (non-default) - [ ] Scan rate limits configured per target type - [ ] Output directory structure created - [ ] Evidence logging template ready - [ ] Clean-up protocol documented
Auf GitHub ansehen