@trenchwork/erosolar 1.1.31 → 1.1.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/deepseek.js +13 -0
- package/dist/bin/deepseek.js.map +1 -1
- package/dist/capabilities/_binaryRequirements.d.ts +101 -0
- package/dist/capabilities/_binaryRequirements.d.ts.map +1 -0
- package/dist/capabilities/_binaryRequirements.js +288 -0
- package/dist/capabilities/_binaryRequirements.js.map +1 -0
- package/dist/capabilities/_opsContext.d.ts +129 -0
- package/dist/capabilities/_opsContext.d.ts.map +1 -0
- package/dist/capabilities/_opsContext.js +274 -0
- package/dist/capabilities/_opsContext.js.map +1 -0
- package/dist/capabilities/_processRunner.d.ts +32 -0
- package/dist/capabilities/_processRunner.d.ts.map +1 -1
- package/dist/capabilities/_processRunner.js +126 -0
- package/dist/capabilities/_processRunner.js.map +1 -1
- package/dist/capabilities/engagementCapability.d.ts.map +1 -1
- package/dist/capabilities/engagementCapability.js +14 -3
- package/dist/capabilities/engagementCapability.js.map +1 -1
- package/dist/capabilities/index.d.ts +1 -0
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +1 -0
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/llmRedteamCapability.d.ts +38 -0
- package/dist/capabilities/llmRedteamCapability.d.ts.map +1 -0
- package/dist/capabilities/llmRedteamCapability.js +340 -0
- package/dist/capabilities/llmRedteamCapability.js.map +1 -0
- package/dist/cli/offsecInstall.d.ts +43 -0
- package/dist/cli/offsecInstall.d.ts.map +1 -0
- package/dist/cli/offsecInstall.js +258 -0
- package/dist/cli/offsecInstall.js.map +1 -0
- package/dist/headless/interactiveShell.d.ts.map +1 -1
- package/dist/headless/interactiveShell.js +25 -0
- package/dist/headless/interactiveShell.js.map +1 -1
- package/dist/runtime/node.d.ts.map +1 -1
- package/dist/runtime/node.js +58 -2
- package/dist/runtime/node.js.map +1 -1
- package/dist/runtime/phaseEmitter.d.ts +63 -0
- package/dist/runtime/phaseEmitter.d.ts.map +1 -0
- package/dist/runtime/phaseEmitter.js +207 -0
- package/dist/runtime/phaseEmitter.js.map +1 -0
- package/dist/tools/engagementTools.d.ts +23 -0
- package/dist/tools/engagementTools.d.ts.map +1 -1
- package/dist/tools/engagementTools.js +45 -0
- package/dist/tools/engagementTools.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/deepseek.js
CHANGED
|
@@ -120,6 +120,19 @@ else if (rawArgs[0] === 'helia') {
|
|
|
120
120
|
process.exit(1);
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
+
else if (rawArgs[0] === 'offsec') {
|
|
124
|
+
// Cross-platform offsec self-bootstrap. `erosolar offsec install`
|
|
125
|
+
// walks the BinaryRequirement manifest, installs missing binaries
|
|
126
|
+
// for the operator's OS via apt / brew / winget / pipx / npm / cargo
|
|
127
|
+
// / go / gem (whichever has a recipe). Tools without a native path
|
|
128
|
+
// on this OS are skipped with a pointer to WSL2 / Docker — no
|
|
129
|
+
// forced Kali install on macOS or Windows.
|
|
130
|
+
void (async () => {
|
|
131
|
+
const { runOffsecCommand } = await import('../cli/offsecInstall.js');
|
|
132
|
+
const code = await runOffsecCommand(rawArgs.slice(1));
|
|
133
|
+
process.exit(code);
|
|
134
|
+
})().catch((err) => { reportStatusError(err); process.exit(1); });
|
|
135
|
+
}
|
|
123
136
|
else {
|
|
124
137
|
void main();
|
|
125
138
|
}
|
package/dist/bin/deepseek.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../src/bin/deepseek.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../src/bin/deepseek.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for every external binary the offsec
|
|
3
|
+
* capability surface invokes.
|
|
4
|
+
*
|
|
5
|
+
* Each entry maps `bin` → install commands (one per bootstrap channel)
|
|
6
|
+
* + the capability that needs it. Two things consume this manifest:
|
|
7
|
+
*
|
|
8
|
+
* 1. `ensureBinary(bin)` (in _processRunner.ts) — the runtime
|
|
9
|
+
* preflight every offsec tool handler runs before spawn. Missing
|
|
10
|
+
* binary → clean error with the install hint instead of cryptic
|
|
11
|
+
* ENOENT.
|
|
12
|
+
*
|
|
13
|
+
* 2. `erosolar offsec install` — the operator-facing self-bootstrap.
|
|
14
|
+
* Reads the manifest, filters to the active profile's
|
|
15
|
+
* capabilities, runs the install command for every missing
|
|
16
|
+
* binary after HITL confirmation. Idempotent — already-installed
|
|
17
|
+
* bins are skipped.
|
|
18
|
+
*
|
|
19
|
+
* `system-unification.test.ts` (Site ↔ Lambda contract test) is
|
|
20
|
+
* extended to also assert that every binary spawned from
|
|
21
|
+
* `src/capabilities/*.ts` has an entry here. That catches the "I
|
|
22
|
+
* added a tool but forgot the install hint" drift that would
|
|
23
|
+
* otherwise surface as a confused operator running into ENOENT.
|
|
24
|
+
*
|
|
25
|
+
* Kali is the assumed default, but the manifest carries cross-platform
|
|
26
|
+
* commands so a Linux-non-Kali / macOS / Windows operator can also
|
|
27
|
+
* bootstrap if their OS package manager has the tool.
|
|
28
|
+
*/
|
|
29
|
+
export type InstallChannel = 'pipx' | 'pip' | 'npm' | 'apt' | 'brew' | 'winget' | 'cargo' | 'go' | 'gem' | 'docker';
|
|
30
|
+
export interface BinaryRequirement {
|
|
31
|
+
/** Executable name on PATH. */
|
|
32
|
+
bin: string;
|
|
33
|
+
/** Capability id this requirement belongs to (matches CapabilityModule.id without the `capability.` prefix). */
|
|
34
|
+
capability: string;
|
|
35
|
+
/** Short description used in install prompts. */
|
|
36
|
+
description: string;
|
|
37
|
+
/**
|
|
38
|
+
* Install commands per channel. The runner picks the first available
|
|
39
|
+
* channel for the operator's platform (e.g. on Linux: prefer pipx for
|
|
40
|
+
* Python, then pip, then apt; on macOS: prefer brew). Every entry is
|
|
41
|
+
* a single shell line — runner shells out via `bash -lc <cmd>`.
|
|
42
|
+
*/
|
|
43
|
+
install: Partial<Record<InstallChannel, string>>;
|
|
44
|
+
/**
|
|
45
|
+
* Per-platform notes shown when the operator runs `erosolar offsec
|
|
46
|
+
* install` on that OS — used to point Windows users at WSL2 for
|
|
47
|
+
* tools that aren't packaged natively, or to flag Docker-only
|
|
48
|
+
* paths.
|
|
49
|
+
*/
|
|
50
|
+
notes?: Partial<Record<NodeJS.Platform, string>>;
|
|
51
|
+
/**
|
|
52
|
+
* If true, the bin is "nice to have" — its absence does not block
|
|
53
|
+
* the capability from loading; individual tool handlers may still
|
|
54
|
+
* fail. Used for optional integrations like pwndbg / GEF on top of
|
|
55
|
+
* gdb.
|
|
56
|
+
*/
|
|
57
|
+
optional?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Canonical channel preference order per platform. The first channel
|
|
61
|
+
* the binary's manifest entry lists in this order is what the
|
|
62
|
+
* installer will run. `pipx`/`pip`/`npm`/`cargo`/`go`/`gem` are the
|
|
63
|
+
* cross-platform escape hatches — any binary published to one of
|
|
64
|
+
* those channels works on every operator OS without needing a Kali
|
|
65
|
+
* box. `apt` is Debian/Kali/Ubuntu only; `brew` is macOS-first;
|
|
66
|
+
* `winget` is Windows.
|
|
67
|
+
*/
|
|
68
|
+
export declare const CHANNEL_PREFERENCE: Record<NodeJS.Platform | 'default', InstallChannel[]>;
|
|
69
|
+
export declare const BINARY_REQUIREMENTS: ReadonlyArray<BinaryRequirement>;
|
|
70
|
+
export declare function findRequirement(bin: string): BinaryRequirement | null;
|
|
71
|
+
export declare function requirementsForCapability(capability: string): BinaryRequirement[];
|
|
72
|
+
/**
|
|
73
|
+
* Choose the install command for a given platform. Walks the
|
|
74
|
+
* platform's preferred channel order; returns the first channel the
|
|
75
|
+
* requirement has a command for. Returns null when no channel matches
|
|
76
|
+
* (extremely rare — every entry should have at least one command).
|
|
77
|
+
*/
|
|
78
|
+
export declare function pickInstallCommand(req: BinaryRequirement, platform?: NodeJS.Platform): {
|
|
79
|
+
channel: InstallChannel;
|
|
80
|
+
cmd: string;
|
|
81
|
+
} | null;
|
|
82
|
+
/** Returns true when at least one platform install command exists. */
|
|
83
|
+
export declare function hasInstallCommand(req: BinaryRequirement): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Platform-availability heuristic. Returns true when the requirement
|
|
86
|
+
* has a channel that's actually usable on the given platform — i.e.
|
|
87
|
+
* the operator can plausibly install it without WSL/Docker.
|
|
88
|
+
*
|
|
89
|
+
* linux → any of: apt, pipx, pip, npm, cargo, go, gem
|
|
90
|
+
* darwin → any of: brew, pipx, pip, npm, cargo, go, gem
|
|
91
|
+
* win32 → any of: winget, pipx, pip, npm, cargo, go, gem
|
|
92
|
+
*
|
|
93
|
+
* Tools that are Linux-only at the source level (afl-fuzz, gdb without
|
|
94
|
+
* code-signing on macOS, hydra) carry a `notes` entry pointing at the
|
|
95
|
+
* WSL2 / Docker path. The installer surfaces those notes so the
|
|
96
|
+
* operator knows they need to take a manual route.
|
|
97
|
+
*/
|
|
98
|
+
export declare function isNativelyAvailable(req: BinaryRequirement, platform?: NodeJS.Platform): boolean;
|
|
99
|
+
/** Note for the operator's platform, if any. */
|
|
100
|
+
export declare function platformNote(req: BinaryRequirement, platform?: NodeJS.Platform): string | null;
|
|
101
|
+
//# sourceMappingURL=_binaryRequirements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_binaryRequirements.d.ts","sourceRoot":"","sources":["../../src/capabilities/_binaryRequirements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,MAAM,cAAc,GACtB,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE3F,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,gHAAgH;IAChH,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,cAAc,EAAE,CAK3B,CAAC;AAwB3D,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,iBAAiB,CA+JhE,CAAC;AAOF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAErE;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAEjF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,iBAAiB,EACtB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYjD;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAKjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,iBAAiB,EACtB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,OAAO,CAYT;AAED,gDAAgD;AAChD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,iBAAiB,EACtB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,GAAG,IAAI,CAEf"}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for every external binary the offsec
|
|
3
|
+
* capability surface invokes.
|
|
4
|
+
*
|
|
5
|
+
* Each entry maps `bin` → install commands (one per bootstrap channel)
|
|
6
|
+
* + the capability that needs it. Two things consume this manifest:
|
|
7
|
+
*
|
|
8
|
+
* 1. `ensureBinary(bin)` (in _processRunner.ts) — the runtime
|
|
9
|
+
* preflight every offsec tool handler runs before spawn. Missing
|
|
10
|
+
* binary → clean error with the install hint instead of cryptic
|
|
11
|
+
* ENOENT.
|
|
12
|
+
*
|
|
13
|
+
* 2. `erosolar offsec install` — the operator-facing self-bootstrap.
|
|
14
|
+
* Reads the manifest, filters to the active profile's
|
|
15
|
+
* capabilities, runs the install command for every missing
|
|
16
|
+
* binary after HITL confirmation. Idempotent — already-installed
|
|
17
|
+
* bins are skipped.
|
|
18
|
+
*
|
|
19
|
+
* `system-unification.test.ts` (Site ↔ Lambda contract test) is
|
|
20
|
+
* extended to also assert that every binary spawned from
|
|
21
|
+
* `src/capabilities/*.ts` has an entry here. That catches the "I
|
|
22
|
+
* added a tool but forgot the install hint" drift that would
|
|
23
|
+
* otherwise surface as a confused operator running into ENOENT.
|
|
24
|
+
*
|
|
25
|
+
* Kali is the assumed default, but the manifest carries cross-platform
|
|
26
|
+
* commands so a Linux-non-Kali / macOS / Windows operator can also
|
|
27
|
+
* bootstrap if their OS package manager has the tool.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Canonical channel preference order per platform. The first channel
|
|
31
|
+
* the binary's manifest entry lists in this order is what the
|
|
32
|
+
* installer will run. `pipx`/`pip`/`npm`/`cargo`/`go`/`gem` are the
|
|
33
|
+
* cross-platform escape hatches — any binary published to one of
|
|
34
|
+
* those channels works on every operator OS without needing a Kali
|
|
35
|
+
* box. `apt` is Debian/Kali/Ubuntu only; `brew` is macOS-first;
|
|
36
|
+
* `winget` is Windows.
|
|
37
|
+
*/
|
|
38
|
+
export const CHANNEL_PREFERENCE = {
|
|
39
|
+
linux: ['apt', 'pipx', 'pip', 'npm', 'gem', 'cargo', 'go', 'docker'],
|
|
40
|
+
darwin: ['brew', 'pipx', 'pip', 'npm', 'gem', 'cargo', 'go', 'docker'],
|
|
41
|
+
win32: ['winget', 'pipx', 'pip', 'npm', 'gem', 'cargo', 'go', 'docker'],
|
|
42
|
+
default: ['pipx', 'pip', 'npm', 'apt', 'brew', 'winget', 'gem', 'cargo', 'go', 'docker'],
|
|
43
|
+
};
|
|
44
|
+
// ── Manifest ──────────────────────────────────────────────────────
|
|
45
|
+
//
|
|
46
|
+
// Keep alphabetical within each capability block so the test
|
|
47
|
+
// (system-unification — every spawn has an entry) gives readable
|
|
48
|
+
// diffs when something drifts.
|
|
49
|
+
// Cross-platform availability matrix:
|
|
50
|
+
// pipx / pip / npm / cargo / go / gem → all 3 platforms (Linux / macOS / Windows native)
|
|
51
|
+
// apt → Debian / Ubuntu / Kali only
|
|
52
|
+
// brew → macOS first-class; works on Linux but unusual
|
|
53
|
+
// winget → Windows-native package manager
|
|
54
|
+
// docker → universal escape hatch
|
|
55
|
+
//
|
|
56
|
+
// Every binary below either:
|
|
57
|
+
// (a) has a cross-platform channel (pipx / npm / cargo / go / gem) that
|
|
58
|
+
// works on macOS / Windows / non-Kali Linux without sudo, OR
|
|
59
|
+
// (b) carries a `notes` entry explaining the platform's recommended
|
|
60
|
+
// path (typically: WSL2 on Windows, Homebrew on macOS).
|
|
61
|
+
// Operators on macOS / Windows / Ubuntu never need to install Kali to
|
|
62
|
+
// run the offsec capabilities — they install only what their platform
|
|
63
|
+
// supports, and the runtime gracefully degrades for the rest.
|
|
64
|
+
export const BINARY_REQUIREMENTS = [
|
|
65
|
+
// ─── kali (general offsec) ────────────────────────────────────
|
|
66
|
+
{ bin: 'amass', capability: 'kali', description: 'OWASP Amass — DNS/cert-graph subdomain enumeration.',
|
|
67
|
+
install: { apt: 'sudo apt-get update && sudo apt-get install -y amass',
|
|
68
|
+
go: 'go install -v github.com/owasp-amass/amass/v4/...@master',
|
|
69
|
+
brew: 'brew install amass',
|
|
70
|
+
docker: 'docker pull caffix/amass' } },
|
|
71
|
+
{ bin: 'feroxbuster', capability: 'kali', description: 'Recursive content / virtual-host fuzzer.',
|
|
72
|
+
install: { apt: 'sudo apt-get install -y feroxbuster',
|
|
73
|
+
cargo: 'cargo install feroxbuster',
|
|
74
|
+
brew: 'brew install feroxbuster',
|
|
75
|
+
winget: 'winget install epi052.feroxbuster' } },
|
|
76
|
+
{ bin: 'ffuf', capability: 'kali', description: 'Fast web fuzzer (paths / params / vhosts).',
|
|
77
|
+
install: { apt: 'sudo apt-get install -y ffuf',
|
|
78
|
+
go: 'go install github.com/ffuf/ffuf/v2@latest',
|
|
79
|
+
brew: 'brew install ffuf',
|
|
80
|
+
docker: 'docker pull ffuf/ffuf' } },
|
|
81
|
+
{ bin: 'gobuster', capability: 'kali', description: 'Directory / DNS / vhost bruteforcer.',
|
|
82
|
+
install: { apt: 'sudo apt-get install -y gobuster',
|
|
83
|
+
go: 'go install github.com/OJ/gobuster/v3@latest',
|
|
84
|
+
brew: 'brew install gobuster' } },
|
|
85
|
+
{ bin: 'hashcat', capability: 'kali', description: 'GPU-accelerated password cracker.',
|
|
86
|
+
install: { apt: 'sudo apt-get install -y hashcat',
|
|
87
|
+
brew: 'brew install hashcat',
|
|
88
|
+
winget: 'winget install hashcat.hashcat' },
|
|
89
|
+
notes: { win32: 'GPU acceleration on Windows requires NVIDIA / AMD drivers + correct hashcat build for your GPU.' } },
|
|
90
|
+
{ bin: 'hydra', capability: 'kali', description: 'Online password brute-forcer (ssh, ftp, http-post-form, …).',
|
|
91
|
+
install: { apt: 'sudo apt-get install -y hydra',
|
|
92
|
+
brew: 'brew install hydra',
|
|
93
|
+
docker: 'docker pull vanhauser/hydra' },
|
|
94
|
+
notes: { win32: 'No native Windows build — run via WSL2 (`wsl sudo apt install hydra`) or Docker.' } },
|
|
95
|
+
{ bin: 'john', capability: 'kali', description: 'John the Ripper — offline password cracker.',
|
|
96
|
+
install: { apt: 'sudo apt-get install -y john',
|
|
97
|
+
brew: 'brew install john',
|
|
98
|
+
docker: 'docker pull openwall/john' },
|
|
99
|
+
notes: { win32: 'Use the Jumbo build from openwall.com or run inside WSL2.' } },
|
|
100
|
+
{ bin: 'masscan', capability: 'kali', description: 'Async port scanner — internet-scale speed.',
|
|
101
|
+
install: { apt: 'sudo apt-get install -y masscan',
|
|
102
|
+
brew: 'brew install masscan',
|
|
103
|
+
docker: 'docker pull ilyaglow/masscan' },
|
|
104
|
+
notes: { win32: 'Raw-socket scanning needs npcap on Windows; WSL2 typically simpler.' } },
|
|
105
|
+
{ bin: 'nikto', capability: 'kali', description: 'Legacy web-server vulnerability scanner.',
|
|
106
|
+
install: { apt: 'sudo apt-get install -y nikto',
|
|
107
|
+
brew: 'brew install nikto',
|
|
108
|
+
docker: 'docker pull frapsoft/nikto' } },
|
|
109
|
+
{ bin: 'sqlmap', capability: 'kali', description: 'Automated SQL-injection exploitation.',
|
|
110
|
+
install: { apt: 'sudo apt-get install -y sqlmap',
|
|
111
|
+
pipx: 'pipx install sqlmap',
|
|
112
|
+
brew: 'brew install sqlmap' } },
|
|
113
|
+
{ bin: 'subfinder', capability: 'kali', description: 'Passive subdomain enumeration (ProjectDiscovery).',
|
|
114
|
+
install: { apt: 'sudo apt-get install -y subfinder',
|
|
115
|
+
go: 'go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest',
|
|
116
|
+
brew: 'brew install subfinder',
|
|
117
|
+
docker: 'docker pull projectdiscovery/subfinder' } },
|
|
118
|
+
{ bin: 'wpscan', capability: 'kali', description: 'WordPress vulnerability scanner.',
|
|
119
|
+
install: { apt: 'sudo apt-get install -y wpscan',
|
|
120
|
+
gem: 'gem install wpscan',
|
|
121
|
+
brew: 'brew install wpscan',
|
|
122
|
+
docker: 'docker pull wpscanteam/wpscan' } },
|
|
123
|
+
// ─── aflpp (coverage-guided fuzzing) ──────────────────────────
|
|
124
|
+
{ bin: 'afl-fuzz', capability: 'aflpp', description: 'AFL++ coverage-guided fuzzer.',
|
|
125
|
+
install: { apt: 'sudo apt-get install -y afl++',
|
|
126
|
+
brew: 'brew install afl++',
|
|
127
|
+
docker: 'docker pull aflplusplus/aflplusplus' },
|
|
128
|
+
notes: { win32: 'AFL++ does not support Windows directly. Run inside WSL2 or use the aflplusplus/aflplusplus Docker image.' } },
|
|
129
|
+
{ bin: 'afl-showmap', capability: 'aflpp', description: 'AFL++ coverage-map dumper.',
|
|
130
|
+
install: { apt: 'sudo apt-get install -y afl++',
|
|
131
|
+
brew: 'brew install afl++',
|
|
132
|
+
docker: 'docker pull aflplusplus/aflplusplus' } },
|
|
133
|
+
{ bin: 'afl-cmin', capability: 'aflpp', description: 'AFL++ corpus minimizer.',
|
|
134
|
+
install: { apt: 'sudo apt-get install -y afl++',
|
|
135
|
+
brew: 'brew install afl++' } },
|
|
136
|
+
{ bin: 'afl-tmin', capability: 'aflpp', description: 'AFL++ test-case minimizer.',
|
|
137
|
+
install: { apt: 'sudo apt-get install -y afl++',
|
|
138
|
+
brew: 'brew install afl++' } },
|
|
139
|
+
{ bin: 'afl-clang-fast', capability: 'aflpp', description: 'AFL++ instrumented LLVM compiler.', optional: true,
|
|
140
|
+
install: { apt: 'sudo apt-get install -y afl++-clang',
|
|
141
|
+
brew: 'brew install afl++' } },
|
|
142
|
+
{ bin: 'afl-clang-lto', capability: 'aflpp', description: 'AFL++ LTO-instrumented compiler.', optional: true,
|
|
143
|
+
install: { apt: 'sudo apt-get install -y afl++-clang',
|
|
144
|
+
brew: 'brew install afl++' } },
|
|
145
|
+
// ─── gdb (binary triage) ──────────────────────────────────────
|
|
146
|
+
{ bin: 'gdb', capability: 'gdb', description: 'GNU debugger (use with pwndbg or GEF for offsec workflow).',
|
|
147
|
+
install: { apt: 'sudo apt-get install -y gdb',
|
|
148
|
+
brew: 'brew install gdb' },
|
|
149
|
+
notes: {
|
|
150
|
+
darwin: 'macOS requires code-signing the gdb binary; lldb is the supported alternative on Apple Silicon.',
|
|
151
|
+
win32: 'No native Windows build — use MinGW gdb or WSL2.',
|
|
152
|
+
} },
|
|
153
|
+
// pwndbg / GEF are gdb extensions — installed via their .gdbinit.
|
|
154
|
+
// Tracked optional so the audit doesn't fail when only gdb is present.
|
|
155
|
+
{ bin: 'pwndbg', capability: 'gdb', description: 'Augmented gdb plugin (heap / rop / vmmap commands).', optional: true,
|
|
156
|
+
install: { apt: 'sudo apt-get install -y pwndbg',
|
|
157
|
+
pip: 'pip install --user pwndbg' } },
|
|
158
|
+
// ─── pwntools (exploit dev) ───────────────────────────────────
|
|
159
|
+
{ bin: 'python3', capability: 'pwntools', description: 'Python 3 — runs pwntools scripts.',
|
|
160
|
+
install: { apt: 'sudo apt-get install -y python3 python3-pip python3-venv',
|
|
161
|
+
brew: 'brew install python@3.12',
|
|
162
|
+
winget: 'winget install Python.Python.3.12' } },
|
|
163
|
+
{ bin: 'pwn', capability: 'pwntools', description: 'pwntools CLI — gadget / shellcode helpers.',
|
|
164
|
+
install: { pipx: 'pipx install pwntools',
|
|
165
|
+
pip: 'pip install --user pwntools',
|
|
166
|
+
apt: 'sudo apt-get install -y python3-pwntools' } },
|
|
167
|
+
// ─── binaryAnalysis ───────────────────────────────────────────
|
|
168
|
+
{ bin: 'objdump', capability: 'binaryAnalysis', description: 'GNU objdump — section / disasm dumps.',
|
|
169
|
+
install: { apt: 'sudo apt-get install -y binutils',
|
|
170
|
+
brew: 'brew install binutils',
|
|
171
|
+
winget: 'winget install GnuWin32.Binutils' } },
|
|
172
|
+
{ bin: 'readelf', capability: 'binaryAnalysis', description: 'GNU readelf — ELF header / section walker.',
|
|
173
|
+
install: { apt: 'sudo apt-get install -y binutils',
|
|
174
|
+
brew: 'brew install binutils' } },
|
|
175
|
+
{ bin: 'r2', capability: 'binaryAnalysis', description: 'radare2 — interactive RE framework (CLI).',
|
|
176
|
+
install: { apt: 'sudo apt-get install -y radare2',
|
|
177
|
+
brew: 'brew install radare2',
|
|
178
|
+
winget: 'winget install radare.radare2' } },
|
|
179
|
+
{ bin: 'checksec', capability: 'binaryAnalysis', description: 'ELF security-feature audit (RELRO, NX, PIE, …).',
|
|
180
|
+
install: { apt: 'sudo apt-get install -y checksec',
|
|
181
|
+
pipx: 'pipx install checksec.py',
|
|
182
|
+
brew: 'brew install checksec' } },
|
|
183
|
+
{ bin: 'file', capability: 'binaryAnalysis', description: 'libmagic-based file-type identification.',
|
|
184
|
+
install: { apt: 'sudo apt-get install -y file',
|
|
185
|
+
brew: 'brew install file-formula' },
|
|
186
|
+
notes: { win32: 'Bundled inside Git-for-Windows or available via MSYS2 — no winget package.' } },
|
|
187
|
+
{ bin: 'strings', capability: 'binaryAnalysis', description: 'Print printable strings from object / executable files (binutils).',
|
|
188
|
+
install: { apt: 'sudo apt-get install -y binutils',
|
|
189
|
+
brew: 'brew install binutils',
|
|
190
|
+
winget: 'winget install GnuWin32.Binutils' } },
|
|
191
|
+
{ bin: 'nm', capability: 'binaryAnalysis', description: 'List symbols from object files (binutils).',
|
|
192
|
+
install: { apt: 'sudo apt-get install -y binutils',
|
|
193
|
+
brew: 'brew install binutils',
|
|
194
|
+
winget: 'winget install GnuWin32.Binutils' } },
|
|
195
|
+
{ bin: 'ROPgadget', capability: 'binaryAnalysis', description: 'ROP-gadget search across ELF / PE / Mach-O.',
|
|
196
|
+
install: { pipx: 'pipx install ROPGadget',
|
|
197
|
+
pip: 'pip install --user ROPGadget',
|
|
198
|
+
apt: 'sudo apt-get install -y python3-ropgadget' } },
|
|
199
|
+
// ─── ghidra ───────────────────────────────────────────────────
|
|
200
|
+
{ bin: 'analyzeHeadless', capability: 'ghidra', description: 'NSA Ghidra headless analyser.',
|
|
201
|
+
install: { apt: 'sudo apt-get install -y ghidra',
|
|
202
|
+
brew: 'brew install --cask ghidra',
|
|
203
|
+
winget: 'winget install nsa.ghidra',
|
|
204
|
+
docker: 'docker pull blacktop/ghidra' } },
|
|
205
|
+
// ─── llmRedteam (cross-platform pure-Python / pure-Node) ──────
|
|
206
|
+
{ bin: 'garak', capability: 'llmRedteam', description: 'LLM vulnerability scanner — prompt-injection / jailbreak / leakage probes.',
|
|
207
|
+
install: {
|
|
208
|
+
pipx: 'pipx install garak',
|
|
209
|
+
pip: 'pip install --user garak',
|
|
210
|
+
docker: 'docker pull leondz/garak',
|
|
211
|
+
} },
|
|
212
|
+
{ bin: 'promptfoo', capability: 'llmRedteam', description: 'LLM eval framework — `redteam` subcommand auto-generates jailbreak / harmful / PII probes.',
|
|
213
|
+
install: {
|
|
214
|
+
npm: 'npm install -g promptfoo',
|
|
215
|
+
brew: 'brew install promptfoo',
|
|
216
|
+
} },
|
|
217
|
+
];
|
|
218
|
+
// ── Lookup helpers ───────────────────────────────────────────────
|
|
219
|
+
const REQ_BY_BIN = new Map(BINARY_REQUIREMENTS.map((r) => [r.bin, r]));
|
|
220
|
+
export function findRequirement(bin) {
|
|
221
|
+
return REQ_BY_BIN.get(bin) ?? null;
|
|
222
|
+
}
|
|
223
|
+
export function requirementsForCapability(capability) {
|
|
224
|
+
return BINARY_REQUIREMENTS.filter((r) => r.capability === capability);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Choose the install command for a given platform. Walks the
|
|
228
|
+
* platform's preferred channel order; returns the first channel the
|
|
229
|
+
* requirement has a command for. Returns null when no channel matches
|
|
230
|
+
* (extremely rare — every entry should have at least one command).
|
|
231
|
+
*/
|
|
232
|
+
export function pickInstallCommand(req, platform = process.platform) {
|
|
233
|
+
const order = CHANNEL_PREFERENCE[platform] || CHANNEL_PREFERENCE.default;
|
|
234
|
+
for (const ch of order) {
|
|
235
|
+
const cmd = req.install[ch];
|
|
236
|
+
if (cmd)
|
|
237
|
+
return { channel: ch, cmd };
|
|
238
|
+
}
|
|
239
|
+
// Fall through to ANY channel if the platform-preferred order has none.
|
|
240
|
+
for (const ch of Object.keys(req.install)) {
|
|
241
|
+
const cmd = req.install[ch];
|
|
242
|
+
if (cmd)
|
|
243
|
+
return { channel: ch, cmd };
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
/** Returns true when at least one platform install command exists. */
|
|
248
|
+
export function hasInstallCommand(req) {
|
|
249
|
+
for (const ch of Object.keys(req.install)) {
|
|
250
|
+
if (req.install[ch])
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Platform-availability heuristic. Returns true when the requirement
|
|
257
|
+
* has a channel that's actually usable on the given platform — i.e.
|
|
258
|
+
* the operator can plausibly install it without WSL/Docker.
|
|
259
|
+
*
|
|
260
|
+
* linux → any of: apt, pipx, pip, npm, cargo, go, gem
|
|
261
|
+
* darwin → any of: brew, pipx, pip, npm, cargo, go, gem
|
|
262
|
+
* win32 → any of: winget, pipx, pip, npm, cargo, go, gem
|
|
263
|
+
*
|
|
264
|
+
* Tools that are Linux-only at the source level (afl-fuzz, gdb without
|
|
265
|
+
* code-signing on macOS, hydra) carry a `notes` entry pointing at the
|
|
266
|
+
* WSL2 / Docker path. The installer surfaces those notes so the
|
|
267
|
+
* operator knows they need to take a manual route.
|
|
268
|
+
*/
|
|
269
|
+
export function isNativelyAvailable(req, platform = process.platform) {
|
|
270
|
+
const exclusiveChannels = {
|
|
271
|
+
linux: new Set(['apt', 'pipx', 'pip', 'npm', 'cargo', 'go', 'gem']),
|
|
272
|
+
darwin: new Set(['brew', 'pipx', 'pip', 'npm', 'cargo', 'go', 'gem']),
|
|
273
|
+
win32: new Set(['winget', 'pipx', 'pip', 'npm', 'cargo', 'go', 'gem']),
|
|
274
|
+
};
|
|
275
|
+
const allowed = exclusiveChannels[platform];
|
|
276
|
+
if (!allowed)
|
|
277
|
+
return hasInstallCommand(req);
|
|
278
|
+
for (const ch of Object.keys(req.install)) {
|
|
279
|
+
if (req.install[ch] && allowed.has(ch))
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
/** Note for the operator's platform, if any. */
|
|
285
|
+
export function platformNote(req, platform = process.platform) {
|
|
286
|
+
return req.notes?.[platform] ?? null;
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=_binaryRequirements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_binaryRequirements.js","sourceRoot":"","sources":["../../src/capabilities/_binaryRequirements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operations-Center wiring for offsec capabilities.
|
|
3
|
+
*
|
|
4
|
+
* Every offsec tool wrapper (recon / web / llmRedteam / network / mobile)
|
|
5
|
+
* shares this single helper. It abstracts:
|
|
6
|
+
*
|
|
7
|
+
* • Engagement-scope enforcement (defence-in-depth — the Lambda
|
|
8
|
+
* re-checks server-side, but a CLI-side gate trips faster + emits
|
|
9
|
+
* a clearer error before any process spawns).
|
|
10
|
+
* • Long-running job lifecycle (start → append-log → progress →
|
|
11
|
+
* complete) routed through the existing cliJob* Lambda surface,
|
|
12
|
+
* which the portal's #jobsList rail listens to via Firestore.
|
|
13
|
+
* • HITL approval prompts (cliQuestionCreate / cliQuestionPoll) for
|
|
14
|
+
* destructive ops, so the operator can veto from the portal.
|
|
15
|
+
* • Findings emission with a unified schema — every tool's output
|
|
16
|
+
* normalised so the portal's #findingsList rail renders without
|
|
17
|
+
* per-tool special-casing.
|
|
18
|
+
*
|
|
19
|
+
* Tools that own a long-running scan should:
|
|
20
|
+
*
|
|
21
|
+
* const job = await opsCtx.startJob({ tool: 'garak', kind: 'llmRedteam',
|
|
22
|
+
* targetId, cmd: ['garak', ...] });
|
|
23
|
+
* for await (const line of job.lines()) {
|
|
24
|
+
* await job.appendLog(line);
|
|
25
|
+
* const finding = parse(line);
|
|
26
|
+
* if (finding) await opsCtx.emitFinding(finding);
|
|
27
|
+
* }
|
|
28
|
+
* await job.complete('done', { probesRun: N, findingsEmitted: M });
|
|
29
|
+
*
|
|
30
|
+
* The `lines()` iterator is backed by the existing Monitor capability
|
|
31
|
+
* (background spawn + streaming reader). Multiple jobs run concurrently
|
|
32
|
+
* without blocking the agent loop.
|
|
33
|
+
*/
|
|
34
|
+
export type FindingSeverity = 'info' | 'low' | 'medium' | 'high' | 'critical';
|
|
35
|
+
export type FindingSource = 'recon' | 'web' | 'llmRedteam' | 'network' | 'mobile' | 'manual';
|
|
36
|
+
export type FindingStatus = 'new' | 'validated' | 'duplicate' | 'invalid' | 'reported' | 'closed';
|
|
37
|
+
export interface FindingDraft {
|
|
38
|
+
engagementId?: string | null;
|
|
39
|
+
targetId?: string | null;
|
|
40
|
+
source: FindingSource;
|
|
41
|
+
tool: string;
|
|
42
|
+
severity: FindingSeverity;
|
|
43
|
+
title: string;
|
|
44
|
+
description: string;
|
|
45
|
+
/** Exact reproducer (curl line, garak invocation, nmap line). */
|
|
46
|
+
replication: string;
|
|
47
|
+
evidence?: {
|
|
48
|
+
request?: string;
|
|
49
|
+
response?: string;
|
|
50
|
+
transcript?: string;
|
|
51
|
+
screenshot?: string;
|
|
52
|
+
pcap?: string;
|
|
53
|
+
paths?: string[];
|
|
54
|
+
raw?: unknown;
|
|
55
|
+
};
|
|
56
|
+
cwe?: string;
|
|
57
|
+
cvss?: {
|
|
58
|
+
vector: string;
|
|
59
|
+
score: number;
|
|
60
|
+
};
|
|
61
|
+
jobId?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface ScopeTarget {
|
|
64
|
+
host?: string;
|
|
65
|
+
cidr?: string;
|
|
66
|
+
url?: string;
|
|
67
|
+
/** LLM endpoint (e.g. an https URL pointing at /v1/chat/completions). */
|
|
68
|
+
endpoint?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface JobSpec {
|
|
71
|
+
tool: string;
|
|
72
|
+
kind: string;
|
|
73
|
+
cmd: string[];
|
|
74
|
+
targetId?: string | null;
|
|
75
|
+
engagementId?: string | null;
|
|
76
|
+
/** Optional cwd for the spawn. */
|
|
77
|
+
cwd?: string;
|
|
78
|
+
/** Optional env overlay. */
|
|
79
|
+
env?: Record<string, string>;
|
|
80
|
+
/** Hard timeout in ms (default 30 min). */
|
|
81
|
+
timeoutMs?: number;
|
|
82
|
+
}
|
|
83
|
+
export interface JobHandle {
|
|
84
|
+
readonly id: string;
|
|
85
|
+
/** Async iterator over stdout+stderr lines. */
|
|
86
|
+
lines(): AsyncIterableIterator<string>;
|
|
87
|
+
appendLog(line: string): Promise<void>;
|
|
88
|
+
setProgress(pct: number, lastLine?: string): Promise<void>;
|
|
89
|
+
complete(status: 'done' | 'failed' | 'cancelled', summary?: object): Promise<void>;
|
|
90
|
+
/** Force-kill the underlying process. */
|
|
91
|
+
cancel(): void;
|
|
92
|
+
}
|
|
93
|
+
export interface ApprovalRequest {
|
|
94
|
+
severity: 'risky' | 'destructive';
|
|
95
|
+
question: string;
|
|
96
|
+
/** Single-select; 2..9 options. The first option is the safe default. */
|
|
97
|
+
options: Array<{
|
|
98
|
+
label: string;
|
|
99
|
+
description?: string;
|
|
100
|
+
}>;
|
|
101
|
+
/** How long to wait for an answer before falling back. Default 300s. */
|
|
102
|
+
timeoutSec?: number;
|
|
103
|
+
/** Action to take if the operator does not answer in time. */
|
|
104
|
+
defaultOnTimeout?: 'proceed' | 'abort';
|
|
105
|
+
}
|
|
106
|
+
export interface OpsContext {
|
|
107
|
+
/** Current engagement (set when the operator selects one in the portal). */
|
|
108
|
+
readonly engagementId: string | null;
|
|
109
|
+
readonly uid: string | null;
|
|
110
|
+
/** Throw if `target` is outside the engagement's allowed scope. */
|
|
111
|
+
assertInScope(target: ScopeTarget): Promise<void>;
|
|
112
|
+
/** Spawn a long-running tool, register a Job doc, return a streaming handle. */
|
|
113
|
+
startJob(spec: JobSpec): Promise<JobHandle>;
|
|
114
|
+
/** Block on operator HITL approval; resolves to the chosen option label. */
|
|
115
|
+
requestApproval(req: ApprovalRequest): Promise<string>;
|
|
116
|
+
/** Persist a finding under the user's findings collection. */
|
|
117
|
+
emitFinding(draft: FindingDraft): Promise<string>;
|
|
118
|
+
}
|
|
119
|
+
export interface NodeOpsContextOptions {
|
|
120
|
+
engagementId?: string | null;
|
|
121
|
+
uid?: string | null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Build an OpsContext for a CLI agent session. The engagementId can be
|
|
125
|
+
* threaded in from the active engagement (set via the portal or
|
|
126
|
+
* EngagementCapability tool calls).
|
|
127
|
+
*/
|
|
128
|
+
export declare function createOpsContext(opts?: NodeOpsContextOptions): OpsContext;
|
|
129
|
+
//# sourceMappingURL=_opsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_opsContext.d.ts","sourceRoot":"","sources":["../../src/capabilities/_opsContext.ts"],"names":[],"mappings":"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"}
|