Skip to content
Back to skills

Opsec

ASecurity

Operational security — scan rate limits, user-agent rotation, traffic shaping, evidence handling, detection awareness, scope enforcement, and anti-detection patterns for bug bounty and VAPT engagements.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 2, 2026
ai-agentsgobashsqltestingapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add FJRG2007/enigma --skill opsec --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Opsec?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Opsec
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fjrg2007-opsec/badge)](https://www.skillsdirectory.com/skills/fjrg2007-opsec)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: opsec
description: Operational security — scan rate limits, user-agent rotation, traffic shaping, evidence handling, detection awareness, scope enforcement, and anti-detection patterns for bug bounty and VAPT engagements.
---

# Operational Security (OPSEC)

OPSEC keeps the engagement covert, controlled, and within authorized scope. Poor OPSEC triggers WAF/IDS, burns the engagement, taints findings, and can get your account banned on bug bounty platforms.

## Pre-Engagement Checklist

Before ANY active operation:
- [ ] Written authorization (RoE, program policy, or signed SOW) confirmed
- [ ] In-scope asset list extracted and written down
- [ ] Out-of-scope list explicitly noted
- [ ] Testing window defined (for VAPT engagements)
- [ ] Emergency contact accessible (for VAPT engagements)

## Scan Rate Limits

| Target Type | Recommended Rate | Tool Flag |
|-------------|-----------------|-----------|
| Production web server | 5-10 req/sec | `ffuf -rate 5` |
| Bug bounty target | 10-20 req/sec | `nuclei -rl 10` |
| Internal network (VAPT) | 50-100 req/sec | `nmap -T3` |
| WAF-protected | 1-5 req/sec | custom delays |
| High-security target | 1-2 req/sec | `nmap -T1` |

```bash
# ffuf with rate limiting
ffuf -u https://TARGET/FUZZ -w wordlist.txt -rate 10 -p 0.1

# nuclei conservative
nuclei -u https://TARGET -rl 5 -c 2 -timeout 10

# nmap conservative
nmap -sS --max-rate 10 --max-retries 1 -p 80,443,8080,8443 TARGET

# curl loop with delay
while read url; do
    curl -s -o /dev/null -w "%{http_code} $url\n" "$url"
    sleep 0.2
done < urls.txt
```

## User-Agent Rotation

Tool default user-agents are logged and flagged. Always override.

```bash
# Current UA examples — update version numbers to match current stable releases
UA_LIST=(
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/131.0.0.0 Safari/537.36"
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Chrome/131.0.0.0 Safari/537.36"
    "Mozilla/5.0 (X11; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0"
)
UA="${UA_LIST[$RANDOM % ${#UA_LIST[@]}]}"

# Apply to tools:
curl -s -A "$UA" https://TARGET/
ffuf -u https://TARGET/FUZZ -w list.txt -H "User-Agent: $UA"
nuclei -u https://TARGET -H "User-Agent: $UA"
```

Headers that expose scanner identity:
- `"Nmap Scripting Engine"` — nmap default
- `"nikto"` — nikto default
- `"gobuster"` — gobuster default
- `"sqlmap"` — sqlmap default

## Traffic Shaping

**Timing matters:**
- Business hours (9am-5pm target TZ) → scans blend with user traffic
- Weekends/holidays → lower baseline, scans stand out
- Burst → pause → burst: less detectable than sustained scanning

**Randomize wordlists and host order:**
```bash
# Randomize wordlist order before ffuf
shuf wordlist.txt > wordlist_rand.txt

# Randomize nmap host order (VAPT multi-host)
nmap -sS --randomize-hosts -iL targets.txt

# Random delay between requests (0.1 to 0.5 sec)
ffuf -u https://TARGET/FUZZ -w list.txt -p '0.1-0.5'
```

## Tool Signature Reduction

| Tool | Signature | Mitigation |
|------|-----------|------------|
| nmap | SYN pattern, probe ordering | `-T2`, `--data-length 24`, `-g 53` |
| nuclei | Template-specific payloads | `-rl 5`, selective templates `-t` |
| ffuf | Rapid sequential requests | `-rate`, `-p` delay |
| sqlmap | Parameter tampering patterns | `--delay=2`, `--level=1` |
| dirsearch | Sequential path enum | `--random-agent`, `--delay=0.3` |

```bash
# nmap with obfuscation
nmap -sS --data-length 24 -T2 TARGET          # Random packet padding
nmap -sS -g 53 TARGET                          # Appear as DNS traffic
nmap -sS -g 80 TARGET                          # Appear as HTTP traffic
```

## Detection Indicators

Signs you've been detected:
- **Connection resets** — firewall rule just added
- **429 responses** where 200s were before — WAF triggered
- **Timeouts** on previously responsive hosts — IP banned
- **Unusually permissive targets** — possible honeypot
- **Extremely slow responses** — tarpit, deliberately slowing scanner

Response to detection:
1. Pause all scanning — at least 30 minutes
2. Review recent scan patterns for what triggered it
3. Reduce rate by 50-75%
4. Switch to passive-only for a period
5. Document detection event

## Evidence Handling

```markdown
## Engagement Action Log

| Timestamp (UTC)    | Action          | Target            | Tool    | Justification            |
|--------------------|-----------------|-------------------|---------|--------------------------|
| 2026-04-22 14:23   | Subdomain enum  | example.com       | subfinder | In-scope root domain  |
| 2026-04-22 14:31   | Dir fuzzing     | api.example.com   | ffuf    | Live host, 443 open      |
```

Data rules:
- Credentials found → document, never store plaintext
- PII discovered → note existence, do not exfiltrate
- All scan output → `recon/<target>/` directory

## Scope Enforcement

```bash
# Before testing, verify target is in scope
SCOPE_FILE="scope.txt"
TARGET="api.target.com"

if grep -qF "$TARGET" "$SCOPE_FILE"; then
    echo "IN SCOPE — proceed"
else
    echo "WARNING: $TARGET not in scope file — verify before proceeding"
fi
```

Scope boundaries:
- **Domains**: only enumerate subdomains of authorized root domains
- **Wildcards**: `*.target.com` does NOT cover `target.com` itself
- **Cloud**: only test resources confirmed as client-owned
- **Third-party**: CDNs, SaaS platforms, shared infra are out of scope
- **Accidental out-of-scope**: stop, document, notify lead — do NOT clean up evidence

## Bug Bounty OPSEC Specifics

Unlike VAPT, bug bounty targets are not aware of testing. Extra constraints:
- Never use automated scanners on endpoints that accept payments, send emails, or affect other users
- Use `--dry-run` or `--simulate` flags when available
- Test on staging/dev instances when possible
- Keep request volume proportional to what a power user would generate
- One test account per target — do not create multiple accounts unless the program explicitly allows it
- Never store or exfiltrate user data found during testing, even as proof

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.