Skip to main content

opsec

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

インストールへ移動

ソース情報

リポジトリ
BitterSecurity/Decepticon
ソースの最終更新活動
2026年5月26日 15:19
検出された SKILL.md の言語
英語
スター
5,565
フォーク
1,053

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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
GitHubで見る