Use local mode when the DSP host itself can reach the authorized target network.
dsp run --profile normal --target-net 10.10.10.0/24
Local execution uses LocalExecutionProvider and RunManager, then writes events, validation results, reports, and verification files to the local run directory.
Use webshell mode when the POC requires activity to originate from an authorized remote host inside the target environment.
dsp run \ --profile normal \ --target-net 10.10.10.0/24 \ --execution-provider webshell \ --webshell-family jsp \ --webshell-url http://10.10.10.50:8080/shell.jsp \ --remote-work-dir /tmp/dsp
DSP dispatches scenario execution to the remote host, retrieves the resulting events.jsonl bundle, imports those events into the local Event Store, and continues through the same validation and reporting process.
Real Tomcat validation completed; 10/10 release scenarios documented
PHP
Apache / PHP
Validated
Real Apache/PHP validation completed; 10/10 release scenarios documented
ASPX
Windows / IIS
Preview
HTTP contract exists, but real Windows IIS execution is not yet validated
Do not describe ASPX as production-ready. The current release documentation lists the Windows/IIS webshell path as unvalidated and notes that the validated bundle-handling path is Linux-oriented.
The source repository includes scripts/setup_fake_shelljsp_lab.sh for a quick isolated smoke test. It creates a small Flask endpoint that mimics the command interface used by a JSP webshell.
The fake shell endpoint can execute arbitrary shell commands. Use it only on an isolated test system and never expose it to the public Internet.
For production-like remote validation, use a properly controlled JSP/Tomcat or PHP/Apache test environment rather than the fake lab endpoint.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Detection Scenario Platform","description":"Documentation for Detection Scenario Platform (DSP) — realistic security activity generation, evidence collection, and XDR/NDR customer POC validation.","colors":{"primary":"#1F59E0","light":"#2982E8","dark":"#5B8CFF"},"logo":{"light":"https://mintcdn.com/detection-scenario-platform/KhFDooDRGH2V_z_w/logo/light.svg?fit=max\u0026auto=format\u0026n=KhFDooDRGH2V_z_w\u0026q=85\u0026s=2c2ca56379f9da68a23fbed6356666b0","dark":"https://mintcdn.com/detection-scenario-platform/KhFDooDRGH2V_z_w/logo/dark.svg?fit=max\u0026auto=format\u0026n=KhFDooDRGH2V_z_w\u0026q=85\u0026s=1a99023dd755f0ebc046fc4aea051e88","href":"https://dsp.xdr.ooo"},"favicon":"https://mintcdn.com/detection-scenario-platform/NqhyeJ2_6uBatxJf/favicon.svg?fit=max\u0026auto=format\u0026n=NqhyeJ2_6uBatxJf\u0026q=85\u0026s=1bf41b933ad91eebd4d5f1450868a7d2","appearance":{"default":"system","strict":false},"navbar":{"links":[{"href":"https://github.com/xdr-labs/xdr-poc-script","type":"github"}],"primary":{"type":"button","label":"Get Started","href":"/quickstart"}},"search":{"prompt":"Search DSP documentation..."},"seo":{"metatags":{"canonical":"https://dsp.xdr.ooo"},"indexing":"navigable"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":""},{"language":"ko","href":"ko"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"detection-scenario-platform","hasAudioNarration":false,"actualSubdomain":"detection-scenario-platform","customDomains":["dsp.xdr.ooo"],"gitSource":{"type":"github","owner":"xdr-labs","repo":"detection-scenario-platform-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6acc66d48686749161e5a583","collectionId":"cca7f00d-e8fa-4e6a-80a5-d285f829a799","liveDeploymentHistoryId":"6acc66d48686749161e5a583","schemaVersion":"v3"},"entitlements":{},"buildId":"6acc66d48686749161e5a583","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"en","tag":"Setup \u0026 Operation","count":5},{"language":"ko","tag":"설치 및 운영","count":5},{"language":"en","tag":"Reference","count":4},{"language":"en","tag":"POC Guide","count":4},{"language":"ko","tag":"참조","count":4},{"language":"ko","tag":"POC 가이드","count":4},{"language":"en","tag":"Start Here","count":2},{"language":"ko","tag":"시작하기","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--xdr-navy:#0a182d;--xdr-navy-deep:#030f1b;--xdr-blue:#1f59e0;--xdr-blue-bright:#2982e8;--xdr-cyan:#55c7f3;--xdr-orange:#ff9b1d;--xdr-ink:#0f172a;--xdr-muted:#64748b;--xdr-border:rgba(148, 163, 184, 0.22)}html{scroll-behavior:smooth}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif}h1,h2,h3{letter-spacing:-.025em}a{text-underline-offset:.18em}.xdr-hero{position:relative;overflow:hidden;margin:0 0 2.5rem;padding:clamp(2rem,5vw,4.5rem);border:1px solid rgba(85,199,243,.22);border-radius:28px;background:radial-gradient(circle at 82% 18%,rgba(41,130,232,.42),transparent 30%),radial-gradient(circle at 10% 110%,rgba(31,89,224,.34),transparent 38%),linear-gradient(135deg,var(--xdr-navy-deep) 0%,var(--xdr-navy) 58%,#102a51 100%);box-shadow:0 28px 70px rgba(3,15,27,.24);color:#fff}.xdr-hero::before{content:\"\";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 85%)}.xdr-hero::after{content:\"\";position:absolute;width:18rem;height:18rem;right:-5rem;top:-7rem;border-radius:999px;border:1px solid rgba(255,155,29,.38);box-shadow:0 0 90px rgba(255,155,29,.1)}.xdr-hero>*{position:relative;z-index:1}.xdr-kicker{margin:0 0 .9rem;color:#9edfff;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.xdr-hero-title{max-width:14ch;margin:0;color:#fff!important;font-size:clamp(2.35rem,6vw,4.8rem);font-weight:780;line-height:.98;letter-spacing:-.055em}.xdr-hero-copy{max-width:48rem;margin:1.5rem 0 0;color:#d8e6f8;font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.75}.xdr-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.8rem}.xdr-hero-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;padding:.72rem 1.1rem;border-radius:999px;font-weight:750;text-decoration:none!important;transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease}.xdr-hero-actions a:hover{transform:translateY(-1px)}.xdr-hero-primary{background:linear-gradient(135deg,var(--xdr-blue),#1e4eb8);color:#fff!important;box-shadow:0 12px 28px rgba(31,89,224,.34)}.xdr-hero-secondary{border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.07);color:#fff!important;backdrop-filter:blur(10px)}.xdr-signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:2.1rem}.xdr-signal{min-height:7.25rem;padding:1rem 1.05rem;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(5,18,38,.48);backdrop-filter:blur(12px)}.xdr-signal strong{display:block;margin-bottom:.35rem;color:#fff;font-size:1rem}.xdr-signal span{color:#b9cbe0;font-size:.88rem;line-height:1.5}.xdr-section-intro{max-width:47rem;margin:-.4rem 0 1.25rem;color:var(--xdr-muted);font-size:1.02rem;line-height:1.7}article h2{margin-top:2.8rem}article table{border-radius:16px;overflow:hidden}article img{border-radius:14px}.dark .xdr-section-intro{color:#94a3b8}@media (max-width:720px){.xdr-hero{padding:1.6rem;border-radius:22px}.xdr-hero-title{font-size:clamp(2.15rem,12vw,3.2rem)}.xdr-hero-actions{flex-direction:column}.xdr-hero-actions a{width:100%}.xdr-signal-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.xdr-hero-actions a{transition:none}}"}],"page":{"pagePath":"execution-modes","slug":"/execution-modes","pageMetadata":{"title":"Execution Modes","description":"Run DSP locally or through validated webshell providers.","href":"/execution-modes"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Run DSP locally or through validated webshell providers.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Mermaid,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`execution-modes`,children:`Execution Modes`}),`\n`,_jsxs(_components.p,{children:[`DSP supports two execution providers: `,_jsx(_components.strong,{children:`local`}),` and `,_jsx(_components.strong,{children:`webshell`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`local-execution`,children:`Local execution`}),`\n`,_jsx(_components.p,{children:`Use local mode when the DSP host itself can reach the authorized target network.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`dsp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --profile`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` normal`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --target-net`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 10.10.10.0/24`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Local execution uses `,_jsx(_components.code,{children:`LocalExecutionProvider`}),` and `,_jsx(_components.code,{children:`RunManager`}),`, then writes events, validation results, reports, and verification files to the local run directory.`]}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n CLI[dsp run] --> P[LocalExecutionProvider]\n P --> S[Scenario execution]\n S --> E[Event Store]\n E --> V[Validation]\n V --> R[Report + Evidence]`}),`\n`,_jsx(Heading,{level:`2`,id:`webshell-execution`,children:`Webshell execution`}),`\n`,_jsx(_components.p,{children:`Use webshell mode when the POC requires activity to originate from an authorized remote host inside the target environment.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`dsp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --profile`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` normal`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --target-net`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 10.10.10.0/24`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --execution-provider`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` webshell`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --webshell-family`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` jsp`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --webshell-url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http://10.10.10.50:8080/shell.jsp`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --remote-work-dir`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /tmp/dsp`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`DSP dispatches scenario execution to the remote host, retrieves the resulting `,_jsx(_components.code,{children:`events.jsonl`}),` bundle, imports those events into the local Event Store, and continues through the same validation and reporting process.`]}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n CLI[dsp run] --> W[WebshellExecutionProvider]\n W --> RR[Remote scenario runner]\n RR --> B[Remote events.jsonl]\n B --> C[RemoteEventCollector]\n C --> E[Local Event Store]\n E --> V[Validation + Evidence]`}),`\n`,_jsx(Heading,{level:`2`,id:`webshell-family-status`,children:`Webshell family status`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Family`}),_jsx(_components.th,{children:`Typical platform`}),_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`JSP`}),_jsx(_components.td,{children:`Java / Tomcat`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Validated`})}),_jsx(_components.td,{children:`Real Tomcat validation completed; 10/10 release scenarios documented`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`PHP`}),_jsx(_components.td,{children:`Apache / PHP`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Validated`})}),_jsx(_components.td,{children:`Real Apache/PHP validation completed; 10/10 release scenarios documented`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`ASPX`}),_jsx(_components.td,{children:`Windows / IIS`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Preview`})}),_jsx(_components.td,{children:`HTTP contract exists, but real Windows IIS execution is not yet validated`})]})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Do not describe ASPX as production-ready. The current release documentation lists the Windows/IIS webshell path as unvalidated and notes that the validated bundle-handling path is Linux-oriented.`})}),`\n`,_jsx(Heading,{level:`2`,id:`webshell-configuration`,children:`Webshell configuration`}),`\n`,_jsx(_components.p,{children:`The three main fields are:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Family`}),` — `,_jsx(_components.code,{children:`jsp`}),`, `,_jsx(_components.code,{children:`php`}),`, or `,_jsx(_components.code,{children:`aspx`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`URL`}),` — full HTTP(S) path to the authorized endpoint`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Remote work directory`}),` — writable location used for remote scripts and event bundles`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Examples:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`http://10.10.10.50:8080/shell.jsp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`http://10.10.10.50/shell.php`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://lab.example/path/shell.aspx`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The URL extension should match the selected family.`}),`\n`,_jsx(Heading,{level:`3`,id:`tls-verification`,children:`TLS verification`}),`\n`,_jsx(_components.p,{children:`The CLI supports:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`--verify-tls`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Use it when the webshell endpoint is HTTPS and certificate verification should be enforced.`}),`\n`,_jsx(Heading,{level:`2`,id:`fake-jsp-lab`,children:`Fake JSP lab`}),`\n`,_jsxs(_components.p,{children:[`The source repository includes `,_jsx(_components.code,{children:`scripts/setup_fake_shelljsp_lab.sh`}),` for a quick isolated smoke test. It creates a small Flask endpoint that mimics the command interface used by a JSP webshell.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`The fake shell endpoint can execute arbitrary shell commands. Use it only on an isolated test system and never expose it to the public Internet.`})}),`\n`,_jsx(_components.p,{children:`For production-like remote validation, use a properly controlled JSP/Tomcat or PHP/Apache test environment rather than the fake lab endpoint.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Execution Modes","description":"Run DSP locally or through validated webshell providers.","href":"/execution-modes"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Execution Modes","slug":"execution-modes","depth":1,"children":[]},{"title":"Local execution","slug":"local-execution","depth":2,"children":[]},{"title":"Webshell execution","slug":"webshell-execution","depth":2,"children":[]},{"title":"Webshell family status","slug":"webshell-family-status","depth":2,"children":[]},{"title":"Webshell configuration","slug":"webshell-configuration","depth":2,"children":[{"title":"TLS verification","slug":"tls-verification","depth":3,"children":[]}]},{"title":"Fake JSP lab","slug":"fake-jsp-lab","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"detection-scenario-platform","siteName":"Detection Scenario Platform","title":"Execution Modes - Detection Scenario Platform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/execution-modes","matchLevel":0},"ko":{"href":"/ko/execution-modes","matchLevel":1}}},"lastModified":"2026-09-28T08:16:15.427Z","originalFileLocation":"execution-modes.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Run DSP locally or through validated webshell providers.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Detection Scenario Platform\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Execution Modes - Detection Scenario Platform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Run DSP locally or through validated webshell providers.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Detection Scenario Platform\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://dsp.xdr.ooo/execution-modes\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://detection-scenario-platform.mintlify.app/_mintlify/api/og/v2?division=Setup+%26+Operation\u0026amp;title=Execution+Modes\u0026amp;description=Run+DSP+locally+or+through+validated+webshell+providers.\u0026amp;theme=844aa417a8c7db35f7c557a9\u0026amp;signature=1441d14a67dbf0a1f1dbbf918a31b31c15151a3696c7726b0d3c259ecac788a3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Execution Modes - Detection Scenario Platform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Run DSP locally or through validated webshell providers.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://detection-scenario-platform.mintlify.app/_mintlify/api/og/v2?division=Setup+%26+Operation\u0026amp;title=Execution+Modes\u0026amp;description=Run+DSP+locally+or+through+validated+webshell+providers.\u0026amp;theme=844aa417a8c7db35f7c557a9\u0026amp;signature=1441d14a67dbf0a1f1dbbf918a31b31c15151a3696c7726b0d3c259ecac788a3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/detection-scenario-platform/rAg795ZJfnskMRJZ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Detection Scenario Platform\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1F59E0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://dsp.xdr.ooo/execution-modes\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/execution-modes.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://dsp.xdr.ooo/execution-modes\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://dsp.xdr.ooo/ko/execution-modes\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://dsp.xdr.ooo/execution-modes\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://dsp.xdr.ooo/#organization\",\"name\":\"Detection Scenario Platform\",\"url\":\"https://dsp.xdr.ooo\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/detection-scenario-platform/KhFDooDRGH2V_z_w/logo/light.svg?fit=max\u0026auto=format\u0026n=KhFDooDRGH2V_z_w\u0026q=85\u0026s=2c2ca56379f9da68a23fbed6356666b0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://dsp.xdr.ooo#website\",\"name\":\"Detection Scenario Platform\",\"url\":\"https://dsp.xdr.ooo\",\"publisher\":{\"@id\":\"https://dsp.xdr.ooo/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://dsp.xdr.ooo/execution-modes#webpage\",\"url\":\"https://dsp.xdr.ooo/execution-modes\",\"name\":\"Execution Modes\",\"description\":\"Run DSP locally or through validated webshell providers.\",\"dateModified\":\"2026-09-28T08:16:15.427Z\",\"isPartOf\":{\"@id\":\"https://dsp.xdr.ooo#website\"},\"breadcrumb\":{\"@id\":\"https://dsp.xdr.ooo/execution-modes#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://dsp.xdr.ooo/execution-modes#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Setup \u0026 Operation\",\"item\":\"https://dsp.xdr.ooo/installation\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Execution Modes\",\"item\":\"https://dsp.xdr.ooo/execution-modes\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://dsp.xdr.ooo/execution-modes#article\",\"headline\":\"Execution Modes\",\"name\":\"Execution Modes\",\"description\":\"Run DSP locally or through validated webshell providers.\",\"url\":\"https://dsp.xdr.ooo/execution-modes\",\"mainEntityOfPage\":{\"@id\":\"https://dsp.xdr.ooo/execution-modes#webpage\"},\"dateModified\":\"2026-09-28T08:16:15.427Z\",\"publisher\":{\"@id\":\"https://dsp.xdr.ooo/#organization\"},\"isPartOf\":{\"@id\":\"https://dsp.xdr.ooo#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Detection Scenario Platform\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Detection Scenario Platform","nav":{"global":null,"languages":[{"language":"en","groups":[{"group":"Start Here","icon":"rocket","pages":[{"title":"Detection Scenario Platform","href":""},{"title":"Quick Start","href":"/quickstart"}]},{"group":"POC Guide","icon":"shield-check","pages":[{"title":"Customer POC Workflow","href":"/poc-program"},{"title":"Scenario Coverage","href":"/scenarios"},{"title":"XDR Correlation Demo","href":"/xdr-correlation-demo"},{"title":"Reports \u0026 Evidence","href":"/reports-and-evidence"}]},{"group":"Setup \u0026 Operation","icon":"terminal","pages":[{"title":"Installation","href":"/installation"},{"title":"Configuration \u0026 Profiles","description":"Configure target scope, execution mode, and DSP coverage profiles for XDR/NDR POCs.","href":"/configuration"},{"title":"Execution Modes","href":"/execution-modes"},{"title":"Safety \u0026 Guardrails","description":"Use DSP only in authorized POC scopes and understand the built-in target and execution safeguards.","href":"/safety-and-guardrails"},{"title":"Troubleshooting","href":"/troubleshooting"}]},{"group":"Reference","icon":"book","pages":[{"title":"CLI Reference","href":"/cli-reference"},{"title":"Validation Status","href":"/validation-status"},{"title":"Architecture","href":"/architecture"},{"title":"Release Notes","href":"/release-notes"}]}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/execution-modes"}]}]},"basePath":"","title":"Execution Modes - Detection Scenario Platform","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}