Repository navigation
Project Settings Registry
ð Canonical version: read this page on the official docs site â https://www.redamon.org/docs/project-settings-registry. The GitHub wiki is a mirror.
Every configurable parameter of a RedAmon project, with what it means, what it accepts and whether an external agent may write it. GENERATED from recon_settings/registry.yaml; a test fails the build when this page and the registry disagree, so it cannot go stale.
There are 741 parameters. 673 are settable over the MCP surface at any time, 19 are fixed when a project is created, and 49 are not pipeline parameters at all. 14 of the settable ones are the engagement's LIMITS - a rate ceiling, an exclusion list, a time window, the agent's denylists - which the form and the MCP surface reach alike and which the pipeline enforces at scan start whatever tuning says.
For the narrative version with screenshots, see Project Settings Reference.
- Accepts is the ENFORCED bound, not a suggestion. A value outside it is refused by name rather than clamped, and one bad key refuses a whole batch.
-
Written vs resolved. Several values are corrected at scan start rather than refused: a rate above the engagement ceiling comes down to the ceiling, a container image outside the shipped set is pinned back to the default, and a wordlist path outside the project directory is dropped. Each is logged with a
[guardrail]line. -
Zero is not always the slowest value. Several rate fields treat
0as UNLIMITED, which makes it the most aggressive setting available. Those say so. -
Two levels.
scanModulesdecides which PHASES run; a per-tool*Enabledflag decides which tools run inside a phase. Setting one without the other is a silent no-op. -
One capability surface. Every settable field has an input in the project form and is writable through
update_recon_settings; neither door reaches something the other cannot. The exception is the engagement RECORD, which is deliberately UI-only.
- Agent (44)
- AI attack-surface recon (15)
- AlienVault OTX (2)
- Amass (7)
- Arjun (12)
- BadDNS (5)
- Banner grab (4)
- Capture proxy (1)
- Censys (2)
- CriminalIP (2)
- crt.sh (2)
- CVE lookup (4)
- CypherFix (6)
- Denial of service (4)
- DNS (4)
- Domain recon AI hints (2)
- Engagement (2)
- ffuf (21)
- Fireteam (8)
- FOFA (3)
- gau (21)
- GitHub secret hunt (7)
- GraphQL Cop (17)
- GraphQL security (13)
- GVM vulnerability scan (6)
- HackerTarget (2)
- hakrawler (11)
- HTTP probe AI hints (5)
- httpx (32)
- Hydra (8)
- Insecure deserialization (7)
- JS recon (30)
- jsluice (14)
- Katana (13)
- Kiterunner (18)
- knockpy (2)
- masscan (9)
- MITRE ATT&CK enrichment (7)
- naabu (14)
- Netlas (2)
- Nmap (8)
- Nuclei (30)
- OpenAPI ingestion (6)
- Origin discovery (9)
- OSINT enrichment (1)
- ParamSpider (4)
- Path traversal (6)
- Phishing (1)
- Pipeline (4)
- Pipeline AI master switch (2)
- Port scan AI catalog (1)
- Project identity (14)
- puredns (6)
- Remote code execution (3)
- Resource enum AI hints (6)
- Rules of Engagement (40)
- Security checks (37)
- Serialized object scan (2)
- Server-side request forgery (11)
- Shodan (6)
- SQL injection (3)
- Subdomain discovery (1)
- Subdomain takeover (8)
- subfinder (3)
- subjack (9)
- Supply chain recon (4)
- Supply chain scan (14)
- Targeting and scope (11)
- tlsx (18)
- TruffleHog (16)
- uncover (3)
- urlscan.io (2)
- Vhost / SNI enumeration (11)
- VirusTotal (2)
- WAF detection (2)
- Wappalyzer (6)
- Web cache poisoning (19)
- WHOIS (2)
- ZAP Ajax Spider (19)
- ZoomEye (3)
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
agentActivatePostExplPhase |
true / false | true |
settable | Whether the post-exploitation phase is available to the agent at all. A Rules of Engagement document may only set it to false. |
agentBindPortOnTarget |
1â65535 count | â | settable | Leave empty if unsure (agent will ask) A Rules of Engagement document may never set this. |
agentBruteForceMaxWordlistAttempts |
0â1000 count | 3 |
settable | The attempt ceiling for one credential attack, which is what keeps it from running a whole wordlist against a live account. |
agentBruteforceSpeed |
0â10 count | 5 |
settable | How aggressively the agent's credential attacks run, which trades attempts per second against lockout risk. |
agentChiselTunnelEnabled |
true / false | false |
settable | Whether the agent may stand up a chisel tunnel, which gives it network reach beyond its own container. A Rules of Engagement document may only set it to false. |
agentCreateGraphImageOnInit |
true / false | false |
settable | Renders a picture of the graph when a session starts, so the agent begins with a view of the estate. |
agentCypherMaxRetries |
0â10 count | 3 |
settable | How many times agent retries a failed request before giving up on it. |
agentExecutionTraceMemorySteps |
1â10000 count | 100 |
settable | Past steps kept in context |
agentExplSystemPrompt |
free_text |
(empty) | settable | Injected during the exploitation phase. Leave empty for default. A Rules of Engagement document may never set this. |
agentGuardrailEnabled |
true / false | true |
settable | The agent's own scope guardrail, which refuses a tool call aimed outside the project's targets. A Rules of Engagement document may only set it to true. |
agentInformationalSystemPrompt |
free_text |
(empty) | settable | Injected during the informational phase. Leave empty for default. A Rules of Engagement document may never set this. |
agentKaliInstallAllowedPackages |
free_text |
(empty) | settable | Comma-separated whitelist. If non-empty, ONLY these packages can be installed. A Rules of Engagement document may never set this. |
agentKaliInstallEnabled |
true / false | false |
settable | Whether the agent may install additional packages inside its Kali sandbox. A Rules of Engagement document may only set it to false. |
agentKaliInstallForbiddenPackages |
free_text |
(empty) | settable | Comma-separated blacklist. These packages must NEVER be installed. |
agentLatsBranching |
2â10 count | 6 |
settable | Part of the agent's LATS search configuration, which is how it explores several candidate actions before committing to one. |
agentLatsEnabled |
true / false | false |
settable | Whether agent runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
agentLatsMaxDepth |
2â10 depth | 6 |
settable | Part of the agent's LATS search configuration, which is how it explores several candidate actions before committing to one. |
agentLatsMaxRollouts |
4â300 count | 50 |
settable | Part of the agent's LATS search configuration, which is how it explores several candidate actions before committing to one. |
agentLatsMaxTreeNodes |
10â1000 count | 120 |
settable | Part of the agent's LATS search configuration, which is how it explores several candidate actions before committing to one. |
agentLatsMinHypotheses |
2â4 count | 2 |
settable | Part of the agent's LATS search configuration, which is how it explores several candidate actions before committing to one. |
agentLatsPhaseExploitation |
true / false | true |
settable | Whether the LATS search runs during the exploitation phase as well as reconnaissance. |
agentLatsPhasePostExpl |
true / false | false |
settable | Part of the agent's LATS search configuration, which is how it explores several candidate actions before committing to one. |
agentLatsPruneFloor |
0â1 ratio | 0.15 |
settable | Part of the agent's LATS search configuration, which is how it explores several candidate actions before committing to one. |
agentLatsShadowMode |
true / false | false |
settable | Runs the LATS search without acting on its choices, so its behaviour can be observed before it is trusted. |
agentLatsUctC |
0â10 ratio | 1.4 |
settable | Part of the agent's LATS search configuration, which is how it explores several candidate actions before committing to one. |
agentLhost |
free_text |
(empty) | settable | Your host machine's LAN IP that the target can reach (not the container's 172.x address). Leave empty for bind mode. A Rules of Engagement document may never set this. |
agentLlmParseMaxRetries |
0â20 count | 3 |
settable | How many times agent retries a failed request before giving up on it. |
agentLogBackupCount |
0â100 count | 5 |
settable | Rotated backups to keep |
agentLogMaxMb |
1â1024 count | 10 |
settable | The size at which the agent's log file rolls, in megabytes. |
agentLport |
1â65535 port | â | settable | Leave empty for bind mode A Rules of Engagement document may never set this. |
agentMaxIterations |
1â1000 count | 100 |
settable | LLM reasoning iterations limit |
agentNgrokTunnelEnabled |
true / false | false |
settable | Whether the agent may expose a local listener through ngrok, which makes it reachable from the public internet. A Rules of Engagement document may only set it to false. |
agentOpenaiModel |
free_text |
claude-opus-4-6 |
settable | Model used by the agent. Configure providers in Global Settings. A Rules of Engagement document may never set this. |
agentPayloadUseHttps |
true / false | false |
settable | Whether a generated payload calls back over HTTPS rather than plain HTTP. A Rules of Engagement document may never set this. |
agentPlanMaxParallelTools |
1â50 count | 10 |
settable | Concurrent tools per plan wave (root + fireteam); extras queue |
agentPostExplPhaseType |
free_text |
statefull |
settable | Stateful keeps Meterpreter/shell sessions between turns |
agentPostExplSystemPrompt |
free_text |
(empty) | settable | Injected during the post-exploitation phase. Leave empty for default. A Rules of Engagement document may never set this. |
agentRequireApprovalForExploitation |
true / false | true |
settable | Whether the agent must be approved before it moves from reconnaissance into exploitation. A Rules of Engagement document may only set it to true. |
agentRequireApprovalForPostExploitation |
true / false | true |
settable | Whether the agent must be approved before it acts on a host it has already compromised. A Rules of Engagement document may only set it to true. |
agentRequireToolConfirmation |
true / false | true |
settable | Whether every agent tool call waits for a human to approve it. A Rules of Engagement document may only set it to true. |
agentToolOutputMaxChars |
1000â100000 count | 40000 |
settable | Truncation limit for tool output |
agentToolPhaseMap |
json_object |
{"query_graph":["informational","exploitation","post_exploitation"],"proxy_brain |
settable | Per-project overrides for which engagement phase each agent tool belongs to. A Rules of Engagement document may never set this. |
attackSkillConfig |
attack_skill_config |
{"builtIn":{"cve_exploit":true,"brute_force_credential_guess":true,"phishing_soc |
settable | Per-project enable state of the attack skills: builtIn maps each built-in skill id to on or off, user maps the project owner's own uploaded skills by id. A user skill is on only when set to true (missing is off); at most 20 of the owner's skills may be on, ids the owner does not have are dropped, and a quarantined skill cannot be turned on. Rewritten across every project when a user deletes one of their own skills. A Rules of Engagement document may never set this. |
triageReviewBudget |
0â1000 count | 150 |
settable | How many findings one triage run may have its evidence reviewed by the configured model before it stops and ranks the rest on the rules alone. 0 means no review and needs no model. A run never reviews more than 1000, whatever is stored. |
phase http_probe · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
aiSurfaceReconCacheEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
aiSurfaceReconChatShapeProbeEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
aiSurfaceReconEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
aiSurfaceReconJuliusProbePackEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
aiSurfaceReconLatencyBaselineEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
aiSurfaceReconMaxWorkers |
1â500 threads | 5 |
settable | How many AI attack-surface recon operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 2. |
aiSurfaceReconMcpHandshakeEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
aiSurfaceReconMcpListToolsEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
aiSurfaceReconMcpYaraEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
aiSurfaceReconModelListEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
aiSurfaceReconOpenapiDiscoveryEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
aiSurfaceReconProbePackVersion |
free_text |
latest |
settable | Pinned probe-pack identifier recorded on every annotation (default "latest"). |
aiSurfaceReconTimeout |
1â86400 seconds | 10 |
settable | How long AI attack-surface recon may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
aiSurfaceReconUserAgent |
free_text |
RedAmon-AISurfaceRecon/1.0 |
settable | User-Agent sent on every probe. |
aiSurfaceReconVectorDbReadEnabled |
true / false | true |
settable | Whether AI attack-surface recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
otxEnabled |
true / false | true |
settable | Whether otx runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
otxWorkers |
1â20 threads | 5 |
settable | How many otx operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
amassActive |
true / false | false |
settable | Amass active probing mode In stealth mode this is forced to false. |
amassBrute |
true / false | false |
settable | Amass DNS brute-force In stealth mode this is forced to false. |
amassBruteWordlists |
json_object |
["default"] |
settable | Wordlists amass brute-forces with. Only the shipped list names are accepted. |
amassDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
caffix/amass:latest |
settable | The container image spawned for amass. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
amassEnabled |
true / false | false |
settable | Whether amass runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
amassMaxResults |
1â50000 count | 50000 |
settable | Maximum subdomains taken from an amass run. In stealth mode this is lowered to at most 100; a quieter value is kept. |
amassTimeout |
1â120 minutes | 10 |
settable | How long amass may run, in MINUTES rather than seconds. The name reads like every other timeout in the model and the unit does not match it. |
phase resource_enum · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
arjunChunkSize |
10â5000 count | 500 |
settable | Parameters tested per request batch. Lower = more requests, higher accuracy |
arjunCustomHeaders |
http_header |
(empty) | settable | Add auth tokens or custom headers for authenticated parameter testing |
arjunDisableRedirects |
true / false | false |
settable | Disable following redirects |
arjunEnabled |
true / false | true |
settable | Whether arjun runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
arjunMaxEndpoints |
1â50000 count | 50000 |
settable | The most results arjun accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. |
arjunMethods |
free_text |
["GET","POST"] |
settable | HTTP methods: ["GET", "POST", "PUT", "DELETE", "PATCH"] |
arjunPassive |
true / false | false |
settable | Passive mode (no requests) In stealth mode this is forced to true. |
arjunRateLimit |
0â100000 rps | 0 |
settable | Requests per second arjun sends while probing for parameters. ZERO MEANS UNLIMITED, so 0 is the most aggressive value available and not the safest. Under an engagement ceiling a 0 here is rewritten to the ceiling at scan start. 0 means UNLIMITED here, so it is the fastest value and not the safest. Capped to the engagement rate ceiling at scan start. |
arjunScanTimeout |
60â86400 seconds | 600 |
settable | How long arjun may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
arjunStable |
true / false | false |
settable | Stability mode (slower but more reliable) |
arjunThreads |
1â20 threads | 2 |
settable | How many arjun operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
arjunTimeout |
1â86400 seconds | 15 |
settable | How long arjun may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
phase vuln_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
baddnsDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
redamon-baddns:latest |
settable | The container image spawned for baddns. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
baddnsEnabled |
true / false | false |
settable | Whether baddns runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
baddnsModules |
free_text |
["cname","ns","mx","txt","spf"] |
settable | Subset of BadDNS modules to run. Valid: cname, ns, mx, txt, spf, dmarc, wildcard, nsec, references, zonetransfer. (MTA-STS exists in baddns 2.1.0 but is not CLI-addressable due to an upstream validator regex bug -- omit.) Default: ["cname","ns","mx","txt","spf"] |
baddnsNameservers |
free_text |
(empty) | settable | Optional custom DNS resolvers (e.g. ["1.1.1.1","8.8.8.8"]). Empty = system resolvers. A Rules of Engagement document may never set this. |
baddnsRunTimeout |
1â86400 seconds | 1800 |
settable | How long baddns may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
phase port_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
bannerGrabEnabled |
true / false | true |
settable | Whether Banner grab runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
bannerGrabMaxLength |
100â5000 bytes | 1000 |
settable | Truncate banners longer than this (chars) |
bannerGrabThreads |
1â500 threads | 20 |
settable | How many Banner grab operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
bannerGrabTimeout |
1â86400 seconds | 5 |
settable | How long Banner grab may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
captureProxyEnabled |
true / false | false |
settable | Whether the HTTP capture proxy records the scan's traffic. Capture runs off the scan's critical path, so a capture failure never fails the scan. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
censysEnabled |
true / false | false |
settable | Whether censys runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
censysWorkers |
1â20 threads | 5 |
settable | How many censys operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
criminalIpEnabled |
true / false | false |
settable | Whether CriminalIP runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
criminalIpWorkers |
1â20 threads | 5 |
settable | How many CriminalIP operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
crtshEnabled |
true / false | true |
settable | Whether crtsh runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
crtshMaxResults |
1â50000 count | 5000 |
settable | Maximum certificate-transparency records read from crt.sh in one pass. In stealth mode this is lowered to at most 100; a quieter value is kept. |
phase vuln_scan · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
cveLookupEnabled |
true / false | true |
settable | Whether CVE lookup runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
cveLookupMaxCves |
1â100 count | 20 |
settable | Maximum CVEs attached to one service before enrichment stops adding more. |
cveLookupMinCvss |
0â10 ratio | 0 |
settable | Minimum CVSS score (0-10) |
cveLookupSource |
free_text |
nvd |
settable | Which vulnerability database CVE enrichment queries. |
standalone · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
cypherfixBranchPrefix |
free_text |
cypherfix/ |
settable | Prefix for fix branch names (e.g., cypherfix/rem-abc123). A Rules of Engagement document may never set this. |
cypherfixDefaultBranch |
free_text |
main |
settable | Base branch for creating fix branches (default: main). A Rules of Engagement document may never set this. |
cypherfixDefaultRepo |
free_text |
(empty) | settable | GitHub repository to fix (owner/repo format). Can be overridden per remediation. A Rules of Engagement document may never set this. |
cypherfixGithubToken |
free_text |
(empty) | closed | Personal access token with Withheld from every read on the MCP surface. |
cypherfixLlmModel |
free_text |
(empty) | settable | No longer used. The Triage review and CodeFix models are chosen per user, for all of that user's projects, in Global Settings > LLM Providers > Models by feature. Kept only so older exports and presets still load. A Rules of Engagement document may never set this. |
cypherfixRequireApproval |
true / false | true |
settable | Whether a CypherFix patch must be approved by a human before it is pushed. |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
dosAssessmentOnly |
true / false | false |
settable | Only check for availability vulnerabilities (nmap scripts, nuclei) without active testing. |
dosConcurrentConnections |
10â10000 threads | 1000 |
settable | How many dos operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
dosMaxAttempts |
1â10 count | 3 |
settable | Max different vectors to try before reporting service is resilient. |
dosMaxDuration |
10â300 seconds | 60 |
settable | The longest one denial-of-service attempt may run, in seconds. It is only reachable at all when roeAllowDos permits the technique. |
phase domain_discovery · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
dnsEnabled |
true / false | true |
settable | Whether dns runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
dnsMaxRetries |
1â10 count | 3 |
settable | How many times dns retries a failed request before giving up on it. |
dnsMaxWorkers |
1â200 threads | 80 |
settable | How many dns operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 5. |
dnsRecordParallelism |
true / false | true |
settable | How many dns operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to false. |
phase domain_discovery · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
domainReconAiNsHintEnabled |
true / false | true |
settable | Whether Domain recon AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
domainReconAiTxtHintEnabled |
true / false | true |
settable | Whether Domain recon AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
standalone · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
engagementIdentityHeader |
http_header |
(empty) | settable | A header every request carries so the target's operators can attribute the traffic to this engagement, for example 'X-Bug-Bounty: your-handle'. Empty sends none. Many programs require one, and it is the difference between a scan that gets a question and one that gets a block. Validated like any other header: no CR or LF, and not Host, Authorization, Cookie or Proxy-*. |
engagementKind |
internal, third_party
|
internal |
create-only | Who the target belongs to, and therefore what has to be true before a scan may start. 'internal' is your own estate. 'third_party' is somebody else's, and such a project MUST carry a non-zero rate ceiling and an authorization record or start_recon refuses it. Set at creation and immutable afterwards: converting a project after the fact would either claim an authority nobody granted or drop a ceiling a human put there. Every project created before this field existed reads as 'internal', so an old project with no ceiling is flagged rather than blocked. Fixed at project creation; refused on an existing project. |
phase resource_enum · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
ffufAiExtensions |
true / false | false |
settable | When true, FFuf file extensions are picked per-target by AI from response headers (requires aiInPipeline=true). The static ffufExtensions list is ignored. |
ffufAiUseJev |
true / false | false |
settable | Engine for the FFuf extension picker: false uses the LLM in aiPipelineModel, true uses TypeSafe AI Jev (model jev-1.13.0). Takes effect only when aiInPipeline is true, and aiInPipeline does not reset it. Needs a Jev token on the project owner's account; without one the hook uses its static fallback. Jev picks only from a fixed 40-extension catalog. |
ffufAutoCalibrate |
true / false | true |
settable | Learns what a 'not found' response looks like on this target before filtering, which removes most soft-404 noise. |
ffufCustomHeaders |
http_header |
(empty) | settable | One header per line. Sent with every request |
ffufEnabled |
true / false | false |
settable | Whether ffuf runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
ffufExtensions |
free_text |
(empty) | settable | File extensions to fuzz, e.g. [".php", ".asp"] |
ffufFilterCodes |
status_codes |
(empty) | settable | HTTP status codes to filter out |
ffufFilterSize |
free_text |
(empty) | settable | Filter responses by size |
ffufFollowRedirects |
true / false | false |
settable | Follows a redirect rather than recording it, which can turn one request into several. |
ffufJevBasePaths |
true / false | false |
settable | Picks the smart-fuzz base paths with TypeSafe AI Jev (model jev-1.13.0): false keeps the random pick that fills ffufSmartFuzzMaxBasePaths, true asks Jev, per discovered directory, whether it is likely to hold sensitive, administrative or application content, and FFuf fuzzes the directories Jev ranks highest. Takes effect only when aiInPipeline is true, and aiInPipeline does not reset it. Needs a Jev token on the project owner's account; without one the random pick is used. Jev only ranks the directories the crawl found, and the cap keeps the same number either way. Jev's pick is kept in the recon output next to the deterministic one. |
ffufMatchCodes |
status_codes |
[200,201,204,301,302,307,308,401,403,405] |
settable | HTTP status codes to match, e.g. [200, 301, 403] |
ffufMaxTime |
60â86400 seconds | 1800 |
settable | Max total time in seconds |
ffufParallelism |
1â50 threads | 20 |
settable | How many ffuf operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
ffufRate |
0â100000 rps | 0 |
settable | Requests per second ffuf sends. ZERO MEANS UNLIMITED, so 0 is the most aggressive value available and not the safest, and it is also the shipped default. Under an engagement ceiling a 0 here is rewritten to the ceiling at scan start. 0 means UNLIMITED here, so it is the fastest value and not the safest. Capped to the engagement rate ceiling at scan start. |
ffufRecursion |
true / false | false |
settable | Follows a discovered directory down into its own contents, which multiplies the request count. |
ffufRecursionDepth |
1â5 depth | 2 |
settable | How many directories deep recursion goes before it stops. |
ffufSmartFuzz |
true / false | true |
settable | Picks extensions and wordlist entries from what the target has already revealed rather than fuzzing blind. |
ffufSmartFuzzMaxBasePaths |
1â50 count | 20 |
settable | The most crawler-discovered directory prefixes smart fuzz runs the whole wordlist under, on every target. Each one adds a full wordlist pass per target, so this multiplies the request count. When crawlers find more, a random sample of this size is fuzzed. |
ffufThreads |
1â200 threads | 40 |
settable | How many ffuf operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
ffufTimeout |
1â86400 seconds | 10 |
settable | How long ffuf may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
ffufWordlist |
project_file |
/usr/share/seclists/Discovery/Web-Content/common.txt |
settable | Path to wordlist file |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
fireteamAllowedPhases |
free_text |
["informational","exploitation","post_exploitation"] |
settable | Engagement phases in which the fireteam may operate. A Rules of Engagement document may never set this. |
fireteamConfirmationTimeoutSec |
0â86400 count | 600 |
settable | How long a fireteam member waits for confirmation before giving up on a step. |
fireteamEnabled |
true / false | true |
settable | Whether the agent may split work across a fireteam of sub-agents. |
fireteamMaxConcurrent |
1â8 count | 5 |
settable | 1-8. Upper limit on members in-flight at once. |
fireteamMaxMembers |
2â8 count | 5 |
settable | 2-8. Hard cap on fireteam size the LLM can request. |
fireteamMemberMaxIterations |
5â50 count | 10 |
settable | 5-50. Each member's ReAct budget before it exits. |
fireteamPropensity |
0â10 count | 3 |
settable | How strongly the agent leans toward deploying a fireteam over single-agent or plan_tools. Injected into the system prompt as a directive the LLM must follow. |
fireteamTimeoutSec |
60â7200 count | 3600 |
settable | 60-7200. Hard wall-clock ceiling for the whole fireteam. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
fofaEnabled |
true / false | false |
settable | Whether fofa runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
fofaMaxResults |
1â10000 count | 1000 |
settable | The most results fofa accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. An empty value is replaced by the default rather than honoured. |
fofaWorkers |
1â20 threads | 5 |
settable | How many fofa operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
phase resource_enum · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
gauBlacklistExtensions |
free_text |
(empty) | settable | File extensions to skip, e.g. [".jpg", ".css"] |
gauDetectMethods |
true / false | true |
settable | Detect allowed HTTP methods |
gauDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
sxcurity/gau:latest |
settable | The container image spawned for gau. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
gauEnabled |
true / false | false |
settable | Whether gau runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to true. |
gauFilterDeadEndpoints |
true / false | true |
settable | Drops archived URLs that no longer respond, so the result reflects the live surface. |
gauMaxUrls |
1â100000 count | 50000 |
settable | The most results gau accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. |
gauMethodDetectRateLimit |
1â100000 rps | 50 |
settable | Requests per second the gau method-detection pass sends to the target. Active traffic despite gau's passive reputation, so the engagement ceiling caps it. Capped to the engagement rate ceiling at scan start. In stealth mode this is forced to 2. |
gauMethodDetectThreads |
1â500 threads | 25 |
settable | How many gau operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
gauMethodDetectTimeout |
1â86400 seconds | 5 |
settable | How long gau may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
gauProviders |
free_text |
["wayback","commoncrawl","otx","urlscan"] |
settable | Sources: "wayback", "commoncrawl", "otx", "urlscan" |
gauThreads |
1â20 threads | 5 |
settable | How many gau operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
gauTimeout |
10â86400 seconds | 60 |
settable | How long gau may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
gauVerbose |
true / false | false |
settable | Emits per-URL progress, which is useful while debugging and noisy otherwise. |
gauVerifyAcceptStatus |
status_codes |
[200,201,301,302,307,308,401,403] |
settable | Status codes that indicate a live URL. Include 401/403 for auth-protected endpoints |
gauVerifyDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
projectdiscovery/httpx:latest |
settable | The container image spawned for gau. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
gauVerifyRateLimit |
1â100000 rps | 100 |
settable | Requests per second the gau verification pass sends. gau itself only reads public archives, but verification dials the target, so this is active traffic and the engagement ceiling caps it. Capped to the engagement rate ceiling at scan start. In stealth mode this is forced to 2. |
gauVerifyThreads |
1â100 threads | 50 |
settable | How many gau operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
gauVerifyTimeout |
1â86400 seconds | 5 |
settable | How long gau may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
gauVerifyUrls |
true / false | true |
settable | Verify discovered URLs are alive |
gauWorkers |
1â20 threads | 10 |
settable | How many gau operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
gauYearRange |
free_text |
(empty) | settable | Filter Wayback Machine by year (e.g., 2020, 2024) |
standalone · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
githubMaxCommits |
1â1000 count | 100 |
settable | The most results github accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. |
githubOutputJson |
true / false | true |
settable | Emits machine-readable output alongside the human-readable report. |
githubScanCommits |
true / false | true |
settable | Walks commit history as well as the working tree, which is where most leaked secrets actually live. |
githubScanGists |
true / false | true |
settable | Includes the organisation members' public gists in the hunt. |
githubScanMembers |
true / false | false |
settable | Includes the organisation members' own repositories in the hunt. |
githubTargetOrg |
github_name |
(empty) | create-only | The GitHub organisation the secret hunt scans. It points a scanner at someone else's assets, so it is scope by another name: set when the project is created, and afterwards changed only by the project form or by update_project_scope under its own permission. Fixed at project creation; refused on an existing project. |
githubTargetRepos |
github_repo_list |
(empty) | create-only | Comma-separated list. Leave empty to scan all repositories. Fixed at project creation; refused on an existing project. |
phase vuln_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
graphqlCopDebug |
true / false | false |
settable | -d flag: adds X-GraphQL-Cop-Test header per request |
graphqlCopDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
dolevf/graphql-cop:1.14 |
settable | The container image spawned for GraphQL Cop. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
graphqlCopEnabled |
true / false | false |
settable | Whether GraphQL Cop runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
graphqlCopForceScan |
true / false | false |
settable | -f flag: scan even if endpoint doesn't look GraphQL-like |
graphqlCopTestAliasOverloading |
true / false | true |
settable | HIGH DoS, 101-alias rate-limit bypass (default true, disabled in stealth) In stealth mode this is forced to false. |
graphqlCopTestBatchQuery |
true / false | true |
settable | HIGH DoS, array-based batch queries (default true, disabled in stealth) In stealth mode this is forced to false. |
graphqlCopTestCircularIntrospection |
true / false | true |
settable | HIGH DoS, deep nested introspection (default true, disabled in stealth) In stealth mode this is forced to false. |
graphqlCopTestDirectiveOverloading |
true / false | true |
settable | HIGH DoS (default true, disabled in stealth) In stealth mode this is forced to false. |
graphqlCopTestFieldSuggestions |
true / false | true |
settable | LOW info-leak check (default true) |
graphqlCopTestGetMethod |
true / false | true |
settable | MEDIUM CSRF, GET-method queries allowed (default true) |
graphqlCopTestGetMutation |
true / false | true |
settable | MEDIUM CSRF, GET-based mutations (default true) |
graphqlCopTestGraphiql |
true / false | true |
settable | LOW info-leak, detects GraphiQL/Playground UI (default true) |
graphqlCopTestIntrospection |
true / false | false |
settable | HIGH info-leak check (default false, dedupes with native scanner) |
graphqlCopTestPostCsrf |
true / false | true |
settable | MEDIUM CSRF, url-encoded POST (default true) |
graphqlCopTestTraceMode |
true / false | true |
settable | INFO, Apollo tracing extension disclosure (default true) |
graphqlCopTestUnhandledError |
true / false | true |
settable | INFO info-leak, exception stack traces (default true) |
graphqlCopTimeout |
10â600 seconds | 120 |
settable | How long GraphQL Cop may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
phase vuln_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
graphqlAuthHeader |
free_text |
(empty) | settable | Header name when graphqlAuthType = "custom" A Rules of Engagement document may never set this. |
graphqlAuthType |
free_text |
(empty) | settable | "", "bearer", "basic", "cookie", "custom" |
graphqlAuthValue |
free_text |
(empty) | settable | Auth credential (token / user:pass / cookie string) A Rules of Engagement document may never set this. Withheld from every read on the MCP surface. |
graphqlConcurrency |
1â20 threads | 5 |
settable | How many graphql operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
graphqlDepthLimit |
1â50 depth | 10 |
settable | Max introspection query nesting depth (default 10) |
graphqlEndpoints |
free_text |
(empty) | settable | Comma-separated custom GraphQL endpoints (empty = auto-discover) A Rules of Engagement document may never set this. |
graphqlIntrospectionTest |
true / false | true |
settable | Probe __schema to detect exposed introspection (default true) In stealth mode this is forced to true. |
graphqlRateLimit |
0â100 rps | 10 |
settable | Requests per second graphql sends. Capped to the engagement ceiling at scan start, so a value above the ceiling is rewritten rather than refused. Capped to the engagement rate ceiling at scan start. In stealth mode this is forced to 2. |
graphqlRetryBackoff |
0â60 ratio | 2 |
settable | Exponential backoff base seconds between retries (default 2.0) |
graphqlRetryCount |
0â10 count | 3 |
settable | How many times graphql retries a failed request before giving up on it. |
graphqlSecurityEnabled |
true / false | false |
settable | Whether graphql runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to true. |
graphqlTimeout |
1â600 seconds | 30 |
settable | How long graphql may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. In stealth mode this is forced to 60. |
graphqlVerifySsl |
true / false | true |
settable | Reject invalid / self-signed TLS certs (default true) |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
gvmCleanupAfterScan |
true / false | true |
settable | Removes the GVM task and its target after the scan, which keeps the appliance from accumulating state. |
gvmPollInterval |
5â300 count | 30 |
settable | Seconds between scan status checks. Lower values give faster log updates. |
gvmPortList |
free_text |
All TCP and Nmap top 100 UDP |
settable | Which ports GVM probes on every target. The full IANA UDP range is the single biggest driver of scan time: closed UDP ports answer with silence and must each be timed out, and GVM reports no progress percentage until that finishes. |
gvmScanConfig |
free_text |
Full and fast |
settable | GVM scan configuration preset. âFull and fastâ is recommended for most targets. |
gvmScanTargets |
both, ips_only, hostnames_only
|
both |
create-only | Which targets from recon data to scan: both, ips_only or hostnames_only. Both provides the most thorough coverage. An unknown value makes the GVM scan select nothing, so the value set is closed. Fixed at project creation; refused on an existing project. |
gvmTaskTimeout |
0â86400 seconds | 14400 |
settable | How long gvm may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
hackerTargetEnabled |
true / false | true |
settable | Whether hackertarget runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
hackerTargetMaxResults |
1â50000 count | 5000 |
settable | Maximum subdomains taken from the HackerTarget API in one pass. In stealth mode this is lowered to at most 100; a quieter value is kept. |
phase resource_enum · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
hakrawlerCustomHeaders |
http_header |
(empty) | settable | One header per line (e.g., Cookie: value). Sent with every request |
hakrawlerDepth |
1â10 depth | 2 |
settable | How many links deep to follow |
hakrawlerDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
jauderho/hakrawler:latest |
settable | The container image spawned for hakrawler. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
hakrawlerEnabled |
true / false | true |
settable | Whether hakrawler runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
hakrawlerIncludeSubs |
true / false | true |
settable | Follows links onto subdomains of the target rather than staying on one host. |
hakrawlerInsecure |
true / false | true |
settable | Skip TLS verification |
hakrawlerJevSeedOrder |
true / false | false |
settable | Orders Hakrawler's seed URLs with TypeSafe AI Jev (model jev-1.13.0): false keeps the alphabetical order, true asks Jev, per probed host, whether it is likely to have a rich web application surface, and Hakrawler crawls the promising hosts first, so under hakrawlerMaxUrls they are reached before the cap. Takes effect only when aiInPipeline is true, and aiInPipeline does not reset it. Needs a Jev token on the project owner's account; without one the alphabetical order is used. Ordering only: every seed stays in the list, and partial recon keeps the alphabetical order. Jev's order is kept in the recon output next to the alphabetical one. |
hakrawlerMaxUrls |
1â100000 count | 50000 |
settable | The most results hakrawler accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. |
hakrawlerParallelism |
1â10 threads | 5 |
settable | How many hakrawler operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
hakrawlerThreads |
1â20 threads | 5 |
settable | How many hakrawler operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. Capped to the engagement rate ceiling at scan start. |
hakrawlerTimeout |
5â86400 seconds | 30 |
settable | How long hakrawler may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
phase http_probe · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
httpProbeAiFaviconHashEnabled |
true / false | true |
settable | Whether HTTP probe AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
httpProbeAiHeaderScanEnabled |
true / false | true |
settable | Whether HTTP probe AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
httpProbeAiTitleDetectionEnabled |
true / false | true |
settable | Whether HTTP probe AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
httpProbeAiWappalyzerEnabled |
true / false | true |
settable | Whether HTTP probe AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
httpxJevPageType |
true / false | false |
settable | Labels each probed URL with TypeSafe AI Jev (model jev-1.13.0): false labels nothing, true asks Jev whether a page is a login wall, a parked domain, a default install page, a placeholder or an error page, and calls it an app otherwise. A deterministic pre-filter supplies the label for any page Jev gives no answer for. Takes effect only when aiInPipeline is true, and aiInPipeline does not reset it. Needs a Jev token on the project owner's account; without one only the pre-filter labels. The label is written onto the page's Endpoint in the graph (page_class) and changes nothing about what is scanned. No traffic to the target: at most 300 distinct pages per scan, within 60 seconds. |
phase http_probe · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
httpxCustomHeaders |
http_header |
(empty) | settable | Extra headers sent with every httpx request. Validated: a header may not contain CR or LF, and Host, Authorization, Cookie and Proxy-* are refused, because each would change where the request goes or what it carries rather than annotating it. |
httpxDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
projectdiscovery/httpx:latest |
settable | The container image spawned for httpx. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
httpxEnabled |
true / false | true |
settable | Whether httpx runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
httpxFilterCodes |
status_codes |
(empty) | settable | Hide responses with these status codes |
httpxFollowRedirects |
true / false | true |
settable | Follows a redirect to its destination rather than recording the redirect itself. |
httpxIncludeResponse |
true / false | true |
settable | Store full response body |
httpxIncludeResponseHeaders |
true / false | true |
settable | Records the full response headers, which later checks read and which make the output much larger. |
httpxMatchCodes |
status_codes |
(empty) | settable | Only show responses with these status codes |
httpxMaxRedirects |
1â50 count | 10 |
settable | Maximum redirect chain depth to prevent loops |
httpxPaths |
free_text |
(empty) | settable | Additional URL paths to probe |
httpxProbeAsn |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeCdn |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeCname |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeContentLength |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeContentType |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeFavicon |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. In stealth mode this is forced to false. |
httpxProbeHash |
free_text |
sha256 |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeIp |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeJarm |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. In stealth mode this is forced to false. |
httpxProbeLineCount |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeResponseTime |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeServer |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeStatusCode |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeTechDetect |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeTitle |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeTlsGrab |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeTlsInfo |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxProbeWordCount |
true / false | true |
settable | Whether httpx records this attribute while probing. Each probe adds work per host, and several add requests beyond the first, so the set of probes decides both how much the scan learns and how loud it is. |
httpxRateLimit |
1â100000 rps | 50 |
settable | Requests per second httpx sends while probing. Capped by the engagement ceiling at scan start. Capped to the engagement rate ceiling at scan start. In stealth mode this is forced to 2. |
httpxRetries |
0â10 count | 2 |
settable | How many times httpx retries a failed request before giving up on it. |
httpxThreads |
1â200 threads | 50 |
settable | How many httpx operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
httpxTimeout |
1â86400 seconds | 10 |
settable | How long httpx may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
hydraConnectionTimeout |
5â120 seconds | 32 |
settable | How long hydra may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
hydraEnabled |
true / false | true |
settable | Whether hydra runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
hydraExtraChecks |
free_text |
nsr |
settable | Additional protocol-specific checks run alongside the credential attempts. |
hydraMaxWordlistAttempts |
1â10 count | 3 |
settable | How many wordlist strategies to try before giving up. |
hydraStopOnFirstFound |
true / false | true |
settable | Stop immediately when valid credentials are found. |
hydraThreads |
1â64 threads | 16 |
settable | How many hydra operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
hydraVerbose |
true / false | true |
settable | Show each login attempt in output for progress tracking. |
hydraWaitBetweenConnections |
0â300 threads | 0 |
settable | How many hydra operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
deserializationExecGadgetsEnabled |
true / false | false |
settable | Whether the Insecure Deserialization skill may escalate a confirmed sink to one code-execution gadget (Step 7). Off by default. Its proof travels over the out-of-band callback, so it also needs the OOB callback on; without it the Step 7 block is left out of the prompt and the agent stops at the confirmed sink. |
deserializationFindSinksEnabled |
true / false | true |
settable | Whether the Insecure Deserialization skill may sweep the target's inputs for sinks recon never flagged. When off, the agent only confirms the candidates the serialized-object scan wrote to the graph. |
deserializationOobCallbackEnabled |
true / false | true |
settable | Whether the Insecure Deserialization skill may confirm a sink with the out-of-band interactsh oracle, which makes the target look up a domain registered on the OOB provider. When off, the setup block is left out of the prompt and the agent confirms through the error and timing channels only, never through external callback infrastructure. |
deserializationOobProvider |
hostname |
oast.fun |
settable | interactsh server the deserialization oracle registers its callback domain on. Use a self-hosted instance if oast.fun is blocked or a third-party callback service is not allowed. Empty means oast.fun. Only used when the OOB callback is on. A Rules of Engagement document may never set this. |
deserializationPharEnabled |
true / false | false |
settable | Whether the Insecure Deserialization skill may use PHP PHAR polyglots, which means uploading a crafted file to the target. Off by default. Only used when php is among the runtimes. |
deserializationRuntimes |
free_text |
java,java_typed,python,php,node,ruby,dotnet |
settable | Comma-separated runtimes whose oracle blocks ship in the Insecure Deserialization prompt: java, java_typed, python, php, node, ruby, dotnet. Unknown names are ignored; an empty list ships every runtime. |
deserializationTimingEnabled |
true / false | true |
settable | Whether the Insecure Deserialization skill may confirm a sink through response timing, which holds a request open on the target until a delay or timeout ends. Turn it off on fragile targets or when the rules of engagement forbid anything that ties up a server worker. |
phase js_recon · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
jsReconAiSdkDetectionEnabled |
true / false | true |
settable | Whether JS recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
jsReconConcurrency |
1â30 threads | 10 |
settable | How many JS recon operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
jsReconCustomEndpointKeywords |
free_text |
(empty) | closed | The uploaded custom endpoint-keyword list. Written only by the custom-files endpoint. Written only by /api/js-recon/[projectId]/custom-files. |
jsReconCustomFrameworks |
free_text |
(empty) | closed | The uploaded custom framework-signature list. Written only by the custom-files endpoint. Written only by /api/js-recon/[projectId]/custom-files. |
jsReconCustomPackages |
free_text |
(empty) | closed | The uploaded custom package list. Written only by the custom-files endpoint. Written only by /api/js-recon/[projectId]/custom-files. |
jsReconCustomPatterns |
free_text |
(empty) | closed | The uploaded custom secret-pattern file. Written only by the custom-files endpoint, which also places it on disk. Written only by /api/js-recon/[projectId]/custom-files. |
jsReconCustomSourcemapPaths |
free_text |
(empty) | closed | The uploaded custom source-map path list. Written only by the custom-files endpoint. Written only by /api/js-recon/[projectId]/custom-files. |
jsReconDependencyCheck |
true / false | true |
settable | Checks the packages a bundle names against known-vulnerable versions. |
jsReconDevComments |
true / false | true |
settable | Extract developer comments |
jsReconDomSinks |
true / false | true |
settable | Detect DOM XSS sinks |
jsReconEnabled |
true / false | false |
settable | Whether JS recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
jsReconEndpointAcceptStatus |
status_codes |
[200,201,204,301,302,307,308,401,403,405] |
settable | HTTP status codes treated as live during endpoint verification An empty value is replaced by the default rather than honoured. |
jsReconEndpointConcurrency |
1â20 threads | 10 |
settable | How many JS recon operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
jsReconEndpointCustomHeaders |
http_header |
(empty) | settable | Header lines used when verifying extracted endpoints |
jsReconExtractEndpoints |
true / false | true |
settable | Extracts API endpoints referenced in JavaScript, which is the main reason to read it at all. |
jsReconFrameworkDetect |
true / false | true |
settable | Identifies the framework a bundle was built with, which decides which later checks apply. |
jsReconIncludeArchivedJs |
true / false | true |
settable | Includes JavaScript recovered from web archives, which can reveal endpoints the live site no longer exposes. |
jsReconIncludeChunks |
true / false | true |
settable | Includes lazily-loaded chunks, which multiplies the file count on a modern bundler's output. In stealth mode this is forced to false. |
jsReconIncludeFrameworkJs |
true / false | true |
settable | Includes framework bundles, which are large, mostly third-party, and occasionally where a key is embedded. In stealth mode this is forced to false. |
jsReconMaxFiles |
10â10000 count | 10000 |
settable | The most results JS recon accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. In stealth mode this is forced to 50. |
jsReconMinConfidence |
free_text |
low |
settable | "low", "medium", "high" |
jsReconRegexPatterns |
true / false | true |
settable | Additional regular expressions applied to retrieved JavaScript, on top of the shipped set. |
jsReconSourceMaps |
true / false | true |
settable | Retrieves source maps when they are published, which recovers the original source rather than the bundle. |
jsReconStandaloneCrawlDepth |
0â50 depth | 3 |
settable | How many links deep a standalone JS recon run crawls from its seed. |
jsReconStandaloneCrawlScope |
free_text |
subdomain |
settable | How far a standalone JS recon run may crawl from its seed: same host, same domain, or anywhere. |
jsReconTimeout |
60â86400 seconds | 900 |
settable | How long JS recon may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
jsReconUploadedFiles |
free_text |
(empty) | closed | JavaScript files uploaded for analysis rather than fetched from the target. Written only by the upload endpoint, which also places each file on disk. Written only by /api/js-recon/[projectId]/upload. |
jsReconValidateEndpoints |
true / false | false |
settable | Probe extracted endpoints and drop confirmed-dead ones before graph ingestion (default off) |
jsReconValidateKeys |
true / false | true |
settable | Validate discovered API keys In stealth mode this is forced to false. |
jsReconValidationTimeout |
1â30 seconds | 5 |
settable | How long JS recon may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
phase js_recon · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
jsluiceConcurrency |
1â20 threads | 5 |
settable | How many jsluice operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
jsluiceEnabled |
true / false | true |
settable | Whether jsluice runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
jsluiceExcludePatterns |
free_text |
(empty) | settable | Deny-list patterns. Extensions like ".js" match the path suffix only; everything else is a substring match against the URL path and query. An empty value is replaced by the default rather than honoured. |
jsluiceExtractSecrets |
true / false | true |
settable | Whether jsluice reports secret-shaped strings it finds in JavaScript. A feature toggle, not a credential: it decides what the tool looks for, and any secret found belongs to the target. |
jsluiceExtractUrls |
true / false | true |
settable | Extracts URLs jsluice finds in JavaScript. |
jsluiceMaxFiles |
1â10000 count | 10000 |
settable | The most results jsluice accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. In stealth mode this is forced to 20. |
jsluiceParallelism |
1â10 threads | 5 |
settable | How many jsluice operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
jsluiceTimeout |
30â86400 seconds | 300 |
settable | How long jsluice may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
jsluiceVerifyAcceptStatus |
status_codes |
[200,201,301,302,307,308,401,403] |
settable | HTTP status codes treated as "live" by the verifier An empty value is replaced by the default rather than honoured. |
jsluiceVerifyDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
projectdiscovery/httpx:latest |
settable | The container image spawned for jsluice. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
jsluiceVerifyRateLimit |
1â1000 rps | 50 |
settable | Requests per second jsluice sends. Capped to the engagement ceiling at scan start, so a value above the ceiling is rewritten rather than refused. Capped to the engagement rate ceiling at scan start. |
jsluiceVerifyThreads |
1â500 threads | 50 |
settable | How many jsluice operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
jsluiceVerifyTimeout |
1â60 seconds | 5 |
settable | How long jsluice may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
jsluiceVerifyUrls |
true / false | true |
settable | After extraction, run extracted URLs through httpx and a deny-list filter so only live, non-asset URLs reach the graph. Disable to keep all extracted URLs (legacy behavior). |
phase resource_enum · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
katanaConcurrency |
1â50 threads | 15 |
settable | How many katana operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
katanaCustomHeaders |
http_header |
(empty) | settable | Custom HTTP headers for crawler |
katanaDepth |
1â10 depth | 2 |
settable | How many links deep the crawl goes from each seed URL. In stealth mode this is forced to 1. |
katanaDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
projectdiscovery/katana:latest |
settable | The container image spawned for katana. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
katanaEnabled |
true / false | true |
settable | Whether katana runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
katanaExcludePatterns |
free_text |
(empty) | settable | Regex patterns to exclude from crawling |
katanaJsCrawl |
true / false | true |
settable | Renders JavaScript with a headless browser, which finds routes a static crawl cannot and costs far more per page. In stealth mode this is forced to false. |
katanaMaxUrls |
1â1000000 count | 300000 |
settable | The crawl stops after this many URLs, which is what bounds a crawl on a large site. In stealth mode this is forced to 50. |
katanaParallelism |
1â50 threads | 8 |
settable | How many katana operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
katanaParamsOnly |
true / false | false |
settable | Only extract parameterized URLs |
katanaRateLimit |
1â100000 rps | 50 |
settable | Requests per second katana sends. Capped to the engagement ceiling at scan start, so a value above the ceiling is rewritten rather than refused. Capped to the engagement rate ceiling at scan start. In stealth mode this is forced to 2. |
katanaScope |
free_text |
dn |
settable | Scope filter: "dn" (domain), "rdn" (root domain), etc. A Rules of Engagement document may never set this. |
katanaTimeout |
60â86400 seconds | 3600 |
settable | How long katana may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
phase resource_enum · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
kiterunnerBruteforceMethods |
free_text |
["POST","PUT","DELETE","PATCH"] |
settable | ["GET", "POST", "PUT", "DELETE", "PATCH"] |
kiterunnerConnections |
1â500 threads | 100 |
settable | How many kiterunner operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
kiterunnerDetectMethods |
true / false | true |
settable | Establishes which HTTP methods each discovered route accepts, at the cost of extra requests per route. |
kiterunnerEnabled |
true / false | false |
settable | Whether kiterunner runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
kiterunnerHeaders |
http_header |
(empty) | settable | Add auth tokens for authenticated API scanning |
kiterunnerIgnoreStatus |
free_text |
(empty) | settable | Blacklist: filter out noise from common errors |
kiterunnerMatchStatus |
free_text |
[200,201,204,301,302,401,403,405] |
settable | Whitelist: only show endpoints with these status codes (includes auth-protected) |
kiterunnerMethodDetectionMode |
free_text |
bruteforce |
settable | How kiterunner establishes which HTTP methods a discovered route accepts. |
kiterunnerMethodDetectRateLimit |
1â100000 rps | 50 |
settable | Requests per second the kiterunner method-detection pass sends. Capped by the engagement ceiling at scan start. Capped to the engagement rate ceiling at scan start. |
kiterunnerMethodDetectThreads |
1â500 threads | 25 |
settable | How many kiterunner operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
kiterunnerMethodDetectTimeout |
1â86400 seconds | 5 |
settable | How long kiterunner may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
kiterunnerMinContentLength |
0â100000 count | 0 |
settable | Ignore responses smaller than this (bytes) |
kiterunnerParallelism |
1â5 threads | 3 |
settable | How many kiterunner operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
kiterunnerRateLimit |
1â100000 rps | 100 |
settable | Requests per second kiterunner sends. Capped to the engagement ceiling at scan start, so a value above the ceiling is rewritten rather than refused. Capped to the engagement rate ceiling at scan start. |
kiterunnerScanTimeout |
60â86400 seconds | 1000 |
settable | How long kiterunner may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
kiterunnerThreads |
1â500 threads | 50 |
settable | How many kiterunner operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
kiterunnerTimeout |
1â86400 seconds | 10 |
settable | How long kiterunner may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
kiterunnerWordlists |
free_text |
["routes-large"] |
settable | Wordlists: "routes-small", "routes-large" |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
knockpyReconEnabled |
true / false | true |
settable | Whether knockpy runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
knockpyReconMaxResults |
1â50000 count | 5000 |
settable | Maximum subdomains taken from a knockpy run. In stealth mode this is lowered to at most 100; a quieter value is kept. |
phase port_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
masscanAiPortCatalogEnabled |
true / false | true |
settable | Whether masscan runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
masscanBanners |
true / false | false |
settable | Whether masscan grabs a service banner as well as recording the open port, which turns a SYN scan into a connecting one. |
masscanCustomPorts |
free_text |
(empty) | settable | Overrides Top Ports if set. Use ranges: 8080-8090 |
masscanEnabled |
true / false | true |
settable | Whether masscan runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
masscanExcludeTargets |
free_text |
(empty) | settable | Comma-separated targets to exclude |
masscanRate |
1â100000 rps | 1000 |
settable | Packets per second masscan sends. Masscan is the fastest port scanner here and the one most likely to be noticed; the engagement ceiling caps it at scan start. Capped to the engagement rate ceiling at scan start. |
masscanRetries |
0â10 count | 1 |
settable | How many times masscan retries a failed request before giving up on it. |
masscanTopPorts |
free_text |
1000 |
settable | Use â100â, â1000â, or âfullâ for all 65535 ports |
masscanWait |
0â86400 seconds | 10 |
settable | Wait time in seconds |
phase vuln_scan · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
mitreAutoUpdateDb |
true / false | true |
settable | Whether the MITRE dataset is refreshed before enrichment runs. |
mitreCacheTtlHours |
1â168 count | 24 |
settable | Part of MITRE ATT&CK enrichment, which annotates findings with the technique they correspond to. Enrichment reads existing findings and sends no traffic. |
mitreEnabled |
true / false | true |
settable | Whether mitre runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
mitreEnrichGvm |
true / false | true |
settable | Attaches MITRE ATT&CK technique references to GVM findings. |
mitreEnrichRecon |
true / false | true |
settable | Attaches MITRE ATT&CK technique references to recon findings. |
mitreIncludeCapec |
true / false | true |
settable | Includes the CAPEC attack-pattern reference alongside each technique. |
mitreIncludeCwe |
true / false | true |
settable | Includes the CWE weakness reference alongside each technique. |
phase port_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
naabuCustomPorts |
free_text |
(empty) | settable | Custom port list, e.g. "80,443,8080" |
naabuDisplayCdn |
true / false | true |
settable | Reports CDN-fronted hosts rather than dropping them silently, so the operator can see what was skipped. |
naabuDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
projectdiscovery/naabu:latest |
settable | The container image spawned for naabu. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
naabuEnabled |
true / false | true |
settable | Whether naabu runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
naabuExcludeCdn |
true / false | false |
settable | Skips hosts that resolve to a CDN, where a port result describes the CDN rather than the target. |
naabuPassiveMode |
true / false | false |
settable | Use Shodan InternetDB instead of active scan In stealth mode this is forced to true. |
naabuRateLimit |
1â100000 rps | 1000 |
settable | Packets per second naabu sends, across all hosts combined. The engagement ceiling caps it at scan start, so a value above the ceiling is rewritten rather than refused. Capped to the engagement rate ceiling at scan start. In stealth mode this is forced to 10. |
naabuRetries |
0â10 count | 1 |
settable | How many times naabu retries a failed request before giving up on it. |
naabuScanType |
free_text |
s |
settable | "s" (SYN) or "c" (connect) In stealth mode this is forced to "c". |
naabuSkipHostDiscovery |
true / false | true |
settable | Skips the ping sweep and scans every listed host directly, which is slower but finds hosts that do not answer ICMP. In stealth mode this is forced to true. |
naabuThreads |
1â100 threads | 25 |
settable | How many naabu operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
naabuTimeout |
1000â3600000 milliseconds | 10000 |
settable | How long naabu waits for a port to answer, in MILLISECONDS. At the default of 10000 a full sweep of an unresponsive host is slow; below about 1000 a distant host starts reading as closed. |
naabuTopPorts |
free_text |
1000 |
settable | Top N ports, e.g. "1000" |
naabuVerifyPorts |
true / false | true |
settable | Re-probes each discovered port before reporting it, which removes the false positives a fast SYN scan produces. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
netlasEnabled |
true / false | false |
settable | Whether netlas runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
netlasWorkers |
1â20 threads | 5 |
settable | How many netlas operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
phase port_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
nmapAiVersionRegexEnabled |
true / false | true |
settable | Whether nmap runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
nmapEnabled |
true / false | true |
settable | Whether nmap runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
nmapHostTimeout |
30â86400 seconds | 300 |
settable | How long nmap may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
nmapParallelism |
1â10 threads | 5 |
settable | How many nmap operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
nmapScriptScan |
true / false | true |
settable | Run NSE vuln scripts In stealth mode this is forced to false. |
nmapTimeout |
60â86400 seconds | 600 |
settable | How long nmap may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
nmapTimingTemplate |
free_text |
T3 |
settable | Nmap's timing template, T0 to T5. Higher is faster and noisier; the stealth pass forces T2. Not a wordlist despite once being classified with them. In stealth mode this is forced to "T2". |
nmapVersionDetection |
true / false | true |
settable | Detect service versions |
phase vuln_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
nucleiAiResponseFilter |
true / false | false |
settable | Use AI to classify Nuclei response bodies as WAF/rate-limit block pages when the static keyword list misses (requires aiInPipeline=true). Augments is_false_positive(); kicks in only on suspicious status codes (403/406/418/429/503) so cost stays bounded. Default false. |
nucleiAiTags |
true / false | false |
settable | Use AI to prune the Nuclei tag list based on detected tech stack (requires aiInPipeline=true). Replaces the static nucleiTags list with a tech-aware subset chosen by the LLM at scan time. Default false. |
nucleiAutoUpdateTemplates |
true / false | true |
settable | Whether nuclei refreshes its template set before scanning. It fetches from the public template repository, so it is an egress decision as well as a freshness one. |
nucleiBulkSize |
1â500 threads | 25 |
settable | Number of hosts to process in parallel In stealth mode this is forced to 5. |
nucleiConcurrency |
1â500 threads | 25 |
settable | How many nuclei operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 2. |
nucleiCustomTemplates |
project_file |
(empty) | settable | Custom template paths |
nucleiDastMode |
true / false | false |
settable | Dynamic testing mode In stealth mode this is forced to false. |
nucleiDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
projectdiscovery/nuclei:latest |
settable | The container image spawned for nuclei. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
nucleiEnabled |
true / false | true |
settable | Whether nuclei runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
nucleiExcludeTags |
free_text |
["dos","fuzz"] |
settable | Template tags to exclude, e.g. ["dos", "fuzz"] |
nucleiExcludeTemplates |
free_text |
(empty) | settable | Template paths to exclude |
nucleiFollowRedirects |
true / false | true |
settable | Follows a redirect while running a template rather than matching on the redirect itself. A template that expects its payload to land on the final page needs this; one matching a redirect header does not. |
nucleiHeadless |
true / false | false |
settable | Browser-based testing In stealth mode this is forced to false. |
nucleiInteractsh |
true / false | true |
settable | Out-of-band interaction detection In stealth mode this is forced to false. |
nucleiMaxHostError |
1â10000 count | 30 |
settable | How many errors nuclei tolerates from one host before it stops probing that host (nuclei's -mhe), so one dead host in a large target list cannot soak the whole pass in timeouts. |
nucleiMaxRedirects |
0â50 count | 10 |
settable | Maximum redirect chain to follow |
nucleiMaxRuntime |
600â604800 seconds | 86400 |
settable | Wall-clock ceiling for a single nuclei pass, in seconds (default 24h). A pass that reaches it is stopped, its partial findings are kept, and the run is recorded as truncated. Not a rate and has no unlimited value; raise it (up to 7 days) rather than disabling it. |
nucleiNewTemplatesOnly |
true / false | false |
settable | Restricts the run to templates added since the last template update, for a fast re-check. |
nucleiRateLimit |
1â100000 rps | 100 |
settable | Requests per second nuclei sends, across all templates and all targets combined rather than per template. Capped by the engagement ceiling at scan start. Capped to the engagement rate ceiling at scan start. In stealth mode this is forced to 5. |
nucleiRetries |
0â10 count | 1 |
settable | How many times nuclei retries a failed request before giving up on it. |
nucleiScanAllIps |
true / false | false |
settable | Scans every IP a host resolves to rather than the first, which matters behind round-robin DNS. |
nucleiSelectedCustomTemplates |
project_file_name |
(empty) | settable | Which of this project's uploaded custom templates to run. Each entry is a path a scan container opens, so it is validated against the project's own upload directory. |
nucleiSeverity |
info, low, medium, high, critical, unknown
|
["critical","high","medium","low"] |
settable | Severity filter: "critical", "high", "medium", "low" |
nucleiSystemResolvers |
true / false | true |
settable | Uses the container's own DNS resolvers rather than nuclei's defaults. |
nucleiTags |
free_text |
["cve","xss","sqli","rce","lfi","ssrf","xxe","ssti"] |
settable | Template tags to include |
nucleiTagsAiUseJev |
true / false | false |
settable | Engine for the Nuclei tag selector: false uses the LLM in aiPipelineModel, true uses TypeSafe AI Jev (model jev-1.13.0). Takes effect only when aiInPipeline is true, and aiInPipeline does not reset it. Needs a Jev token on the project owner's account; without one the hook uses its static fallback. |
nucleiTakeoverRunTimeout |
1â86400 seconds | 1800 |
settable | How long nuclei may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
nucleiTakeoversEnabled |
true / false | true |
settable | Whether nuclei runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
nucleiTemplates |
free_text |
(empty) | settable | Specific template paths to include |
nucleiTimeout |
1â86400 seconds | 10 |
settable | Per-request timeout, in seconds: how long nuclei waits for one template's HTTP request (nuclei's -timeout), NOT a cap on the whole run. The wall-clock ceiling for a pass is nucleiMaxRuntime. |
phase resource_enum · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
openapiAutoDiscover |
true / false | false |
settable | Discover specifications from crawl results and configured paths on known in-scope base URLs. Opt-in and disabled in stealth mode. In stealth mode this is forced to false. |
openapiDiscoveryPaths |
url_path_list |
["/openapi.json","/openapi.yaml","/swagger.json","/swagger.yaml","/v3/api-docs", |
settable | Paths probed for OpenAPI documents on every in-scope origin during auto-discovery: at most 200, each starting with /, without whitespace, a query or a fragment. A path that breaks those rules is refused at the write and skipped at scan time without dropping the others. Empty disables common-path probes. A Rules of Engagement document may never set this. In stealth mode this is forced to []. |
openapiEnabled |
true / false | true |
settable | Whether to import declared API operations from OpenAPI documents. Fetches specifications but never calls declared operations. In stealth mode this is forced to false. |
openapiMaxDocuments |
1â200 count | 50 |
settable | Maximum number of specification documents attempted per target run. In stealth mode this is lowered to at most 1; a quieter value is kept. |
openapiSources |
json_object |
[] |
closed | Project-specific specification sources. URLs may contain credentials; excluded from MCP reads and writes and reusable presets. Withheld from every read on the MCP surface. In stealth mode this is forced to []. |
openapiTimeout |
1â60 seconds | 10 |
settable | Per-request timeout in seconds when fetching a specification or same-origin reference. In stealth mode this is lowered to at most 10; a quieter value is kept. |
phase http_probe · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
originDiscoveryEnabled |
true / false | false |
settable | Whether Origin discovery runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
originDiscoveryKeyless |
true / false | true |
settable | Non-CDN subdomains + SPF/MX + crt.sh (no key needed) |
originDiscoveryMaxCandidates |
1â200 count | 25 |
settable | The most results Origin discovery accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. |
originDiscoveryMaxSearchCalls |
0â500 count | 50 |
settable | Per-scan budget of keyed scanner-search calls |
originDiscoveryPassiveDns |
true / false | true |
settable | SecurityTrails + ViewDNS DNS history |
originDiscoveryScanners |
true / false | true |
settable | Favicon/cert pivots via Shodan/Censys/FOFA/ZoomEye/OTX/VirusTotal (each uses its own key) In stealth mode this is forced to false. |
originDiscoveryThreshold |
0â100 percent | 60 |
settable | Weighted-similarity confidence (0-100) needed to confirm an origin |
originDiscoveryTimeout |
1â60 seconds | 10 |
settable | How long Origin discovery may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
originDiscoveryWorkers |
1â30 threads | 10 |
settable | How many Origin discovery operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
osintEnrichmentEnabled |
true / false | false |
settable | Whether OSINT enrichment runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
phase resource_enum · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
paramspiderEnabled |
true / false | false |
settable | Whether paramspider runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to true. |
paramspiderPlaceholder |
free_text |
FUZZ |
settable | Replacement value for parameter values (e.g., FUZZ for fuzzing tools) |
paramspiderTimeout |
10â86400 seconds | 120 |
settable | How long paramspider may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
paramspiderWorkers |
1â10 threads | 8 |
settable | How many paramspider operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
pathTraversalArchiveExtractionEnabled |
true / false | false |
settable | Whether Path traversal runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
pathTraversalOobCallbackEnabled |
true / false | true |
settable | Whether Path traversal runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
pathTraversalOobProvider |
free_text |
oast.fun |
settable | interactsh-client server. Use a self-hosted instance if oast.fun is blocked. Only used when the OOB callback workflow is enabled. A Rules of Engagement document may never set this. |
pathTraversalPayloadReferenceEnabled |
true / false | true |
settable | Whether Path traversal runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
pathTraversalPhpWrappersEnabled |
true / false | true |
settable | Whether Path traversal runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
pathTraversalRequestTimeout |
1â120 seconds | 10 |
settable | How long Path traversal may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
phishingSmtpConfig |
free_text |
(empty) | settable | Free-text SMTP settings injected into the agent prompt for social engineering email delivery. The agent reads this as-is when the social engineering simulation skill is active. A Rules of Engagement document may never set this. Withheld from every read on the MCP surface. |
standalone · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
scanModules |
domain_discovery, port_scan, http_probe, resource_enum, vuln_scan, js_recon
|
["domain_discovery","port_scan","http_probe","resource_enum","vuln_scan"] |
settable | Pipeline phases to run. Values: "domain_discovery", "port_scan", "http_probe", "resource_enum", "vuln_scan", "js_recon" |
stealthMode |
true / false | false |
settable | The engagement's PASSIVE switch. On, every recon tool is forced to its passive, low-noise profile and the noisiest ones are switched off outright (apply_stealth_overrides in recon/project_settings.py, driven by the registry's own stealth profile). This is the setting a rule of engagement means by "passive only", "no active scanning", "observation only" or "do not send probes to the target": it is one switch rather than the dozens of per-tool flags such a rule would otherwise have to name. |
updateGraphDb |
true / false | true |
closed | Whether results are stored in the graph database. Off, the scan still runs and still reaches the target, and writes nothing, so every later read reports "nothing found" where the truth is "nothing was written". That is the scanned-and-clean versus never-scanned confusion, so it is a debug switch rather than a pipeline parameter. |
useBruteforceForSubdomains |
true / false | false |
settable | Enable DNS brute-force for subdomain discovery In stealth mode this is forced to false. |
standalone · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
aiInPipeline |
true / false | false |
settable | Master toggle that enables AI-powered enhancements across all recon modules that support them. Cascades on/off to per-tool AI flags (ffufAiExtensions, nucleiAiTags, wafAiClassifier, nucleiAiResponseFilter, takeoverAiClassifier). |
aiPipelineModel |
free_text |
claude-opus-4-6 |
settable | Model identifier for the AI hooks in recon (e.g. "claude-opus-4-6", "claude-haiku-4-5-20251001"). Independent of agentOpenaiModel. A Rules of Engagement document may never set this. |
phase port_scan · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
portScanAiPortCatalogEnabled |
true / false | true |
settable | Whether Port scan AI catalog runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
standalone · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
activationStartedAt |
free_text |
â | closed | When the current version activation took the lock. Used to detect a stale lock left by a crashed activation. |
activationState |
free_text |
idle |
closed | The version-activation lock. Taken while a saved scan version rewrites the graph and released afterwards; it is a lock flag the application owns, not a setting. |
activationVersionId |
free_text |
â | closed | The scan version currently being activated. Written by the activation state machine. |
createdAt |
free_text |
null |
closed | When the project row was created. Written by the database. |
createdById |
free_text |
â | closed | The user who created the project. Populated going forward only; may be null on older rows. |
description |
free_text |
â | settable | Free-text notes about the engagement, shown beside the project name. A Rules of Engagement document may never set this. |
id |
free_text |
null |
closed | The project's primary key. Row identity, not configuration. |
loadedPreset |
â | â | closed | The name of the preset last loaded into this project and a fingerprint of the settings it produced. The UI shows the preset as applied only while the saved settings still match the fingerprint. Written by the load path, not configured directly. |
mcpKaliExecEnabled |
true / false | true |
closed | Whether MCP tokens on this project may run shell commands in the Kali sandbox. It decides what a credential can do rather than how the pipeline scans, so it is closed on the MCP surface: a token that could set it would be granting itself shell access. |
name |
free_text |
â | settable | The project's display name. Ordinary metadata, shown in every list and header. A Rules of Engagement document may never set this. |
reconPresetId |
free_text |
â | closed | The preset last applied to this project, recorded so the UI can show which one it came from. Written by the apply path, not configured directly. |
updatedAt |
free_text |
â | closed | When the project row last changed. Written by the database on every update. |
updatedById |
free_text |
â | closed | The user who last updated the project. Populated going forward only; may be null on older rows. |
userId |
free_text |
â | closed | The owning user. Writing it reassigns the project to someone else and configures nothing, which is why it is closed on every surface. Withheld from every read on the MCP surface. |
phase domain_discovery · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
purednsDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
frost19k/puredns:latest |
settable | The container image spawned for puredns. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
purednsEnabled |
true / false | true |
settable | Whether puredns runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
purednsRateLimit |
0â100000 rps | 0 |
settable | DNS queries per second puredns sends to its resolvers. ZERO MEANS UNLIMITED, so 0 is the most aggressive value available and not the safest. Under an engagement ceiling a 0 here is rewritten to the ceiling at scan start. 0 means UNLIMITED here, so it is the fastest value and not the safest. Capped to the engagement rate ceiling at scan start. |
purednsSkipValidation |
true / false | false |
settable | Skips the wildcard-validation pass, which is much faster and lets wildcard DNS flood the results. |
purednsThreads |
0â1000 threads | 0 |
settable | How many puredns operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
purednsWildcardBatch |
0â100000 count | 0 |
settable | Wildcard filtering batch size |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
rceAggressivePayloads |
true / false | false |
settable | Whether the RCE technique uses payloads that can leave a running process or a changed file behind, rather than proof-of-concept ones that only echo. |
rceDeserializationEnabled |
true / false | true |
settable | Whether rce runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
rceOobCallbackEnabled |
true / false | true |
settable | Whether rce runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
phase resource_enum · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
resourceEnumAiClassifierEnabled |
true / false | true |
settable | Whether Resource enum AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
resourceEnumAiParamInjectableFlagEnabled |
true / false | true |
settable | Whether Resource enum AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
resourceEnumAiPathClassifierEnabled |
true / false | true |
settable | Whether Resource enum AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
resourceEnumAiRagPathFlagEnabled |
true / false | true |
settable | Whether Resource enum AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
resourceEnumAiToolArgPathEnabled |
true / false | true |
settable | Whether Resource enum AI hints runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
resourceEnumJevToolHealth |
true / false | false |
settable | Asks TypeSafe AI Jev (model jev-1.13.0) about a collection tool's empty result whose error output the deterministic checks cannot place: false asks nothing, true asks whether it describes a transient failure that a second run could fix. The deterministic checks always run and record such a result as a coverage gap whatever this says. Takes effect only when aiInPipeline is true, and aiInPipeline does not reset it. Needs a Jev token on the project owner's account. At most 20 questions per run, with header values redacted. The verdict (transient or permanent, with its confidence) is kept in the recon output next to the coverage gap; no tool is re-run. |
standalone · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
roeAllowAccountLockout |
true / false | false |
settable | Whether a technique that can lock a real account out is permitted. Off keeps credential attacks to a single attempt per account and withholds the lockout-capable skills from the agent's options. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeAllowDataExfiltration |
true / false | false |
closed | Whether a finding may be proven by moving data off the target. Part of the engagement RECORD: it is injected into the agent's prompt and read by a model, and no code refuses an exfiltration path on it. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeAllowDos |
true / false | false |
settable | Whether denial-of-service techniques are permitted. Off means the DoS path is refused before it runs and the DoS skill is withheld from the agent's options, whatever their own toggles say. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeAllowPhysicalAccess |
true / false | false |
closed | Whether the engagement covers physical access. Recorded for the report; the pipeline has no physical capability. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeAllowProductionTesting |
true / false | true |
closed | Whether production systems are in scope. Off is a statement the operator makes about the estate, not something the scanner can verify, so it constrains what an agent may choose rather than what a tool can reach. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeAllowSocialEngineering |
true / false | false |
settable | Whether techniques aimed at people rather than systems are permitted. Off withholds the social-engineering skills from the agent's options. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeClientContactEmail |
free_text |
(empty) | closed | Where to reach the client contact by email. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. Withheld from every read on the MCP surface. |
roeClientContactName |
free_text |
(empty) | closed | The named client contact for this engagement. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. Withheld from every read on the MCP surface. |
roeClientContactPhone |
free_text |
(empty) | closed | Where to reach the client contact by phone. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. Withheld from every read on the MCP surface. |
roeClientName |
free_text |
(empty) | closed | The client the engagement is for, as it should appear in the report. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. Withheld from every read on the MCP surface. |
roeComplianceFrameworks |
PCI-DSS, HIPAA, SOC2, GDPR, ISO27001
|
(empty) | closed | Compliance frameworks the engagement is conducted under, recorded for the report. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeCriticalFindingNotify |
true / false | true |
closed | Whether a critical finding triggers an immediate notification rather than waiting for the report. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeDataRetentionDays |
0â3650 count | 90 |
closed | How many days findings and captured data may be kept after the engagement ends. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeDocumentData |
free_text |
â | closed | The uploaded Rules of Engagement document itself, stored so the engagement carries its own authority. A Bytes column written only by the project create and import endpoints, which receive the file. The MCP surface records the document's SHA-256 through attach_engagement_authorization instead; it never carries the bytes. Written only by POST /api/projects, POST and DELETE /api/projects/[id]/roe. Withheld from every read on the MCP surface. |
roeDocumentMimeType |
free_text |
(empty) | closed | The media type of the uploaded Rules of Engagement document. Written only by POST /api/projects, POST and DELETE /api/projects/[id]/roe. Withheld from every read on the MCP surface. |
roeDocumentName |
free_text |
(empty) | closed | The filename of the uploaded Rules of Engagement document. Written only by POST /api/projects, POST and DELETE /api/projects/[id]/roe. Withheld from every read on the MCP surface. |
roeEmergencyContact |
free_text |
(empty) | closed | Who to reach out of hours if a scan causes an incident. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. Withheld from every read on the MCP surface. |
roeEnabled |
true / false | false |
closed | DERIVED, never written. Engagement limits apply when there is a limit to apply: a non-zero roeGlobalMaxRps, OR a non-empty roeExcludedHosts, OR roeTimeWindowEnabled. The column is kept so old rows and old exports still load, and every service computes the value through recon_settings.engagement.derive_roe_enabled instead of reading it. A writable master switch would be a bypass shipped as a checkbox: one write of false and the ceiling, the exclusions and the window all stop applying at once while every other field still shows its configured value. An engagement LIMIT: enforced at scan start whatever tuning says. DERIVED, never written. |
roeEngagementEndDate |
free_text |
(empty) | closed | The last date the engagement authorises any activity. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeEngagementStartDate |
free_text |
(empty) | closed | The first date the engagement authorises any activity. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeEngagementType |
external, internal, web_app, api, mobile, physical, social_engineering, red_team
|
external |
closed | How the engagement is classified in the report: pentest, bug bounty, red team and so on. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeExcludedHostReasons |
free_text |
(empty) | settable | Why each excluded host is excluded, parallel to roeExcludedHosts. Read by the report; it does not itself exclude anything. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeExcludedHosts |
free_text |
(empty) | settable | Hosts that must never be touched even though they fall inside the target scope. Each entry is an exact host or IP; a domain, which also excludes its subdomains; *.domain, which excludes its subdomains only; or a CIDR. Case, port, scheme, path and a trailing dot are ignored. Enforced in three places in recon/main.py: expanded IPs, discovered subdomains and the target domain itself. A non-empty list is one of the three things that make the engagement limits live at all. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeForbiddenCategories |
brute_force, dos, social_engineering, physical, exploitation
|
(empty) | settable | Technique categories the agent may not run on this engagement. Each token is expanded to the tools that perform it and refused before the tool executes (CATEGORY_TOOL_MAP in agentic/orchestrator_helpers/nodes/execute_plan_node.py), and the list is also withheld from the classifier's options. What each token covers: brute_force is any credential guessing, including brute forcing, password spraying and credential stuffing; dos is anything aimed at availability, including denial of service, resource exhaustion and volumetric or high-volume testing; social_engineering is anything aimed at a person rather than a system, including phishing, vishing, smishing and pretexting; physical is physical premises, hardware or tailgating; exploitation is taking a confirmed finding further than proving it. The vocabulary is closed because the gate matches these tokens EXACTLY: a free-text category such as "Denial of Service" reaches the agent's prompt as advice and never reaches the gate, so the refusal the UI promises silently does not happen. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeForbiddenTools |
cve_intel, execute_amass, execute_arjun, execute_code, execute_curl, execute_ffuf, execute_gau, execute_guarddog, execute_httpx, execute_hydra, execute_jsluice, execute_katana, execute_naabu, execute_nmap, execute_nuclei, execute_osv_scanner, execute_playwright, execute_subfinder, execute_wpscan, google_dork, kali_shell, metasploit_console, msf_restart, proxy_brain, query_graph, shodan, tradecraft_lookup, web_search
|
(empty) | settable | Tools the agent may not run on this engagement, by name, whatever their own enable flag says. Refused before the tool executes, in agentic/orchestrator_helpers/nodes/execute_plan_node.py. The vocabulary is closed to the agent's real tool names because that gate is an exact string match: a near-miss like "hydra" for execute_hydra never matches, and the tool runs with the ban recorded and unenforced. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeGlobalMaxRps |
0â10000 count | 0 |
settable | The engagement's request-rate ceiling, in requests per second. Every per-tool rate is capped to it at scan start, including the ones whose own value means 'unlimited'. ZERO MEANS NO CEILING, so this at 0 is not a slow engagement, it is an unlimited one. A non-zero value is also one of the three things that make the engagement limits live at all. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeIncidentProcedure |
free_text |
(empty) | closed | What to do if the engagement causes an outage or a security incident. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeMaxSeverityPhase |
informational, exploitation, post_exploitation
|
post_exploitation |
settable | The most severe phase the engagement permits, which bounds how far an attack chain may be taken: informational, exploitation or post_exploitation. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeNotes |
free_text |
(empty) | closed | Free-text engagement notes that did not fit another field. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeParsedJson |
json_object |
â | closed | The structured form extracted from the uploaded document, which populated the fields above. Written only by POST /api/projects, POST and DELETE /api/projects/[id]/roe. Withheld from every read on the MCP surface. |
roeRawText |
free_text |
(empty) | closed | The Rules of Engagement document as plain text, kept so the report can quote it. Written only by POST /api/projects, POST and DELETE /api/projects/[id]/roe. Withheld from every read on the MCP surface. |
roeRequireDataEncryption |
true / false | true |
closed | Whether engagement data must be encrypted at rest. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeSensitiveDataHandling |
no_access, prove_access_only, limited_collection, full_access
|
no_access |
closed | The agreed handling rule for sensitive data encountered during the engagement. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeStatusUpdateFrequency |
daily, weekly, on_finding, none
|
daily |
closed | How often the client expects a progress update during the engagement. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeThirdPartyProviders |
free_text |
(empty) | closed | Third-party providers hosting in-scope assets, who may need their own notification. Part of the engagement RECORD. A person writes it, a model reads it, nothing enforces it; the MCP surface never touches it. |
roeTimeWindowDays |
free_text |
["monday","tuesday","wednesday","thursday","friday"] |
settable | Days of the week on which scanning is permitted, lower-case English names. Empty means every day, once the window is switched on. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeTimeWindowEnabled |
true / false | false |
settable | Whether scanning is restricted to an agreed time window. The recon pipeline and the orchestrator both enforce it, and the orchestrator refuses a scan start outside the window with HTTP 403 rather than queueing it. Switching it on is one of the three things that make the engagement limits live at all. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeTimeWindowEndTime |
free_text |
18:00 |
settable | Local end of the permitted scanning window, as HH:MM. An end before the start is read as a window that crosses midnight. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeTimeWindowStartTime |
free_text |
09:00 |
settable | Local start of the permitted scanning window, as HH:MM. An engagement LIMIT: enforced at scan start whatever tuning says. |
roeTimeWindowTimezone |
free_text |
UTC |
settable | The IANA timezone the scanning window's times are read in. An engagement LIMIT: enforced at scan start whatever tuning says. |
phase http_probe · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
securityCheckAdminPortExposed |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
securityCheckBasicAuthNoTls |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckCacheControlMissing |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckCspUnsafeInline |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckDatabaseExposed |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
securityCheckDirectIpHttp |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
securityCheckDirectIpHttps |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
securityCheckDmarcMissing |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckDnssecMissing |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckEnabled |
true / false | true |
settable | Whether Security checks runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
securityCheckInsecureFormAction |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckIpApiExposed |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckKubernetesApiExposed |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
securityCheckLoginNoHttps |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckMaxWorkers |
1â50 threads | 10 |
settable | How many security checks run concurrently. |
securityCheckMissingCoep |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckMissingCoop |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckMissingCorp |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckMissingPermissionsPolicy |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckMissingReferrerPolicy |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckNoRateLimiting |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
securityCheckRedisNoAuth |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
securityCheckSessionNoHttponly |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckSessionNoSecure |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckSmtpOpenRelay |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
securityCheckSpfMissing |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckTimeout |
1â86400 seconds | 10 |
settable | How long Security checks may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
securityCheckTlsExpired |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckTlsExpiringSoon |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckTlsExpiryDays |
1â365 count | 30 |
settable | How many days before expiry a certificate starts being reported as expiring soon. |
securityCheckTlsHostnameMismatch |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckTlsSelfSigned |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckTlsWeakCipher |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckTlsWeakVersion |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckTlsWildcardOverbroad |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. |
securityCheckWafBypass |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
securityCheckZoneTransfer |
true / false | true |
settable | Whether this individual check runs during the security-check pass. Each check is one condition tested against what the earlier phases already found; turning it off removes that finding class without affecting the rest. In stealth mode this is forced to false. |
phase js_recon · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
serializedScanEnabled |
true / false | false |
settable | Whether the serialized-object scan runs. It is passive and in-memory: it scans the response headers, Set-Cookie, enumerated parameters and crawled form fields the pipeline already holds for serialized-object signatures (Java, PHP, Python, .NET, Ruby, Hessian, polymorphic JSON/XML/YAML), never deserializes, and writes one info-severity :Vulnerability candidate per sink and format for the agent's deserialization skill to confirm out of band. |
serializedScanJevRank |
true / false | false |
settable | Assesses the serialized-object candidates with TypeSafe AI Jev (model jev-1.13.0): false leaves them as the deterministic signatures flagged them, true asks Jev, per distinct blob, which serialization format it is and how likely it is to be an attacker-reachable sink, writes both onto the candidate (deser_jev_format, deser_jev_exploitability) and orders the candidates so the agent's deserialization skill confirms the most reachable first. Jev sees the blob's evidence only, never the format the signatures matched. It never drops a candidate and never changes the format the signatures matched. Takes effect only when aiInPipeline and serializedScanEnabled are both true, and aiInPipeline does not reset it. Needs a Jev token on the project owner's account; without one, or for a blob Jev cannot answer, the candidates stand exactly as the signatures flagged them. No traffic to the target: at most 200 distinct blobs per scan, request-side ones first, within a 60-second budget checked between calls. |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
ssrfCloudMetadataEnabled |
true / false | true |
settable | Whether ssrf runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
ssrfCloudProviders |
free_text |
aws,gcp,azure,digitalocean,alibaba |
settable | Comma-separated cloud providers to include in the metadata-pivots section. Filters which provider endpoint tables ship in the prompt. Ignored when cloud metadata is disabled. |
ssrfCustomInternalTargets |
free_text |
(empty) | settable | One hostname or IP[:port] per line. Injected into the prompt so the agent prioritizes these alongside the generic loopback / RFC1918 sweep. A Rules of Engagement document may never set this. |
ssrfDnsRebindingEnabled |
true / false | true |
settable | Whether ssrf runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
ssrfGopherEnabled |
true / false | true |
settable | Whether ssrf runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
ssrfInternalRanges |
free_text |
127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16 |
settable | Comma-separated CIDR blocks the agent treats as internal. Adjust for orgs using non-standard internal addressing (e.g., 100.64.0.0/10 carrier-grade NAT). A Rules of Engagement document may never set this. |
ssrfOobCallbackEnabled |
true / false | true |
settable | Whether ssrf runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
ssrfOobProvider |
free_text |
oast.fun |
settable | interactsh-client server. Use a self-hosted instance if oast.fun is blocked. A Rules of Engagement document may never set this. |
ssrfPayloadReferenceEnabled |
true / false | true |
settable | Whether ssrf runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
ssrfPortScanPorts |
free_text |
22,80,443,2375,3306,5432,6379,8080,8500,9200,27017 |
settable | Comma-separated ports to probe via SSRF. Trim for quieter scans, extend for thorough coverage. |
ssrfRequestTimeout |
1â120 seconds | 10 |
settable | How long ssrf may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
shodanDomainDns |
true / false | false |
settable | Pulls Shodan's own DNS record set for the domain. |
shodanEnabled |
true / false | true |
settable | Whether shodan runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
shodanHostLookup |
true / false | true |
settable | Looks each discovered IP up in Shodan, which costs one API credit per host. |
shodanPassiveCves |
true / false | true |
settable | Passive CVE lookup via Shodan |
shodanReverseDns |
true / false | true |
settable | Asks Shodan for the names an IP is known by, which often reveals hosts DNS enumeration missed. |
shodanWorkers |
1â20 threads | 5 |
settable | How many shodan operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
sqliLevel |
1â5 count | 1 |
settable | Higher levels test more injection points (headers, cookies). Default: 1. |
sqliRisk |
1â3 count | 1 |
settable | Higher risk uses more aggressive payloads (e.g., OR-based). Default: 1. |
sqliTamperScripts |
free_text |
(empty) | settable | Comma-separated SQLMap tamper scripts for WAF bypass. Leave empty for auto-detection. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
subdomainDiscoveryEnabled |
true / false | true |
settable | Whether Subdomain discovery runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In a Domain batch it is narrower still: it governs only the groups whose hostname carried a "*" marker, because every other group scans the exact hostnames it was given whatever this flag says. |
phase vuln_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
subdomainTakeoverEnabled |
true / false | false |
settable | Whether takeover runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
takeoverAiClassifier |
true / false | false |
settable | Use AI to disambiguate takeover findings from WAF "no host" block pages that match the same static fingerprint (requires aiInPipeline=true). For each finding the scanner probes the host, short-circuits on third-party vendor tokens, and otherwise asks the LLM to classify the body. AI-flagged collisions get score -40 (lands in manual_review). Default false. |
takeoverAiUseJev |
true / false | false |
settable | Engine for the takeover disambiguator: false uses the LLM in aiPipelineModel, true uses TypeSafe AI Jev (model jev-1.13.0). Takes effect only when aiInPipeline is true, and aiInPipeline does not reset it. Needs a Jev token on the project owner's account; without one the hook uses its static fallback. |
takeoverCertValidationEnabled |
true / false | true |
settable | Whether takeover runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
takeoverConfidenceThreshold |
0â100 percent | 60 |
settable | 0..100. Findings >= threshold+10 are confirmed, >= threshold are likely, otherwise manual_review |
takeoverManualReviewAutoPublish |
true / false | false |
settable | Publish manual_review findings into the main Vulnerability stream (default false) |
takeoverRateLimit |
1â500 rps | 50 |
settable | Requests per second takeover sends. Capped to the engagement ceiling at scan start, so a value above the ceiling is rewritten rather than refused. Capped to the engagement rate ceiling at scan start. In stealth mode this is forced to 10. |
takeoverSeverity |
info, low, medium, high, critical, unknown
|
["critical","high","medium"] |
settable | Severity filter for Nuclei takeover templates (e.g. ["critical","high","medium"]) |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
subfinderDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
projectdiscovery/subfinder:latest |
settable | The container image spawned for subfinder. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
subfinderEnabled |
true / false | true |
settable | Whether subfinder runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
subfinderMaxResults |
1â50000 count | 5000 |
settable | Maximum subdomains taken from a subfinder run. In stealth mode this is lowered to at most 100; a quieter value is kept. |
phase vuln_scan · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
subjackAll |
true / false | false |
settable | Test every URL, not just identified CNAMEs - slower (default false) In stealth mode this is forced to false. |
subjackCheckAr |
true / false | false |
settable | Detect stale A records pointing to dead cloud IPs (manual review) |
subjackCheckMail |
true / false | false |
settable | Check SPF include + MX takeovers In stealth mode this is forced to true. |
subjackCheckNs |
true / false | false |
settable | Detect NS takeovers (expired nameservers / dangling cloud DNS delegations) In stealth mode this is forced to true. |
subjackEnabled |
true / false | true |
settable | Whether subjack runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
subjackRunTimeout |
1â86400 seconds | 900 |
settable | How long subjack may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
subjackSsl |
true / false | true |
settable | Force HTTPS probing for higher accuracy (default true) |
subjackThreads |
1â100 threads | 10 |
settable | How many subjack operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 3. |
subjackTimeout |
1â86400 seconds | 30 |
settable | How long subjack may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
standalone · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
scaIntelCorrelationEnabled |
true / false | true |
create-only | Whether supply-chain findings are correlated against the wider intelligence set. It reaches beyond this project's own assets, so it moves with the scope. Fixed at project creation; refused on an existing project. |
supplyChainReconDeepAnalysisEnabled |
true / false | false |
settable | Whether Supply chain recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
supplyChainReconEcosystems |
free_text |
npm |
settable | Comma-separated OSV ecosystems to report (default "npm"). Matched EXACTLY against the harvested package ecosystem, so use these names verbatim, case included: npm, PyPI, Go, Maven, crates.io, Packagist, RubyGems, NuGet. Empty string means no filter (report every ecosystem) |
supplyChainReconEnabled |
true / false | false |
settable | Whether Supply chain recon runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
standalone · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
supplyChainDeepAnalysisEnabled |
true / false | false |
settable | Whether Supply chain scan runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
supplyChainEcosystems |
free_text |
npm,PyPI,Go,Maven,crates.io,Packagist,RubyGems,NuGet |
settable | Package ecosystems the supply-chain scan analyses, such as npm, pypi or go. |
supplyChainInputMode |
upload, github, org
|
upload |
settable | Whether the supply-chain scan reads an uploaded SBOM, a repository, or an organisation. |
supplyChainOrgDeepAnalysisEnabled |
true / false | false |
settable | Whether Supply chain scan runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
supplyChainOrgIncludeArchived |
true / false | false |
settable | Whether archived repositories are included when scanning an organisation. |
supplyChainOrgIncludeForks |
true / false | false |
settable | Whether forked repositories are included when scanning an organisation. |
supplyChainOrgMaxRepos |
0â10000 count | 50 |
settable | Maximum repositories walked when scanning an organisation. |
supplyChainOrgName |
free_text |
(empty) | create-only | The GitHub organisation whose repositories the supply-chain scan walks. Points the scanner at someone else's assets, so after creation only the project form or update_project_scope changes it. Fixed at project creation; refused on an existing project. |
supplyChainOrgRef |
free_text |
(empty) | settable | The git ref checked out in each organisation repository, when one is pinned. |
supplyChainRepoRef |
free_text |
(empty) | create-only | The git ref checked out in the scanned repository. Changed together with the repository it belongs to. Fixed at project creation; refused on an existing project. |
supplyChainRepoScope |
free_text |
(empty) | create-only | Which parts of the repository the scan reads. Changed together with the repository it belongs to. Fixed at project creation; refused on an existing project. |
supplyChainRepoUrl |
free_text |
(empty) | create-only | The repository the supply-chain scan clones. It becomes a git clone argument against a third party's infrastructure, so like the scope it is changed after creation only by the project form or by update_project_scope. Fixed at project creation; refused on an existing project. |
supplyChainSbomFile |
free_text |
(empty) | closed | The uploaded SBOM this project analyses. Written only by the upload endpoint, which also places the file on disk; a second writer could name a file the project never uploaded. Written only by /api/supply-chain/[projectId]/upload. |
supplyChainTyposquatEnabled |
true / false | false |
settable | Whether Supply chain scan runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
standalone · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
domainBatchGroups |
json_object |
â | closed | The legacy record of the batch scope, [{ rootDomain, prefixes[], hosts[], wildcard }], recomputed server-side from domainBatchHosts at every save and never trusted from a body. domainBatchHosts is the source of truth; the scope every service reads is scopeGroups, which GET /api/projects/[id] derives from it on each read. Kept for readers that have not moved and for a rollback. A prefix is a subdomain label, or one of two sentinels: "." meaning the scan root itself, and "*" meaning enumerate it. |
domainBatchHosts |
free_text |
(empty) | create-only | Raw hostname list as entered or uploaded. What the operator edits. An entry may carry a wildcard marker - "*.example.com" or "*example.com" - which makes that one domain be fully enumerated instead of scanned as listed; every other entry stays literal. Editable after creation from the project form, and over MCP only by update_project_scope under its own permission: update_recon_settings and a parsed Rules of Engagement document can never re-point the platform's targets. Fixed at project creation; refused on an existing project. |
domainBatchMode |
true / false | false |
create-only | Domain batch: the third targeting mode. Mutually exclusive with ipMode. One full recon walks the derived groups in order, appending to one graph. Fixed at project creation; refused on an existing project. |
ipMode |
true / false | false |
create-only | Switches targeting from a domain to the explicit IP list. Mutually exclusive with domainBatchMode, and part of the scope, so it is write-once. Fixed at project creation; refused on an existing project. |
ownershipToken |
free_text |
your-secret-token-here |
create-only | The secret published in the ownership TXT record. Compared against what DNS returns, so it proves the scope rather than configuring a tool. Fixed at project creation; refused on an existing project. Withheld from every read on the MCP surface. |
ownershipTxtPrefix |
free_text |
_redamon-verify |
create-only | The label the ownership TXT record is looked up under, prepended to the target domain. Moves with the scope. Fixed at project creation; refused on an existing project. |
subdomainList |
free_text |
(empty) | create-only | Hosts seeded into the scan in addition to whatever discovery finds. Part of the engagement scope, so it is write-once. Empty entries are dropped and every entry is whitespace-stripped at load. Fixed at project creation; refused on an existing project. |
targetDomain |
free_text |
(empty) | create-only | The single root domain this engagement covers. THE scope column: every phase derives its hosts from it and the target guardrail measures against it. Set once at creation and immutable afterwards, because changing it on an existing project turns a rescan credential into one aimed at a third party. Leading and trailing whitespace is stripped at load. Fixed at project creation; refused on an existing project. |
targetGuardrailEnabled |
true / false | true |
create-only | The hard guardrail that refuses to scan a host outside the declared scope. Turning it off removes the control that keeps the pipeline inside its engagement, which is why it moves with the scope and cannot change on an existing project. Fixed at project creation; refused on an existing project. |
targetIps |
free_text |
(empty) | create-only | The IP addresses or CIDR ranges scanned when ipMode is on. Part of the engagement scope, so it is write-once. Empty entries are dropped and every entry is stripped at load. Fixed at project creation; refused on an existing project. |
verifyDomainOwnership |
true / false | false |
create-only | Requires a DNS TXT record proving control of the target before any active phase runs. Part of the scope's proof, so it is write-once. Fixed at project creation; refused on an existing project. |
phase http_probe · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
tlsxCipherConcurrency |
1â500 threads | 10 |
settable | How many tlsx operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
tlsxCipherEnum |
true / false | false |
settable | Enumerate weak supported ciphers (extra connections per target). Default false. In stealth mode this is forced to false. |
tlsxConcurrency |
1â300 threads | 50 |
settable | How many tlsx operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 5. |
tlsxDelay |
free_text |
(empty) | settable | Optional -delay between connections (e.g. "200ms"); stealth only. Default "". |
tlsxDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
projectdiscovery/tlsx:latest |
settable | The container image spawned for tlsx. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
tlsxEnabled |
true / false | true |
settable | Whether tlsx runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
tlsxIncludeHttpPorts |
true / false | false |
settable | Also grab certs on HTTP/HTTPS ports httpx already covers (duplicate handshakes). Default false. |
tlsxInjectHostnames |
true / false | true |
settable | Merge in-scope certificate SAN hostnames into dns.subdomains as new probe targets. Default true. |
tlsxMaxHostnamesPerIp |
0â1000 count | 1 |
settable | When one IP serves several known hostnames, how many to scan (each may present a different cert). Default 1. |
tlsxMaxInjectedHostnames |
0â10000 count | 200 |
settable | Cap on in-scope hostnames merged back into dns.subdomains as scan targets from certificate SANs and from JavaScript recon, applied to each source separately. Default 200. |
tlsxMaxTargets |
1â100000 count | 2000 |
settable | Hard cap on ip:port pairs tlsx scans. Default 2000. |
tlsxProbeJarm |
true / false | false |
settable | Compute JARM + JA3 fingerprints (~10 extra handshakes per target, loud). Default false. In stealth mode this is forced to false. |
tlsxRetries |
0â10 count | 1 |
settable | How many times tlsx retries a failed request before giving up on it. |
tlsxRevPtrSni |
true / false | false |
settable | Reverse-PTR to derive an SNI for bare IPs (extra DNS lookups). Default false. |
tlsxRunTimeout |
1â86400 seconds | 900 |
settable | How long tlsx may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
tlsxScanMode |
free_text |
auto |
settable | TLS stack: ctls|ztls|openssl|auto. Default auto. |
tlsxTimeout |
1â60 seconds | 5 |
settable | How long tlsx may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
tlsxVersionEnum |
true / false | false |
settable | Enumerate every supported TLS version (extra connections per target). Default false. In stealth mode this is forced to false. |
standalone · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
trufflehogAllowVerificationOverlap |
true / false | false |
settable | Whether several detectors may verify the same candidate, which costs requests but catches more. |
trufflehogArchiveMaxDepth |
0â50 depth | 0 |
settable | How many nested archives are extracted before the scan stops descending. |
trufflehogArchiveMaxSize |
free_text |
(empty) | settable | The largest archive extracted, in bytes. A larger one is skipped rather than exhausting the container. |
trufflehogArchiveTimeout |
free_text |
(empty) | settable | Seconds one archive extraction may take before it is abandoned. |
trufflehogConcurrency |
1â500 threads | 8 |
settable | How many sources trufflehog scans at once. |
trufflehogDetectorTimeout |
free_text |
(empty) | settable | Seconds one detector may spend verifying a candidate before it is abandoned. |
trufflehogDropUnverifiedJwt |
true / false | false |
settable | Discards JWTs that could not be verified, which are the bulk of the false positives in this class. |
trufflehogEnabled |
true / false | false |
settable | Whether trufflehog runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
trufflehogExcludeDetectors |
free_text |
(empty) | settable | Detectors that never run, whatever the include list says. |
trufflehogFilterEntropy |
free_text |
(empty) | settable | The Shannon entropy below which a candidate string is discarded before detection runs. |
trufflehogForceSkipArchives |
true / false | false |
settable | Skips archives entirely rather than extracting them, which is faster and misses anything inside. |
trufflehogForceSkipBinaries |
true / false | false |
settable | Skips binary files rather than scanning them for embedded strings. |
trufflehogIncludeDetectors |
free_text |
(empty) | settable | Restricts the run to these detectors. Empty means every detector runs. |
trufflehogMaxDecodeDepth |
0â50 depth | 5 |
settable | How many nested encodings are unwrapped before giving up on a candidate. |
trufflehogNoVerification |
true / false | false |
settable | Skip live verification entirely. When set, every finding lands unverified (never checked), which is NOT the same as "not live". |
trufflehogResultTypes |
free_text |
verified,unverified,unknown |
settable | Which result statuses to report: a comma-separated subset of verified,unverified,unknown,filtered_unverified. Replaces the old trufflehogOnlyVerified boolean, which combined with trufflehogNoVerification asked TruffleHog to report only verified results while forbidding it to verify â zero findings, no error. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
uncoverDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
projectdiscovery/uncover:latest |
settable | The container image spawned for uncover. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
uncoverEnabled |
true / false | false |
settable | Whether uncover runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
uncoverMaxResults |
1â50000 count | 50000 |
settable | The most results uncover accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. An empty value is replaced by the default rather than honoured. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
urlscanEnabled |
true / false | true |
settable | Whether urlscan runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
urlscanMaxResults |
1â50000 count | 50000 |
settable | The most results urlscan accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. In stealth mode this is lowered to at most 100; a quieter value is kept. |
phase http_probe · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
vhostSniBaselineSizeTolerance |
0â10000 bytes | 50 |
settable | Body size deltas within this many bytes are not flagged (suppresses Set-Cookie / timestamp jitter). Default 50. |
vhostSniConcurrency |
1â100 threads | 20 |
settable | How many Vhost / SNI enumeration operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
vhostSniCustomWordlist |
hostname_list |
(empty) | settable | Optional custom candidates as inline text, one per line (not a file path); lines starting with # are ignored. Bare prefixes expand as {prefix}.{target_apex}; full hostnames are used as-is. Default "". |
vhostSniEnabled |
true / false | false |
settable | Whether Vhost / SNI enumeration runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
vhostSniInjectDiscovered |
true / false | true |
settable | When a hidden vhost is confirmed, create a BaseURL node so a follow-up partial recon (Katana, Nuclei) can scan it. Default true. |
vhostSniMaxCandidatesPerIp |
10â50000 count | 2000 |
settable | Hard cap on candidates per IP to bound run time. Default 2000. |
vhostSniTestL4 |
true / false | true |
settable | Run the TLS SNI trick via curl --resolve (catches modern reverse proxies, k8s ingress, Cloudflare). Default true. |
vhostSniTestL7 |
true / false | true |
settable | Run the HTTP Host header trick (catches classic Apache/Nginx vhosts). Default true. |
vhostSniTimeout |
1â30 seconds | 3 |
settable | How long Vhost / SNI enumeration may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
vhostSniUseDefaultWordlist |
true / false | true |
settable | Use the bundled vhost-common.txt wordlist (~2,300 admin/dev/staging/internal/modern-stack prefixes, expanded as {prefix}.{target_apex}). Default true. |
vhostSniUseGraphCandidates |
true / false | true |
settable | Pull hostnames from existing Subdomain, ExternalDomain, TLS SAN list, CNAME targets and reverse-DNS PTR records resolving to each target IP. Highest signal source. Default true. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
virusTotalEnabled |
true / false | false |
settable | Whether virustotal runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
virusTotalWorkers |
1â10 threads | 3 |
settable | How many virustotal operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
phase http_probe · sends no traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
wafAiClassifier |
true / false | false |
settable | Use AI to classify WAF/CDN presence from response headers/body/latency when the static check misses (requires aiInPipeline=true). Augments _has_cdn_markers and check_waf_bypass; AI-detected bypasses are tagged detection_method=ai_classifier (jev_classifier when wafAiUseJev is on). Default false. |
wafAiUseJev |
true / false | false |
settable | Engine for the WAF classifier: false uses the LLM in aiPipelineModel, true uses TypeSafe AI Jev (model jev-1.13.0). Takes effect only when aiInPipeline is true, and aiInPipeline does not reset it. Needs a Jev token on the project owner's account; without one the hook uses its static fallback. |
phase http_probe · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
wappalyzerAutoUpdate |
true / false | true |
settable | Wappalyzer package version for tech database |
wappalyzerCacheTtlHours |
1â8760 count | 24 |
settable | How long to cache tech database (0 = always fresh) |
wappalyzerEnabled |
true / false | true |
settable | Whether wappalyzer runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
wappalyzerMinConfidence |
0â100 percent | 50 |
settable | The confidence percentage below which a Wappalyzer technology match is discarded. |
wappalyzerNpmVersion |
free_text |
6.10.56 |
settable | The npm version of Wappalyzer the scan container installs at run time. It is fetched from the public registry during the scan, so it decides what code runs inside the container. A Rules of Engagement document may never set this. |
wappalyzerRequireHtml |
true / false | true |
settable | Whether a technology match requires an HTML response, which suppresses matches on JSON and binary endpoints. |
standalone · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
webCachePoisonAllowCpdos |
true / false | false |
settable | Cache-poisoned DoS tests (oversized/meta-char). Only honored in research profile. Default false. In stealth mode this is forced to false. |
webCachePoisonAllowDeception |
true / false | true |
settable | Web cache deception (path-confusion .css tricks). Default true. |
webCachePoisonAllowFrameworkPacks |
true / false | true |
settable | Fire Next.js/Nuxt/Remix-specific vectors only when the tech fingerprint matches. Default true. |
webCachePoisonBehavioralDelay |
1â10 seconds | 1.1 |
settable | Seconds to wait between the two frozen-Date probes. Larger = more reliable on slow origins, but adds latency per silent URL. Default 1.1. |
webCachePoisonBehavioralOracle |
true / false | true |
settable | Detect silent caches (no cache-status headers, common with default Varnish/nginx or hardened CDNs) via a frozen-Date probe: fetch twice across a short delay; a frozen Date header + identical body implies a cache. Catches caches header detection alone would miss. Default true. |
webCachePoisonCacheBusterParam |
free_text |
rdmncb |
settable | Query param name used to isolate every test into its own cache slot. Default "rdmncb". |
webCachePoisonCacheHeader |
free_text |
(empty) | settable | Override the cache hit/miss header if the target uses a non-standard one. Default "". |
webCachePoisonConcurrency |
1â50 threads | 10 |
settable | How many Web cache poisoning operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
webCachePoisonConfirmWorkers |
1â16 threads | 6 |
settable | How many Web cache poisoning operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
webCachePoisonCrossVantage |
true / false | false |
settable | Re-confirm from a second network vantage (requires extra egress infra). Default false. |
webCachePoisonDifferential |
true / false | true |
settable | Non-reflective detection. Beyond looking for a benign canary echoed back, also flag a poison that changes the response behaviour (a persisted status code / Location redirect / body) with no echoed marker, guarded against false positives by requiring the affected response dimension to be stable across two clean baselines. Catches CPDoS-style status flips, scheme/redirect poisoning, and cache-key confusion. Adds one extra baseline request per vector. Default true. |
webCachePoisonDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
redamon-wcvs:latest |
settable | The container image spawned for Web cache poisoning. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
webCachePoisonEnabled |
true / false | false |
settable | Whether Web cache poisoning runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
webCachePoisonMaxRpsPerHost |
0â1000 rps | 0 |
settable | Requests per second the web-cache-poisoning scan sends to any ONE host. ZERO MEANS UNLIMITED, so 0 is the most aggressive value available and not the safest. Under an engagement ceiling a 0 here is rewritten to the ceiling at scan start. 0 means UNLIMITED here, so it is the fastest value and not the safest. Capped to the engagement rate ceiling at scan start. |
webCachePoisonMinConfidence |
0â1 ratio | 0.8 |
settable | Only findings scoring at or above this (0-1) become Vulnerability nodes. 0.8 keeps Confirmed + Strong. Default 0.8. |
webCachePoisonScanProfile |
free_text |
safe-confirm |
settable | "safe-confirm" (production, benign canaries, always isolated), "extended" (owned test targets), or "research" (lab only, enables CPDoS if allowed). Default "safe-confirm". |
webCachePoisonTimeout |
1â86400 seconds | 1800 |
settable | How long Web cache poisoning may spend before it is abandoned, in seconds. A run that hits it contributes whatever it found so far rather than failing the scan. |
webCachePoisonTimeoutPerReq |
1â86400 seconds | 10 |
settable | Native confirmation per-request timeout in seconds. Default 10. |
webCachePoisonVerifySsl |
true / false | true |
settable | Verify TLS certificates during native confirmation. Default true. |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
whoisEnabled |
true / false | true |
settable | Whether whois runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
whoisMaxRetries |
1â20 count | 6 |
settable | How many times whois retries a failed request before giving up on it. |
phase resource_enum · active traffic at the target
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
zapAjaxSpiderBrowserId |
free_text |
firefox-headless |
settable | ZAP browser id, such as "firefox-headless" |
zapAjaxSpiderClickDefaultElems |
true / false | true |
settable | Click default clickable elements |
zapAjaxSpiderClickElemsOnce |
true / false | true |
settable | Click each element only once |
zapAjaxSpiderCustomHeaders |
http_header |
(empty) | settable | Header/cookie lines for authenticated crawling |
zapAjaxSpiderDockerImage |
caffix/amass:latest, dolevf/graphql-cop:1.14, frost19k/puredns:latest, ghcr.io/zaproxy/zaproxy:stable, jauderho/hakrawler:latest, projectdiscovery/httpx:latest, projectdiscovery/katana:latest, projectdiscovery/naabu:latest, projectdiscovery/nuclei:latest, projectdiscovery/subfinder:latest, projectdiscovery/tlsx:latest, projectdiscovery/uncover:latest, redamon-baddns:latest, redamon-wcvs:latest, sxcurity/gau:latest
|
ghcr.io/zaproxy/zaproxy:stable |
settable | The container image spawned for zap. Any value outside the shipped allowlist is silently pinned back to the default at scan start, with a [guardrail] line recording it, so the field is open and the runtime is the control. |
zapAjaxSpiderEnabled |
true / false | false |
settable | Whether zap runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. In stealth mode this is forced to false. |
zapAjaxSpiderEventWait |
0â3600000 milliseconds | 1000 |
settable | How long the Ajax Spider waits after firing a DOM event, in MILLISECONDS. Too low and a single-page app has not rendered its new state before the crawler reads it. |
zapAjaxSpiderExcludePatterns |
free_text |
(empty) | settable | Regex patterns to exclude from Ajax crawling |
zapAjaxSpiderLogoutAvoidance |
true / false | true |
settable | Avoid actions likely to log out |
zapAjaxSpiderMaxCrawlDepth |
1â50 depth | 5 |
settable | Max crawl depth per seed |
zapAjaxSpiderMaxCrawlStates |
0â100000 count | 0 |
settable | Max crawl states, or 0 for unlimited |
zapAjaxSpiderMaxDuration |
1â1440 minutes | 10 |
settable | How long the ZAP Ajax Spider may crawl one seed, in MINUTES rather than seconds. |
zapAjaxSpiderMaxUrls |
1â100000 count | 1000 |
settable | The most results zap accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. |
zapAjaxSpiderNumberOfBrowsers |
1â10 threads | 1 |
settable | Browser instances used by Ajax Spider |
zapAjaxSpiderParallelism |
1â10 threads | 3 |
settable | How many zap operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. |
zapAjaxSpiderRandomInputs |
true / false | false |
settable | Fill inputs with random values |
zapAjaxSpiderReloadWait |
0â3600000 milliseconds | 1000 |
settable | How long the Ajax Spider waits after a page reload, in MILLISECONDS. |
zapAjaxSpiderScopeCheck |
free_text |
Strict |
settable | Ajax Spider scope check mode |
zapAjaxSpiderSeedMode |
free_text |
base_urls |
settable | "base_urls" or "base_urls_and_endpoints" seed selection |
phase domain_discovery · passive traffic
| Field | Accepts | Default | MCP | Meaning |
|---|---|---|---|---|
zoomEyeEnabled |
true / false | false |
settable | Whether ZoomEye runs. Configuration is two levels: this flag decides whether the tool runs INSIDE its phase, and scanModules decides whether the phase runs at all. Setting one without the other is a silent no-op. |
zoomEyeMaxResults |
1â10000 count | 1000 |
settable | The most results ZoomEye accumulates in one pass. The memory governor budgets it against available RAM, so the effective value can be below what is written here. |
zoomEyeWorkers |
1â20 threads | 5 |
settable | How many ZoomEye operations run at once. The memory governor scales it down when the host is short of RAM, so the effective value can be below what is written here. In stealth mode this is forced to 1. |
Getting Started
- Getting Started
- Deploying to a Server
- User Management & Roles
- Creating a Project
- Recon Presets
- Global Settings
Core Workflow
- Red Zone
- Recon Pipeline Workflow
- Running Reconnaissance
- Scan Timeline
- AI Agent Guide
- Fireteam â Parallel Specialists
- Exploit-Path Search (LATS)
- Agent Workspace
- Reverse Shells
Scanning & OSINT
- AI in the Recon Pipeline
- Adversarial AI Recon
- AI Gauntlet
- JS Reconnaissance
- GraphQL Security Testing
- Subdomain Takeover Detection
- VHost & SNI Enumeration
- TLS Certificate Grab
- Web Cache Poisoning
- Serialized Object Detection
- Origin Discovery
- GVM Vulnerability Scanning
- GitHub Secret Hunting
- Secret Multiscanner
- Supply-Chain Scanning
AI & Automation
- AI Model Providers
- MCP Tool Plugins
- MCP Server
- Knowledge Base & Web Search
- Agent Skills
- Chat Skills
- Tradecraft Lookup
- CVE Intel
- Playwright Browser Automation
- CypherFix â Automated Remediation
- Priority Board
- Rules of Engagement (RoE)
Plugins
HackLab
Analysis & Reporting
- Insights Dashboard
- TrafficMind
- Authenticated Session Recording
- proxy_brain â web hacking in code
- Pentest Reports
- Attack Surface Graph
- Surface Shaper
- EvoGraph â Attack Chain Evolution
- Data Export & Import
Contributing
Reference & Help