🗑️ The original repository has been deleted or made private. This page is an archival snapshot from indexing time; the install command may no longer work.
Install verification: Ecosystem app: not installed via dsh plugin add, so the L1-L5 plugin install-verification ladder does not apply; the security scan still runs.Install verification details →
What it doesAI
Work-in-progress DSH plugin that captures network packets and analyses traffic, using pcap/pktmon tooling.
- Captures network packets for later inspection
- Analyses captured traffic data
- Uses pcap / pktmon capture backends
Capability tags are AI-inferred or rule-extracted from the README (see badge) — vocabulary-limited, not install-verified. AI = inferred; README = literal keyword from the readme.
Installation
Ecosystem apps are not installable via dsh plugin add: desktop / web shells install or deploy through their own release channel (GitHub Releases or the project site).
The level reads L5 · Ecosystem plugin / L5 · Ecosystem app per the three-way classification (the L1-L5 ladder does not rate them); the security scan still runs.
Verification & Compatibility◼ Ecosystem app
Grouped by plugin version: each card lists the dsh versions actually tested against that artifact version and their install verdicts (L5 wins). Untested combinations are omitted — absence means untested, never assumed compatible. L1–L3 are a plugin-level static archive (independent of the dsh version — the same verdict on every dsh row): they sit in each row's level grid next to L4/L5, marked "static", while their evidence is stored once per plugin inside that row's "checks & evidence" instead of being duplicated per version.
External credentials (plugin-level): none detected
| plugin \ dsh | dsh 0.2.1-rc.2 current | dsh 0.2.1-alpha.4 |
|---|---|---|
| d08438 | ◼ | ◼ |
| 73a8f1 | · | · |
d08438github◼ 2 ecosystem app2026-10-19
https://github.com/Why-147369/dsh-capture
◼dsh 0.2.1-rc.2current2026-10-19Ecosystem app
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • Plugin artifact: github · https://github.com/Why-147369/dsh-capture (version unstated)
ID: dsh-capture-2@d08438@dsh0.2.1-rc.2 · profile: l4-sandbox
Issued: 2026-10-19 · expires: 2026-10-26
View checks & evidence
This level was not executed in this scan.
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
◼dsh 0.2.1-alpha.42026-10-18Ecosystem app
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • Plugin artifact: github · https://github.com/Why-147369/dsh-capture (version unstated)
ID: dsh-capture-2@d08438@dsh0.2.1-alpha.4 · profile: l3-fullscan
Issued: 2026-10-18 · expires: 2026-10-25
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
73a8f1local2026-10-15
Ecosystem app: not installed via dsh plugin add (a desktop / web shell) — its level reads L5 · Ecosystem app.
Author badges
Embed the official badges in your README to showcase security & install-test status:
`[](https://www.dsh.so/artifact/dsh-capture-2/)`Security Report
Two automated layers, neither a manual review: a static scan (per-plugin rule checks) and a model-driven dynamic security audit that covers only the subset static-flagged at warn or above and never executes plugin code.
Static low, dynamic medium — stricter wins → overall medium.
—ea381ac6b068git2026-10-18ea381ac6b068same versionclean · gitVet is an AST static scan (npm artifact or git source).
show static findings (12)
- warningchildProcess · code-exec
dsh-capture/lib/elevate.js:100child = spawn('powershell.exe', args, { windowsHide: true, shell: false }); - warningchildProcess · code-exec
dsh-capture/lib/npcap.js:106child = spawn(cmd, args, { windowsHide: true, shell: false }); - warningchildProcess · code-exec
dsh-capture/lib/npcap.js:289child = spawn(t.dumpcap, args, { windowsHide: true, shell: false }); - warningchildProcess · code-exec
dsh-capture/lib/npcap.js:387const k = spawn('taskkill', ['/F', '/PID', String(s.pid), '/T'], { windowsHide: true, shell: false }); - warningshellExec · shell
dsh-capture/lib/npcap.js:59const out = execFileSync('reg', ['query', key, '/v', 'InstallDir'], - warningchildProcess · code-exec
dsh-capture/lib/pktmon.js:36child = spawn(cmd, args, { windowsHide: true, shell: false }); - warningnetIp · network
dsh-capture/lib/routes.js:272const url = new URL(req.url, 'http://127.0.0.1'); - warningnetIp · network
dsh-capture/lib/routes.js:285const url = new URL(req.url, 'http://127.0.0.1'); - warningnetIp · network
dsh-capture/lib/routes.js:358id = new URL(req.url, 'http://127.0.0.1').searchParams.get('id') || ''; - warningchildProcess · code-exec
install-dsh-capture.mjs:155const r = spawnSync(pnpm ? process.execPath : 'pnpm', args, { - warningfsWrite · files
install-dsh-capture.mjs:115fs.writeFileSync(path.join(REPO_ROOT, 'install-dsh-capture.log'), lines.join('\n') + '\n', 'utf8'); - warningfsWrite · files
install-dsh-capture.mjs:140fs.writeFileSync(profilePkgPath, JSON.stringify(pj, null, 2) + '\n', 'utf8');
show 4 audit findings
- mediumCapture HTTP routes expose traffic and destructive actions without in-plugin authentication
dsh-capture/lib/routes.jsRoutes /analyze,/flows,/search,/export,/download return DNS/SNI and HTTP request/response bodies (which may carry tokens or passwords), while /start,/stop,/delete mutate state. Handlers perform no auth/role check, relying entirely on the host webServer ACL. If the host binds beyond loopback or lacks a session check, captured secrets are exposed and captures can be started or deleted.
- mediumElevation runs run-elevated.ps1 as administrator with ExecutionPolicy Bypass; script not in reviewed set
dsh-capture/lib/elevate.js:95A UAC-elevated PowerShell parses a JSON job file whose filters include caller-supplied ip/port values. The JS-side single-quote doubling is correct, but run-elevated.ps1 is not among the provided sources; if it builds pktmon commands via string interpolation it could run attacker-influenced input as admin. Requires the user to approve the UAC prompt.
- low/search compiles a user-supplied regex over capture data (ReDoS/CPU DoS)
dsh-capture/lib/routes.jsA catastrophic-backtracking pattern (length capped at 200) is tested against attacker-influenceable packet strings (DNS names, SNI, HTTP bodies), which can stall the Node event loop. Reachable only via the local GET /search route, so it is largely self-inflicted DoS.
- lowCaptured traffic (incl. plaintext HTTP bodies) stored unencrypted under ~/.dsh/dsh-capture
dsh-capture/lib/tools.jsCredentials carried in captured plaintext HTTP persist on disk with default filesystem ACLs; the same bytes are also downloadable through /download when enabled.
No RCE/exfiltration: shell calls use argv+shell:false, id→path is hash-bound; residual risks are unauthenticated capture routes, an unaudited elevated PS helper, /search ReDoS, and plaintext capture storage.
Rule: the dynamic audit can only raise risk, never lower it (raise-only, never an exemption); a wrong raise is withdrawn by human review and the tier falls back to the static verdict. Overall verdict = the stricter of the two layers.
Disclaimer: the static scan and the dynamic security audit are both automated analysis, not a security guarantee. Always review what you install.
Activity
Last commit 2026-10-16 · activity: Active
• Repo created: 2026-10-15
• Stars: ★ 0 · Forks: 0
• Health: Active — committed within last 30 days
Source
Author README
View on GitHub ↗The author's original README from the repository — fetched live, unedited (the English page loads the default README).
