@integsec/agentic-pentest-proxy 0.3.5 → 0.3.7
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/cloudflare/wrangler.jsonc +1 -1
- package/dist/bin/integsec-agentic-pentest-bridge.js +2 -2
- package/dist/bin/integsec-agentic-pentest-gateway.js +120 -34
- package/dist/bin/integsec-agentic-pentest-gateway.js.map +1 -1
- package/dist/bin/integsec-agentic-pentest-tui.js +5 -0
- package/dist/bin/integsec-agentic-pentest-tui.js.map +1 -1
- package/dist/src/audit/local.js +2 -2
- package/dist/src/audit/local.js.map +1 -1
- package/dist/src/config.js +1 -1
- package/dist/src/gateway/admin.html +1 -1
- package/dist/src/gateway/docs-home.html +1 -1
- package/dist/src/gateway/local-control.d.ts +27 -0
- package/dist/src/gateway/local-control.d.ts.map +1 -0
- package/dist/src/gateway/local-control.js +176 -0
- package/dist/src/gateway/local-control.js.map +1 -0
- package/dist/src/gateway/local-paths.d.ts +7 -0
- package/dist/src/gateway/local-paths.d.ts.map +1 -0
- package/dist/src/gateway/local-paths.js +30 -0
- package/dist/src/gateway/local-paths.js.map +1 -0
- package/dist/src/gateway/runtime.js +2 -2
- package/dist/src/gateway/server.d.ts +2 -0
- package/dist/src/gateway/server.d.ts.map +1 -1
- package/dist/src/gateway/server.js +26 -1
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/technique-checker.d.ts.map +1 -1
- package/dist/src/technique-checker.js +4 -0
- package/dist/src/technique-checker.js.map +1 -1
- package/dist/src/validator.d.ts.map +1 -1
- package/dist/src/validator.js +104 -2
- package/dist/src/validator.js.map +1 -1
- package/docs/configuration.md +1 -1
- package/docs/managed-gateway.md +7 -3
- package/docs/tui.md +2 -0
- package/package.json +2 -1
- package/scripts/postinstall.cjs +4 -2
|
@@ -12,9 +12,9 @@ const url = new URL(process.argv[2] ?? process.env.GATEWAY_URL ?? "http://127.0.
|
|
|
12
12
|
if (!["127.0.0.1", "localhost", "[::1]"].includes(url.hostname) || url.protocol !== "http:") {
|
|
13
13
|
throw new Error("The local bridge only accepts a loopback HTTP gateway URL");
|
|
14
14
|
}
|
|
15
|
-
const upstream = new Client({ name: "agentic-pentest-bridge", version: "0.3.
|
|
15
|
+
const upstream = new Client({ name: "agentic-pentest-bridge", version: "0.3.7" });
|
|
16
16
|
await upstream.connect(new StreamableHTTPClientTransport(url));
|
|
17
|
-
const bridge = new Server({ name: "agentic-pentest-local", version: "0.3.
|
|
17
|
+
const bridge = new Server({ name: "agentic-pentest-local", version: "0.3.7" }, { capabilities: { tools: {} } });
|
|
18
18
|
bridge.setRequestHandler(ListToolsRequestSchema, async (request) => upstream.listTools(request.params));
|
|
19
19
|
bridge.setRequestHandler(CallToolRequestSchema, async (request) => upstream.callTool(request.params));
|
|
20
20
|
await bridge.connect(new StdioServerTransport());
|
|
@@ -1,51 +1,137 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import "dotenv/config";
|
|
3
3
|
import { randomBytes } from "node:crypto";
|
|
4
|
+
import { mkdirSync } from "node:fs";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
4
6
|
import { createGateway } from "../src/gateway/server.js";
|
|
5
|
-
|
|
7
|
+
import { defaultGatewayPaths, migrateLegacyGatewayState } from "../src/gateway/local-paths.js";
|
|
8
|
+
import { localGatewayStatus, removeLocalControlFile, startLocalGateway, stopLocalGateway } from "../src/gateway/local-control.js";
|
|
9
|
+
const command = process.argv[2] ?? "run";
|
|
10
|
+
if (["--help", "-h", "help"].includes(command)) {
|
|
6
11
|
console.log(`IntegSec MCP Gateway
|
|
7
12
|
|
|
8
13
|
Manage MCP upstreams and engagement scopes in a browser, then connect an MCP client at /mcp.
|
|
9
14
|
|
|
10
|
-
Local
|
|
11
|
-
|
|
12
|
-
|
|
15
|
+
Local commands:
|
|
16
|
+
integsec-gateway start Start in the background and print the admin token
|
|
17
|
+
integsec-gateway status Check whether the background gateway is running
|
|
18
|
+
integsec-gateway stop Stop the background gateway
|
|
19
|
+
integsec-gateway run Run in this terminal (Ctrl+C to stop)
|
|
20
|
+
|
|
21
|
+
The longer integsec-agentic-pentest-gateway command works the same way.
|
|
22
|
+
Running without a command still uses foreground mode for compatibility.
|
|
23
|
+
Set GATEWAY_ADMIN_TOKEN (at least 32 characters) for a stable token.
|
|
24
|
+
Optional: GATEWAY_HOST (127.0.0.1), GATEWAY_PORT (9091), GATEWAY_STATE_PATH.
|
|
25
|
+
State and audit logs default to your operating system's per-user data directory.
|
|
13
26
|
Hosted with Cloudflare Access: GATEWAY_PUBLIC_URL, GATEWAY_AUTH_MODE=cloudflare,
|
|
14
27
|
CLOUDFLARE_TEAM_DOMAIN, CLOUDFLARE_ACCESS_AUD,
|
|
15
28
|
GATEWAY_BOOTSTRAP_ADMIN_EMAILS (comma-separated).
|
|
16
29
|
Hosted with direct Entra: GATEWAY_PUBLIC_URL, ENTRA_TENANT, ENTRA_AUDIENCE, ENTRA_SCOPE.
|
|
17
30
|
|
|
18
|
-
Run: integsec-agentic-pentest-gateway
|
|
19
31
|
Open: http://127.0.0.1:9091/admin
|
|
20
32
|
`);
|
|
21
|
-
process.exit(0);
|
|
22
33
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
console.error(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
34
|
+
else if (command === "start") {
|
|
35
|
+
try {
|
|
36
|
+
const result = await startLocalGateway(fileURLToPath(import.meta.url));
|
|
37
|
+
console.log(result.alreadyRunning ? `Gateway already running. Open http://127.0.0.1:${result.port}/admin` : `Gateway started in the background. Open http://127.0.0.1:${result.port}/admin`);
|
|
38
|
+
if (result.adminToken)
|
|
39
|
+
console.log(`Admin token (paste into the page): ${result.adminToken}`);
|
|
40
|
+
else if (!result.alreadyRunning)
|
|
41
|
+
console.log("Use the GATEWAY_ADMIN_TOKEN you configured to sign in.");
|
|
42
|
+
console.log("Check: integsec-gateway status Stop: integsec-gateway stop");
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error(`[gateway] ${error instanceof Error ? error.message : String(error)}`);
|
|
46
|
+
process.exitCode = 1;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (command === "status") {
|
|
50
|
+
try {
|
|
51
|
+
const result = await localGatewayStatus();
|
|
52
|
+
console.log(result.running ? `Gateway running. Open http://127.0.0.1:${result.record.port}/admin` : result.starting ? "Gateway is starting. Try status again shortly." : result.foreground ? `A gateway is running in another terminal on port ${result.port}. Stop it there with Ctrl+C.` : "No local gateway is running.");
|
|
53
|
+
process.exitCode = result.running || result.foreground ? 0 : 1;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error(`[gateway] ${error instanceof Error ? error.message : String(error)}`);
|
|
57
|
+
process.exitCode = 1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (command === "stop") {
|
|
61
|
+
try {
|
|
62
|
+
if (await stopLocalGateway())
|
|
63
|
+
console.log("Gateway stopped.");
|
|
64
|
+
else {
|
|
65
|
+
const result = await localGatewayStatus();
|
|
66
|
+
console.log(result.foreground ? `This gateway is running in another terminal on port ${result.port}. Stop it there with Ctrl+C.` : "No managed background gateway is running.");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.error(`[gateway] ${error instanceof Error ? error.message : String(error)}`);
|
|
71
|
+
process.exitCode = 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (command !== "run") {
|
|
75
|
+
console.error(`Unknown command: ${command}. Run integsec-gateway --help.`);
|
|
76
|
+
process.exitCode = 1;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
if (process.env.GATEWAY_CONTROL_TOKEN && process.env.GATEWAY_CONTROL_FILE)
|
|
80
|
+
process.on("exit", removeLocalControlFile);
|
|
81
|
+
const host = process.env.GATEWAY_HOST ?? "127.0.0.1";
|
|
82
|
+
const local = !process.env.GATEWAY_PUBLIC_URL && (host === "127.0.0.1" || host === "::1");
|
|
83
|
+
const generatedToken = local && !process.env.GATEWAY_ADMIN_TOKEN ? randomBytes(32).toString("hex") : undefined;
|
|
84
|
+
const defaults = defaultGatewayPaths();
|
|
85
|
+
const statePath = process.env.GATEWAY_STATE_PATH || defaults.statePath;
|
|
86
|
+
const auditDir = process.env.AUDIT_LOG_PATH || defaults.auditDir;
|
|
87
|
+
process.env.AUDIT_LOG_PATH = auditDir;
|
|
88
|
+
try {
|
|
89
|
+
if (!process.env.GATEWAY_STATE_PATH && migrateLegacyGatewayState(statePath)) {
|
|
90
|
+
console.error("[gateway] Copied existing local configuration into the per-user data directory.");
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
console.error(`[gateway] Cannot move existing gateway data into your per-user directory: ${error instanceof Error ? error.message : String(error)}. Set GATEWAY_STATE_PATH to a writable location, then restart.`);
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
const gateway = createGateway({
|
|
98
|
+
host,
|
|
99
|
+
port: Number(process.env.GATEWAY_PORT ?? "9091"),
|
|
100
|
+
statePath,
|
|
101
|
+
adminToken: generatedToken ?? process.env.GATEWAY_ADMIN_TOKEN ?? "",
|
|
102
|
+
bootstrapAdminEmails: (process.env.GATEWAY_BOOTSTRAP_ADMIN_EMAILS ?? "").split(",").map((value) => value.trim()).filter(Boolean),
|
|
103
|
+
publicUrl: process.env.GATEWAY_PUBLIC_URL,
|
|
104
|
+
entraTenant: process.env.ENTRA_TENANT,
|
|
105
|
+
entraAudience: process.env.ENTRA_AUDIENCE,
|
|
106
|
+
entraScope: process.env.ENTRA_SCOPE,
|
|
107
|
+
authMode: process.env.GATEWAY_AUTH_MODE === "cloudflare" ? "cloudflare" : "entra",
|
|
108
|
+
cloudflareTeamDomain: process.env.CLOUDFLARE_TEAM_DOMAIN,
|
|
109
|
+
cloudflareAccessAud: process.env.CLOUDFLARE_ACCESS_AUD,
|
|
110
|
+
internalToken: process.env.GATEWAY_INTERNAL_TOKEN,
|
|
111
|
+
localControlToken: process.env.GATEWAY_CONTROL_TOKEN,
|
|
112
|
+
onLocalControlStop: () => { process.exitCode = 0; },
|
|
113
|
+
auditWebhookUrl: process.env.AUDIT_WEBHOOK_URL,
|
|
114
|
+
auditWebhookToken: process.env.AUDIT_WEBHOOK_TOKEN,
|
|
115
|
+
});
|
|
116
|
+
if (local) {
|
|
117
|
+
try {
|
|
118
|
+
gateway.store.replace(gateway.store.snapshot());
|
|
119
|
+
mkdirSync(auditDir, { recursive: true, mode: 0o700 });
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
console.error(`[gateway] Cannot save local gateway data: ${error instanceof Error ? error.message : String(error)}. Set GATEWAY_STATE_PATH and AUDIT_LOG_PATH to writable locations, then restart.`);
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
await gateway.listen();
|
|
127
|
+
console.error(`[gateway] Listening on ${process.env.GATEWAY_HOST ?? "127.0.0.1"}:${process.env.GATEWAY_PORT ?? "9091"}`);
|
|
128
|
+
console.error("[gateway] Admin UI: /admin; MCP: /mcp");
|
|
129
|
+
if (local)
|
|
130
|
+
console.error("[gateway] Audit monitor: integsec-agentic-pentest-tui --gateway");
|
|
131
|
+
if (generatedToken)
|
|
132
|
+
console.error(`[gateway] Local admin token (paste into /admin): ${generatedToken}`);
|
|
133
|
+
const stop = async () => { await gateway.close(); process.exitCode = 0; };
|
|
134
|
+
process.on("SIGINT", () => void stop());
|
|
135
|
+
process.on("SIGTERM", () => void stop());
|
|
136
|
+
}
|
|
51
137
|
//# sourceMappingURL=integsec-agentic-pentest-gateway.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integsec-agentic-pentest-gateway.js","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-gateway.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"integsec-agentic-pentest-gateway.js","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { render } from "ink";
|
|
4
4
|
import { App } from "../src/tui/App.js";
|
|
5
|
+
import { defaultGatewayPaths } from "../src/gateway/local-paths.js";
|
|
5
6
|
function parseArgs() {
|
|
6
7
|
const args = process.argv.slice(2);
|
|
7
8
|
let auditDir = process.env.AUDIT_LOG_PATH ?? "./audit";
|
|
@@ -11,6 +12,9 @@ function parseArgs() {
|
|
|
11
12
|
auditDir = args[i + 1];
|
|
12
13
|
i++;
|
|
13
14
|
}
|
|
15
|
+
else if (args[i] === "--gateway") {
|
|
16
|
+
auditDir = process.env.AUDIT_LOG_PATH || defaultGatewayPaths().auditDir;
|
|
17
|
+
}
|
|
14
18
|
else if (args[i] === "--engagement" && args[i + 1]) {
|
|
15
19
|
engagementId = args[i + 1];
|
|
16
20
|
i++;
|
|
@@ -24,6 +28,7 @@ Usage:
|
|
|
24
28
|
|
|
25
29
|
Options:
|
|
26
30
|
--audit-path <dir> Path to audit log directory (default: AUDIT_LOG_PATH or ./audit)
|
|
31
|
+
--gateway Watch the local gateway's per-user audit directory
|
|
27
32
|
--engagement <id> Filter to a specific engagement ID
|
|
28
33
|
-h, --help Show this help message
|
|
29
34
|
`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integsec-agentic-pentest-tui.js","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-tui.tsx"],"names":[],"mappings":";;AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"integsec-agentic-pentest-tui.js","sourceRoot":"","sources":["../../bin/integsec-agentic-pentest-tui.tsx"],"names":[],"mappings":";;AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,SAAS,SAAS;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS,CAAC;IACvD,IAAI,YAAgC,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;YACnC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,mBAAmB,EAAE,CAAC,QAAQ,CAAC;QAC1E,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACrD,YAAY,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;CAWjB,CAAC,CAAC;YACG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC;AAC/C,MAAM,CAAC,KAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,GAAI,CAAC,CAAC"}
|
package/dist/src/audit/local.js
CHANGED
|
@@ -35,7 +35,7 @@ export class LocalAuditLogger {
|
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
37
|
// Ensure the base directory exists
|
|
38
|
-
fs.mkdirSync(this.basePath, { recursive: true });
|
|
38
|
+
fs.mkdirSync(this.basePath, { recursive: true, mode: 0o700 });
|
|
39
39
|
for (const [engagementId, entries] of this.buffer.entries()) {
|
|
40
40
|
if (entries.length === 0) {
|
|
41
41
|
continue;
|
|
@@ -43,7 +43,7 @@ export class LocalAuditLogger {
|
|
|
43
43
|
const filePath = path.join(this.basePath, `${engagementFileStem(engagementId)}.jsonl`);
|
|
44
44
|
// Build the content to append: one JSON object per line, terminated with \n
|
|
45
45
|
const lines = entries.map((e) => JSON.stringify(e)).join("\n") + "\n";
|
|
46
|
-
fs.appendFileSync(filePath, lines, "utf-8");
|
|
46
|
+
fs.appendFileSync(filePath, lines, { encoding: "utf-8", mode: 0o600 });
|
|
47
47
|
}
|
|
48
48
|
// Clear buffer after successful flush
|
|
49
49
|
this.buffer.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/audit/local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAS;IACzB,6DAA6D;IACrD,MAAM,GAA8B,IAAI,GAAG,EAAE,CAAC;IAEtD,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,KAAiB;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,mCAAmC;QACnC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/audit/local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAS;IACzB,6DAA6D;IACrD,MAAM,GAA8B,IAAI,GAAG,EAAE,CAAC;IAEtD,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,KAAiB;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,mCAAmC;QACnC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvF,4EAA4E;YAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACtE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,sCAAsC;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
|
package/dist/src/config.js
CHANGED
|
@@ -50,7 +50,7 @@ export function loadConfig() {
|
|
|
50
50
|
techniqueMapPath: process.env.TECHNIQUE_MAP_PATH,
|
|
51
51
|
dnsCacheTtl: parseInt(process.env.DNS_CACHE_TTL || "60", 10),
|
|
52
52
|
logLevel: process.env.LOG_LEVEL || "INFO",
|
|
53
|
-
proxyVersion: process.env.PROXY_VERSION || "0.3.
|
|
53
|
+
proxyVersion: process.env.PROXY_VERSION || "0.3.7",
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
56
|
//# sourceMappingURL=config.js.map
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<h3>Use Burp or another tool on a tester’s computer</h3>
|
|
26
26
|
<p>The hosted gateway cannot reach software on a laptop. Run a separate local gateway on that computer:</p>
|
|
27
27
|
<ol><li>On the same computer as Burp, enable Burp’s MCP extension. Install Node.js 22 or newer.</li><li>Copy these commands into PowerShell:<pre><code id="local-command">npm install -g @integsec/agentic-pentest-proxy
|
|
28
|
-
integsec-
|
|
28
|
+
integsec-gateway start</code></pre><button id="copy-local-command" class="secondary">Copy commands</button><p>The gateway starts in the background and prints an admin token. Keep it private. Use <code>integsec-gateway status</code> and <code>integsec-gateway stop</code> to check or stop it.</p></li><li>Open <code>http://127.0.0.1:9091/admin</code> on that computer and paste the printed token. Click <strong>Add server (off)</strong> beside Burp, then <strong>Turn on</strong>.</li><li>Download your approved engagement policy JSON from this team dashboard. On the laptop, import it, review and approve it, then select it under My engagement. Cloud changes do not automatically update the laptop.</li><li>Connect the MCP client to the local gateway. Refresh its tools after changes. See the <a href="/docs/managed-gateway#connect-mcp-clients">Claude, ChatGPT, and local model instructions</a>.</li></ol>
|
|
29
29
|
</div>
|
|
30
30
|
<div id="local-presets" hidden><h3>Local presets</h3><p>Adding a preset creates an entry in this local gateway. Install its software separately; new entries start off.</p><div id="presets"></div></div>
|
|
31
31
|
<div id="add-server-panel" hidden>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<figure class="flow hosted"><h3>Hosted path: remote HTTPS MCP tool</h3><ol><li>AI app<span>ChatGPT or Claude connects to the team URL</span></li><li>Cloudflare Access<span>Signs in and checks who may connect</span></li><li>Cloudflare gateway<span>Checks per-user engagement and records decisions</span></li><li>Remote MCP tool<span>A reachable HTTPS service</span></li><li>Authorized target<span>Traffic leaves from the remote tool’s host</span></li></ol><figcaption class="caption">The hosted gateway cannot start Burp or reach a listener on a tester’s laptop. It does not give the remote tool a Cloudflare source IP for its target traffic.</figcaption></figure>
|
|
12
12
|
<div class="note"><strong>The practical rule:</strong> Connect your AI app to the gateway beside the tool. The laptop gateway is for laptop tools. The hosted gateway is for remote HTTPS tools and shared team administration. If you need both kinds of tools, add both connections.</div>
|
|
13
13
|
<h2 id="local-start">Start with Burp on your laptop</h2>
|
|
14
|
-
<ol class="steps"><li>Enable Burp’s official MCP extension. Install Node.js 22 or newer.</li><li>Run <code>npm install -g @integsec/agentic-pentest-proxy</code>, then <code>integsec-
|
|
14
|
+
<ol class="steps"><li>Enable Burp’s official MCP extension. Install Node.js 22 or newer.</li><li>Run <code>npm install -g @integsec/agentic-pentest-proxy</code>, then <code>integsec-gateway start</code> in a terminal on that same laptop. It starts in the background and prints your admin token. Use <code>integsec-gateway status</code> to check it and <code>integsec-gateway stop</code> to stop it. Your configuration is saved in your per-user data folder.</li><li>Open <code>http://127.0.0.1:9091/admin</code>. Paste the admin token printed in the terminal. Add the Burp preset and turn it on.</li><li>Import the approved engagement JSON, review and approve it locally, and select it under <strong>My engagement</strong>. This step is manual for now.</li><li>Connect Claude Desktop through the local bridge, ChatGPT through a secure tunnel, or a local model chat UI directly to the local MCP endpoint. Refresh the client’s tool list after changing the scope or upgrading the gateway.</li></ol>
|
|
15
15
|
<a class="button-link" href="/docs/managed-gateway#connect-mcp-clients">Client connection steps</a><a class="button-link secondary" href="/docs/tui">Terminal dashboard guide</a>
|
|
16
16
|
<h2 id="hosted-start">Start with a team connection</h2>
|
|
17
17
|
<ol class="steps"><li>Sign in to the <a href="/admin">team dashboard</a> through Cloudflare Access.</li><li>An admin adds your exact email, approves an engagement, assigns it to you, and turns on a compatible remote HTTPS MCP server.</li><li>Choose that engagement under <strong>My engagement</strong>. Your choice applies to your own MCP calls.</li><li>Connect ChatGPT or Claude to <code>https://agentic-proxy.pentestprepper.com/mcp</code> through its supported team connector.</li></ol>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
interface ControlRecord {
|
|
2
|
+
host: "127.0.0.1" | "::1";
|
|
3
|
+
port: number;
|
|
4
|
+
token: string;
|
|
5
|
+
createdAt: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function controlFiles(): {
|
|
8
|
+
statusFile: string;
|
|
9
|
+
logFile: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function localGatewayStatus(): Promise<{
|
|
12
|
+
running: boolean;
|
|
13
|
+
starting: boolean;
|
|
14
|
+
foreground: boolean;
|
|
15
|
+
port?: number;
|
|
16
|
+
record?: ControlRecord;
|
|
17
|
+
}>;
|
|
18
|
+
export declare function startLocalGateway(entryPath: string): Promise<{
|
|
19
|
+
alreadyRunning: boolean;
|
|
20
|
+
port: number;
|
|
21
|
+
adminToken?: string;
|
|
22
|
+
logFile: string;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function stopLocalGateway(): Promise<boolean>;
|
|
25
|
+
export declare function removeLocalControlFile(): void;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=local-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-control.d.ts","sourceRoot":"","sources":["../../../src/gateway/local-control.ts"],"names":[],"mappings":"AAMA,UAAU,aAAa;IAAG,IAAI,EAAE,WAAW,GAAG,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAGrG,wBAAgB,YAAY,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGtE;AA2CD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC,CAOvJ;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4CnJ;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAiBzD;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import { closeSync, existsSync, mkdirSync, openSync, readFileSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { defaultGatewayPaths } from "./local-paths.js";
|
|
6
|
+
const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
7
|
+
export function controlFiles() {
|
|
8
|
+
const directory = dirname(defaultGatewayPaths().statePath);
|
|
9
|
+
return { statusFile: join(directory, "control.json"), logFile: join(directory, "gateway.log") };
|
|
10
|
+
}
|
|
11
|
+
function readRecord(file) {
|
|
12
|
+
try {
|
|
13
|
+
const input = JSON.parse(readFileSync(file, "utf8"));
|
|
14
|
+
if (!input || !["127.0.0.1", "::1"].includes(input.host ?? "") || !Number.isInteger(input.port) || input.port < 1 || input.port > 65535 || !/^[a-f0-9]{64}$/.test(input.token ?? "") || !Number.isFinite(input.createdAt))
|
|
15
|
+
return undefined;
|
|
16
|
+
return input;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function removeRecord(file, token) {
|
|
23
|
+
if (readRecord(file)?.token === token) {
|
|
24
|
+
try {
|
|
25
|
+
unlinkSync(file);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
if (error.code !== "ENOENT")
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function endpoint(record) {
|
|
34
|
+
return `http://${record.host === "::1" ? "[::1]" : record.host}:${record.port}/__local/control`;
|
|
35
|
+
}
|
|
36
|
+
async function probe(record) {
|
|
37
|
+
try {
|
|
38
|
+
const response = await fetch(endpoint(record), { headers: { Authorization: `Bearer ${record.token}` }, signal: AbortSignal.timeout(1000), redirect: "error" });
|
|
39
|
+
if (!response.ok) {
|
|
40
|
+
await response.body?.cancel();
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const result = await response.json();
|
|
44
|
+
return result.status === "running";
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function foregroundGateway() {
|
|
51
|
+
if (process.env.GATEWAY_PUBLIC_URL)
|
|
52
|
+
return undefined;
|
|
53
|
+
const host = process.env.GATEWAY_HOST ?? "127.0.0.1";
|
|
54
|
+
const port = Number(process.env.GATEWAY_PORT ?? "9091");
|
|
55
|
+
if (!["127.0.0.1", "::1"].includes(host) || !Number.isInteger(port) || port < 1 || port > 65535)
|
|
56
|
+
return undefined;
|
|
57
|
+
const base = `http://${host === "::1" ? "[::1]" : host}:${port}`;
|
|
58
|
+
try {
|
|
59
|
+
const health = await fetch(`${base}/healthz`, { signal: AbortSignal.timeout(800), redirect: "error" });
|
|
60
|
+
if (!health.ok || (await health.json()).status !== "ok")
|
|
61
|
+
return undefined;
|
|
62
|
+
const session = await fetch(`${base}/api/session`, { signal: AbortSignal.timeout(800), redirect: "error" });
|
|
63
|
+
return session.ok && (await session.json()).mode === "token" ? port : undefined;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export async function localGatewayStatus() {
|
|
70
|
+
const { statusFile } = controlFiles();
|
|
71
|
+
const record = readRecord(statusFile);
|
|
72
|
+
if (record && await probe(record))
|
|
73
|
+
return { running: true, starting: false, foreground: false, port: record.port, record };
|
|
74
|
+
const unmanagedPort = await foregroundGateway();
|
|
75
|
+
const starting = record ? Date.now() - record.createdAt < 30_000 : existsSync(statusFile) && Date.now() - statSync(statusFile).mtimeMs < 30_000;
|
|
76
|
+
return { running: false, starting, foreground: unmanagedPort !== undefined, port: unmanagedPort, record };
|
|
77
|
+
}
|
|
78
|
+
export async function startLocalGateway(entryPath) {
|
|
79
|
+
if (process.env.GATEWAY_PUBLIC_URL)
|
|
80
|
+
throw new Error("Background start is for the local gateway. Run the hosted gateway in foreground mode.");
|
|
81
|
+
const host = process.env.GATEWAY_HOST ?? "127.0.0.1";
|
|
82
|
+
if (host !== "127.0.0.1" && host !== "::1")
|
|
83
|
+
throw new Error("Background start requires loopback GATEWAY_HOST.");
|
|
84
|
+
const port = Number(process.env.GATEWAY_PORT ?? "9091");
|
|
85
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535)
|
|
86
|
+
throw new Error("GATEWAY_PORT must be between 1 and 65535.");
|
|
87
|
+
if (process.env.GATEWAY_ADMIN_TOKEN && process.env.GATEWAY_ADMIN_TOKEN.length < 32)
|
|
88
|
+
throw new Error("GATEWAY_ADMIN_TOKEN must be at least 32 characters.");
|
|
89
|
+
const { statusFile, logFile } = controlFiles();
|
|
90
|
+
mkdirSync(dirname(statusFile), { recursive: true, mode: 0o700 });
|
|
91
|
+
const prior = await localGatewayStatus();
|
|
92
|
+
if (prior.running)
|
|
93
|
+
return { alreadyRunning: true, port: prior.record.port, logFile };
|
|
94
|
+
if (prior.foreground)
|
|
95
|
+
throw new Error(`A gateway is already running in another terminal on port ${prior.port}. Stop it there with Ctrl+C before background start.`);
|
|
96
|
+
if (prior.starting)
|
|
97
|
+
throw new Error("The local gateway is still starting. Run status again shortly.");
|
|
98
|
+
if (existsSync(statusFile))
|
|
99
|
+
unlinkSync(statusFile);
|
|
100
|
+
const record = { host, port, token: randomBytes(32).toString("hex"), createdAt: Date.now() };
|
|
101
|
+
try {
|
|
102
|
+
writeFileSync(statusFile, JSON.stringify(record), { flag: "wx", mode: 0o600 });
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (error.code === "EEXIST")
|
|
106
|
+
throw new Error("Another gateway start is in progress.");
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
const adminToken = process.env.GATEWAY_ADMIN_TOKEN || randomBytes(32).toString("hex");
|
|
110
|
+
let logHandle;
|
|
111
|
+
let child;
|
|
112
|
+
try {
|
|
113
|
+
logHandle = openSync(logFile, "a", 0o600);
|
|
114
|
+
child = spawn(process.execPath, [entryPath, "run"], {
|
|
115
|
+
detached: true, windowsHide: true, stdio: ["ignore", logHandle, logHandle],
|
|
116
|
+
env: { ...process.env, GATEWAY_HOST: host, GATEWAY_PORT: String(port), GATEWAY_ADMIN_TOKEN: adminToken, GATEWAY_CONTROL_TOKEN: record.token, GATEWAY_CONTROL_FILE: statusFile },
|
|
117
|
+
});
|
|
118
|
+
closeSync(logHandle);
|
|
119
|
+
logHandle = undefined;
|
|
120
|
+
let spawnError;
|
|
121
|
+
let exitCode = null;
|
|
122
|
+
child.on("error", (error) => { spawnError = error; });
|
|
123
|
+
child.on("exit", (code) => { exitCode = code ?? 1; });
|
|
124
|
+
child.unref();
|
|
125
|
+
for (let attempt = 0; attempt < 75; attempt++) {
|
|
126
|
+
if (await probe(record))
|
|
127
|
+
return { alreadyRunning: false, port, adminToken: process.env.GATEWAY_ADMIN_TOKEN ? undefined : adminToken, logFile };
|
|
128
|
+
if (spawnError || exitCode !== null)
|
|
129
|
+
break;
|
|
130
|
+
await wait(200);
|
|
131
|
+
}
|
|
132
|
+
throw new Error(`The gateway did not start. Check the gateway log and whether port ${port} is already in use.${spawnError ? ` ${spawnError.message}` : ""}`);
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
try {
|
|
136
|
+
if (child?.exitCode === null)
|
|
137
|
+
child.kill();
|
|
138
|
+
}
|
|
139
|
+
catch { /* Startup already failed. */ }
|
|
140
|
+
if (logHandle !== undefined)
|
|
141
|
+
closeSync(logHandle);
|
|
142
|
+
removeRecord(statusFile, record.token);
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export async function stopLocalGateway() {
|
|
147
|
+
const { statusFile } = controlFiles();
|
|
148
|
+
const record = readRecord(statusFile);
|
|
149
|
+
if (!record)
|
|
150
|
+
return false;
|
|
151
|
+
if (!(await probe(record))) {
|
|
152
|
+
if (Date.now() - record.createdAt < 30_000)
|
|
153
|
+
throw new Error("The local gateway is still starting. Try stop again shortly.");
|
|
154
|
+
removeRecord(statusFile, record.token);
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
const response = await fetch(endpoint(record), { method: "POST", headers: { Authorization: `Bearer ${record.token}` }, signal: AbortSignal.timeout(3000), redirect: "error" });
|
|
158
|
+
await response.body?.cancel();
|
|
159
|
+
if (response.status !== 202)
|
|
160
|
+
throw new Error(`Gateway stop failed (HTTP ${response.status}).`);
|
|
161
|
+
for (let attempt = 0; attempt < 50; attempt++) {
|
|
162
|
+
if (!(await probe(record))) {
|
|
163
|
+
removeRecord(statusFile, record.token);
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
await wait(200);
|
|
167
|
+
}
|
|
168
|
+
throw new Error("Gateway stop timed out. Check the gateway log.");
|
|
169
|
+
}
|
|
170
|
+
export function removeLocalControlFile() {
|
|
171
|
+
const token = process.env.GATEWAY_CONTROL_TOKEN;
|
|
172
|
+
const file = process.env.GATEWAY_CONTROL_FILE;
|
|
173
|
+
if (token && file)
|
|
174
|
+
removeRecord(file, token);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=local-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-control.js","sourceRoot":"","sources":["../../../src/gateway/local-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function defaultGatewayPaths(env?: NodeJS.ProcessEnv, home?: string, platform?: NodeJS.Platform): {
|
|
2
|
+
statePath: string;
|
|
3
|
+
auditDir: string;
|
|
4
|
+
};
|
|
5
|
+
/** Preserve state created by earlier releases when first switching to the stable per-user path. */
|
|
6
|
+
export declare function migrateLegacyGatewayState(statePath: string, launchDir?: string): boolean;
|
|
7
|
+
//# sourceMappingURL=local-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-paths.d.ts","sourceRoot":"","sources":["../../../src/gateway/local-paths.ts"],"names":[],"mappings":"AAIA,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,IAAI,SAAY,EAAE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CASjL;AAED,mGAAmG;AACnG,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,SAAgB,GAAG,OAAO,CAO/F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { constants, copyFileSync, existsSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { dirname, posix, resolve, win32 } from "node:path";
|
|
4
|
+
export function defaultGatewayPaths(env = process.env, home = homedir(), platform = process.platform) {
|
|
5
|
+
const paths = platform === "win32" ? win32 : posix;
|
|
6
|
+
const base = platform === "win32"
|
|
7
|
+
? paths.isAbsolute(env.LOCALAPPDATA ?? "") ? env.LOCALAPPDATA : paths.join(home, "AppData", "Local")
|
|
8
|
+
: platform === "darwin"
|
|
9
|
+
? paths.join(home, "Library", "Application Support")
|
|
10
|
+
: paths.isAbsolute(env.XDG_STATE_HOME ?? "") ? env.XDG_STATE_HOME : paths.join(home, ".local", "state");
|
|
11
|
+
const appDir = paths.join(base, "IntegSec", "agentic-pentest-proxy");
|
|
12
|
+
return { statePath: paths.join(appDir, "gateway", "state.json"), auditDir: paths.join(appDir, "audit") };
|
|
13
|
+
}
|
|
14
|
+
/** Preserve state created by earlier releases when first switching to the stable per-user path. */
|
|
15
|
+
export function migrateLegacyGatewayState(statePath, launchDir = process.cwd()) {
|
|
16
|
+
const legacy = resolve(launchDir, "gateway", "state.json");
|
|
17
|
+
if (resolve(statePath) === legacy || !existsSync(legacy) || existsSync(statePath))
|
|
18
|
+
return false;
|
|
19
|
+
mkdirSync(dirname(statePath), { recursive: true });
|
|
20
|
+
try {
|
|
21
|
+
copyFileSync(legacy, statePath, constants.COPYFILE_EXCL);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (error.code === "EEXIST")
|
|
25
|
+
return false;
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=local-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-paths.js","sourceRoot":"","sources":["../../../src/gateway/local-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,UAAU,mBAAmB,CAAC,MAAyB,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,EAAE,EAAE,WAA4B,OAAO,CAAC,QAAQ;IACtI,MAAM,KAAK,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO;QAC/B,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC;QACrG,CAAC,CAAC,QAAQ,KAAK,QAAQ;YACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,CAAC;YACpD,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7G,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,uBAAuB,CAAC,CAAC;IACrE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;AAC3G,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,yBAAyB,CAAC,SAAiB,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC;QAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IAAC,CAAC;IACjE,OAAO,KAAK,EAAE,CAAC;QAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;IACpG,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -61,7 +61,7 @@ export class GatewayRuntime {
|
|
|
61
61
|
const connection = (async () => {
|
|
62
62
|
if (cached)
|
|
63
63
|
await cached.client.close().catch(() => undefined);
|
|
64
|
-
const client = new Client({ name: "agentic-pentest-gateway", version: "0.3.
|
|
64
|
+
const client = new Client({ name: "agentic-pentest-gateway", version: "0.3.7" });
|
|
65
65
|
const transport = upstream.transport === "stdio"
|
|
66
66
|
? new StdioClientTransport({ command: upstream.command, args: upstream.args, stderr: "pipe" })
|
|
67
67
|
: upstream.transport === "sse"
|
|
@@ -93,7 +93,7 @@ export class GatewayRuntime {
|
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
createServer(actor, email) {
|
|
96
|
-
const server = new Server({ name: "agentic-pentest-gateway", version: "0.3.
|
|
96
|
+
const server = new Server({ name: "agentic-pentest-gateway", version: "0.3.7" }, {
|
|
97
97
|
capabilities: { tools: { listChanged: true }, resources: {}, prompts: {} }, instructions: INSTRUCTIONS,
|
|
98
98
|
});
|
|
99
99
|
const config = loadConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AASpF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAA8F,MAAM,YAAY,CAAC;AAOtI,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA0BD,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc;;;;;;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AASpF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAA8F,MAAM,YAAY,CAAC;AAOtI,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA0BD,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc;;;;;;EA8QpD"}
|
|
@@ -43,6 +43,8 @@ export function createGateway(options) {
|
|
|
43
43
|
throw new Error("Cloudflare mode requires at least one GATEWAY_BOOTSTRAP_ADMIN_EMAILS entry");
|
|
44
44
|
if (options.host !== "127.0.0.1" && options.host !== "::1" && !options.publicUrl)
|
|
45
45
|
throw new Error("Non-loopback gateway requires GATEWAY_PUBLIC_URL and authentication configuration");
|
|
46
|
+
if (options.localControlToken && (options.publicUrl || !["127.0.0.1", "::1"].includes(options.host) || options.localControlToken.length < 32))
|
|
47
|
+
throw new Error("Local control requires a loopback gateway and a token of at least 32 characters");
|
|
46
48
|
if (Boolean(options.auditWebhookUrl) !== Boolean(options.auditWebhookToken))
|
|
47
49
|
throw new Error("AUDIT_WEBHOOK_URL and AUDIT_WEBHOOK_TOKEN must be set together");
|
|
48
50
|
if (options.auditWebhookUrl && (new URL(options.auditWebhookUrl).protocol !== "https:" || options.auditWebhookToken.length < 32))
|
|
@@ -87,6 +89,24 @@ export function createGateway(options) {
|
|
|
87
89
|
json(res, 200, { status: "ok" });
|
|
88
90
|
return;
|
|
89
91
|
}
|
|
92
|
+
if (pathname === "/__local/control") {
|
|
93
|
+
if (!options.localControlToken || !authorizedAdmin(req, options.localControlToken)) {
|
|
94
|
+
json(res, 404, { error: "not found" });
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (req.method === "GET") {
|
|
98
|
+
json(res, 200, { status: "running", pid: process.pid });
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (req.method === "POST") {
|
|
102
|
+
json(res, 202, { status: "stopping" });
|
|
103
|
+
setImmediate(() => { void close().then(() => options.onLocalControlStop?.()).catch((error) => console.error("[gateway] Local stop failed", error)); });
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
res.writeHead(405, { Allow: "GET, POST" });
|
|
107
|
+
res.end();
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
90
110
|
if (pathname === "/__internal/state" && options.internalToken && authorizedAdmin(req, options.internalToken)) {
|
|
91
111
|
if (req.method === "GET") {
|
|
92
112
|
json(res, 200, store.snapshot());
|
|
@@ -398,13 +418,18 @@ export function createGateway(options) {
|
|
|
398
418
|
json(res, 404, { error: "not found" });
|
|
399
419
|
}
|
|
400
420
|
catch (error) {
|
|
421
|
+
if (["EACCES", "EPERM", "EROFS"].includes(error?.code ?? "")) {
|
|
422
|
+
json(res, 500, { error: "Gateway data folder is not writable. Restart with GATEWAY_STATE_PATH and AUDIT_LOG_PATH set to writable folders." });
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
401
425
|
const message = error instanceof Error ? error.message : "Request failed";
|
|
402
426
|
json(res, error instanceof z.ZodError || error instanceof SyntaxError ? 400 : 409, { error: message });
|
|
403
427
|
}
|
|
404
428
|
});
|
|
429
|
+
const close = async () => { await new Promise((resolve) => server.close(() => resolve())); await runtime.close(); };
|
|
405
430
|
return { server, store, runtime, listen: () => new Promise((resolve, reject) => {
|
|
406
431
|
server.once("error", reject);
|
|
407
432
|
server.listen(options.port, options.host, () => { server.off("error", reject); resolve(); });
|
|
408
|
-
}), close
|
|
433
|
+
}), close };
|
|
409
434
|
}
|
|
410
435
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ export { loadManifest } from "./manifest.js";
|
|
|
4
4
|
export { loadConfig } from "./config.js";
|
|
5
5
|
export { AuditLogger } from "./audit/index.js";
|
|
6
6
|
export type { ScopeManifest, AuditEntry, ValidationResult, Decision } from "./types.js";
|
|
7
|
-
export declare const VERSION = "0.3.
|
|
7
|
+
export declare const VERSION = "0.3.7";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.js
CHANGED
|
@@ -3,5 +3,5 @@ export { ScopeValidator } from "./validator.js";
|
|
|
3
3
|
export { loadManifest } from "./manifest.js";
|
|
4
4
|
export { loadConfig } from "./config.js";
|
|
5
5
|
export { AuditLogger } from "./audit/index.js";
|
|
6
|
-
export const VERSION = "0.3.
|
|
6
|
+
export const VERSION = "0.3.7";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"technique-checker.d.ts","sourceRoot":"","sources":["../../src/technique-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"technique-checker.d.ts","sourceRoot":"","sources":["../../src/technique-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AA8GjE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAezE;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAE7C;;;;;OAKG;gBACS,cAAc,CAAC,EAAE,iBAAiB;IAQ9C;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAoB5C;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO;IAalE;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAW7B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;CAsB7B"}
|
|
@@ -84,6 +84,10 @@ const DEFAULT_MAPPINGS = {
|
|
|
84
84
|
"vulnerability_scan", "web_enumeration",
|
|
85
85
|
// Burp Suite MCP (PortSwigger official)
|
|
86
86
|
"start_scan",
|
|
87
|
+
"send_http1_request", "send_http2_request",
|
|
88
|
+
"create_repeater_tab", "create_repeater_tab_http2", "send_to_intruder",
|
|
89
|
+
"url_encode", "url_decode", "base64_encode", "base64_decode",
|
|
90
|
+
"generate_random_string",
|
|
87
91
|
// Acunetix MCP
|
|
88
92
|
"acunetix",
|
|
89
93
|
// Next.js CVE scanner / Unified all-in-one
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"technique-checker.js","sourceRoot":"","sources":["../../src/technique-checker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"technique-checker.js","sourceRoot":"","sources":["../../src/technique-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAgB1D,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAU;IACpD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAU;gBAG/C,QAAQ,EAAE,aAAa,EACvB,WAAW,CAAC,EAAE,WAAW,EACzB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,yBAAyB,UAAQ,EACjC,sBAAsB,UAAQ;IAY1B,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,gBAAgB,CAAC;YAmHd,cAAc;IAuJ5B;;OAEG;IACH,OAAO,CAAC,MAAM;CAMf"}
|
package/dist/src/validator.js
CHANGED
|
@@ -32,6 +32,10 @@ import { matchesDomain } from "./domain-matcher.js";
|
|
|
32
32
|
import { TechniqueChecker } from "./technique-checker.js";
|
|
33
33
|
const SAFE_TARGETLESS_TOOLS = new Set([
|
|
34
34
|
"whoami", "date", "ls", "list_tools", "get_version", "list_pentests",
|
|
35
|
+
"url_encode", "url_decode", "base64_encode", "base64_decode", "generate_random_string",
|
|
36
|
+
]);
|
|
37
|
+
const BURP_REQUEST_TOOLS = new Set([
|
|
38
|
+
"send_http1_request", "send_http2_request", "create_repeater_tab", "create_repeater_tab_http2", "send_to_intruder",
|
|
35
39
|
]);
|
|
36
40
|
const UNSTRUCTURED_KEYS = new Set([
|
|
37
41
|
"command", "cmd", "command_line", "commandline", "cmdline", "shell_command",
|
|
@@ -124,7 +128,11 @@ export class ScopeValidator {
|
|
|
124
128
|
// ─────────────────────────────────────────────────────────────────────────
|
|
125
129
|
// Steps 3–4: Extract every target
|
|
126
130
|
// ─────────────────────────────────────────────────────────────────────────
|
|
127
|
-
const
|
|
131
|
+
const burpRequest = BURP_REQUEST_TOOLS.has(toolName.toLowerCase()) ? parseBurpRequest(toolName.toLowerCase(), params) : undefined;
|
|
132
|
+
if (burpRequest?.error) {
|
|
133
|
+
return this.result(startTime, { decision: "BLOCKED_INVALID_REQUEST", reason: burpRequest.error });
|
|
134
|
+
}
|
|
135
|
+
const extractions = extractTargets(toolName, burpRequest ? { targetHostname: params.targetHostname } : params);
|
|
128
136
|
if (extractions.length === 0) {
|
|
129
137
|
return this.result(startTime, SAFE_TARGETLESS_TOOLS.has(toolName.toLowerCase())
|
|
130
138
|
? { decision: "ALLOWED_NO_TARGET", reason: `Targetless local tool "${toolName}" is explicitly allowed.` }
|
|
@@ -134,7 +142,7 @@ export class ScopeValidator {
|
|
|
134
142
|
// Steps 5–10: Every target must be in scope
|
|
135
143
|
// ─────────────────────────────────────────────────────────────────────────
|
|
136
144
|
const allowed = [];
|
|
137
|
-
const requestUrls = collectHttpUrls(params);
|
|
145
|
+
const requestUrls = burpRequest?.url ? [burpRequest.url] : collectHttpUrls(params);
|
|
138
146
|
for (const { target } of extractions) {
|
|
139
147
|
const r = await this.validateTarget(target, requestUrls);
|
|
140
148
|
if (r.decision !== "ALLOWED") {
|
|
@@ -356,6 +364,100 @@ function collectHttpUrls(value, depth = 0) {
|
|
|
356
364
|
}
|
|
357
365
|
return [];
|
|
358
366
|
}
|
|
367
|
+
/** Derive the actual Burp request URL instead of trusting targetHostname alone. */
|
|
368
|
+
function parseBurpRequest(toolName, params) {
|
|
369
|
+
const { targetHostname, targetPort, usesHttps } = params;
|
|
370
|
+
if (typeof targetHostname !== "string" || !targetHostname ||
|
|
371
|
+
!Number.isInteger(targetPort) || targetPort < 1 || targetPort > 65535 ||
|
|
372
|
+
typeof usesHttps !== "boolean") {
|
|
373
|
+
return { error: "Burp request requires a valid targetHostname, targetPort, and usesHttps." };
|
|
374
|
+
}
|
|
375
|
+
const scheme = usesHttps ? "https:" : "http:";
|
|
376
|
+
let base;
|
|
377
|
+
try {
|
|
378
|
+
base = new URL(`${scheme}//${targetHostname}:${targetPort}`);
|
|
379
|
+
if (base.username || base.password || normalizeHost(base.hostname) !== normalizeHost(targetHostname) ||
|
|
380
|
+
base.pathname !== "/" || base.search || base.hash)
|
|
381
|
+
throw new Error("invalid host");
|
|
382
|
+
}
|
|
383
|
+
catch {
|
|
384
|
+
return { error: "Burp targetHostname must be a hostname or IP address." };
|
|
385
|
+
}
|
|
386
|
+
const http2 = toolName === "send_http2_request" || toolName === "create_repeater_tab_http2";
|
|
387
|
+
let path;
|
|
388
|
+
let authority;
|
|
389
|
+
if (http2) {
|
|
390
|
+
const pseudo = params.pseudoHeaders;
|
|
391
|
+
const headers = params.headers;
|
|
392
|
+
if (!pseudo || typeof pseudo !== "object" || Array.isArray(pseudo) ||
|
|
393
|
+
!headers || typeof headers !== "object" || Array.isArray(headers)) {
|
|
394
|
+
return { error: "Burp HTTP/2 request requires pseudoHeaders and headers objects." };
|
|
395
|
+
}
|
|
396
|
+
const fields = pseudo;
|
|
397
|
+
if (typeof fields[":method"] !== "string" || fields[":method"].toUpperCase() === "CONNECT" ||
|
|
398
|
+
fields[":scheme"] !== scheme.slice(0, -1) || typeof fields[":authority"] !== "string" ||
|
|
399
|
+
typeof fields[":path"] !== "string") {
|
|
400
|
+
return { error: "Burp HTTP/2 request needs a non-CONNECT method and matching :scheme, :authority, and :path." };
|
|
401
|
+
}
|
|
402
|
+
path = fields[":path"];
|
|
403
|
+
authority = fields[":authority"];
|
|
404
|
+
const hostHeaders = Object.entries(headers).filter(([key]) => key.toLowerCase() === "host");
|
|
405
|
+
if (hostHeaders.length > 1 || (hostHeaders.length === 1 && hostHeaders[0][1] !== authority)) {
|
|
406
|
+
return { error: "Burp Host header must match :authority." };
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
const content = params.content;
|
|
411
|
+
if (typeof content !== "string" || !content)
|
|
412
|
+
return { error: "Burp HTTP/1 request content is required." };
|
|
413
|
+
const lines = content.split(/\r?\n/);
|
|
414
|
+
const requestLine = /^([A-Z]+) (\S+) HTTP\/1\.[01]$/.exec(lines[0]);
|
|
415
|
+
if (!requestLine || requestLine[1] === "CONNECT")
|
|
416
|
+
return { error: "Burp HTTP/1 request needs a non-CONNECT request line." };
|
|
417
|
+
path = requestLine[2];
|
|
418
|
+
const blankLine = lines.findIndex((line, index) => index > 0 && line === "");
|
|
419
|
+
if (blankLine < 0)
|
|
420
|
+
return { error: "Burp HTTP/1 request needs a blank line after its headers." };
|
|
421
|
+
const headerLines = lines.slice(1, blankLine);
|
|
422
|
+
if (headerLines.some((line) => !/^[!#$%&'*+.^_`|~0-9A-Za-z-]+:[^\r\n]*$/.test(line))) {
|
|
423
|
+
return { error: "Burp HTTP/1 request contains an ambiguous header." };
|
|
424
|
+
}
|
|
425
|
+
const hosts = headerLines.filter((line) => /^host\s*:/i.test(line));
|
|
426
|
+
if (hosts.length !== 1)
|
|
427
|
+
return { error: "Burp HTTP/1 request needs exactly one Host header." };
|
|
428
|
+
authority = hosts[0].replace(/^host\s*:/i, "").trim();
|
|
429
|
+
}
|
|
430
|
+
let hostUrl;
|
|
431
|
+
try {
|
|
432
|
+
hostUrl = new URL(`${scheme}//${authority}`);
|
|
433
|
+
if (hostUrl.username || hostUrl.password || hostUrl.pathname !== "/" || hostUrl.search || hostUrl.hash ||
|
|
434
|
+
hostUrl.origin !== base.origin)
|
|
435
|
+
throw new Error("mismatch");
|
|
436
|
+
}
|
|
437
|
+
catch {
|
|
438
|
+
return { error: "Burp request authority must match the approved target hostname and port." };
|
|
439
|
+
}
|
|
440
|
+
let url;
|
|
441
|
+
try {
|
|
442
|
+
if (path.startsWith("//") || path.includes("\\") || path.includes("#") ||
|
|
443
|
+
/%(?:2e|2f|5c|00)/i.test(path.split("?", 1)[0]) ||
|
|
444
|
+
path.split("?", 1)[0].split("/").some((segment) => segment === "." || segment === "..")) {
|
|
445
|
+
throw new Error("ambiguous path");
|
|
446
|
+
}
|
|
447
|
+
if (path.startsWith("/"))
|
|
448
|
+
url = new URL(path, base);
|
|
449
|
+
else if (/^https?:\/\//i.test(path))
|
|
450
|
+
url = new URL(path);
|
|
451
|
+
else
|
|
452
|
+
throw new Error("unsupported request target");
|
|
453
|
+
if (url.username || url.password || url.origin !== base.origin)
|
|
454
|
+
throw new Error("mismatch");
|
|
455
|
+
}
|
|
456
|
+
catch {
|
|
457
|
+
return { error: "Burp request path or absolute URL cannot be verified against the approved target." };
|
|
458
|
+
}
|
|
459
|
+
return { url };
|
|
460
|
+
}
|
|
359
461
|
function hasUnstructuredCommand(value, depth = 0) {
|
|
360
462
|
if (depth > 8 || value === null || typeof value !== "object")
|
|
361
463
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"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"}
|
package/docs/configuration.md
CHANGED
|
@@ -40,7 +40,7 @@ The setup helper creates the common stdio or SSE variables. For manual configura
|
|
|
40
40
|
| `PROXY_HOST` | `127.0.0.1` | HTTP listen address. Docker sets `0.0.0.0`. |
|
|
41
41
|
| `PROXY_PORT` | `9090` | HTTP listen port. |
|
|
42
42
|
| `PROXY_AUTH_TOKEN` | — | Required for a non-loopback HTTP listener. Clients send `X-Proxy-Token`. |
|
|
43
|
-
| `AUDIT_LOG_PATH` | `./audit/` | Local JSONL audit directory. The setup helper uses a directory beside the manifest. |
|
|
43
|
+
| `AUDIT_LOG_PATH` | `./audit/` for the single-tool proxy; per-user data directory for the managed gateway CLI | Local JSONL audit directory. The setup helper uses a directory beside the manifest. Run `integsec-agentic-pentest-tui --gateway` for the managed gateway's default location. |
|
|
44
44
|
| `ALLOW_UNSTRUCTURED_COMMANDS` | `false` | Enables heuristic checks of free-form commands; review the risk before opting in. |
|
|
45
45
|
| `TECHNIQUE_MAP_PATH` | — | Custom technique mapping JSON. |
|
|
46
46
|
| `DNS_CACHE_TTL` | `60` | DNS cache lifetime in seconds. |
|
package/docs/managed-gateway.md
CHANGED
|
@@ -12,10 +12,14 @@ Install Node.js 22 or newer. Run these commands on the same computer as your loc
|
|
|
12
12
|
|
|
13
13
|
```powershell
|
|
14
14
|
npm install -g @integsec/agentic-pentest-proxy
|
|
15
|
-
integsec-
|
|
15
|
+
integsec-gateway start
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
The gateway prints a temporary admin token in PowerShell. Keep it private. Open `http://127.0.0.1:9091/admin` and paste that token. Choose a local preset such as **Burp Suite**, **Semgrep**, **Trivy**, or **Snyk**, or add an existing MCP server by command or URL. Newly added servers start **Off**. Install and configure the upstream tool separately, then select **Turn on** after checking the source and tool list. Burp's official local SSE endpoint defaults to `http://127.0.0.1:9876`. Set `GATEWAY_ADMIN_TOKEN` yourself if you need a stable token across restarts.
|
|
18
|
+
The gateway starts in the background and prints a temporary admin token in PowerShell. Keep it private. Open `http://127.0.0.1:9091/admin` and paste that token. Run `integsec-gateway status` to check it and `integsec-gateway stop` to stop it. Use `integsec-gateway run` to keep it in the current terminal instead (Ctrl+C stops it). The longer `integsec-agentic-pentest-gateway` command still works. Choose a local preset such as **Burp Suite**, **Semgrep**, **Trivy**, or **Snyk**, or add an existing MCP server by command or URL. Newly added servers start **Off**. Install and configure the upstream tool separately, then select **Turn on** after checking the source and tool list. Burp's official local SSE endpoint defaults to `http://127.0.0.1:9876`. Set `GATEWAY_ADMIN_TOKEN` yourself if you need a stable token across restarts.
|
|
19
|
+
|
|
20
|
+
Local gateway state and audit logs are saved in your operating system's per-user data directory, regardless of the terminal's current folder. You do not need to create a `gateway` folder. Set `GATEWAY_STATE_PATH` or `AUDIT_LOG_PATH` only to override those defaults. When upgrading from an older release, an existing `./gateway/state.json` in the launch folder is copied to the new default on first run if that destination is empty. Earlier audit files remain in their original folder. Run `integsec-agentic-pentest-tui --gateway` to watch new local gateway audit entries.
|
|
21
|
+
|
|
22
|
+
If `start` reports that a gateway is already running in another terminal, stop that older foreground process with Ctrl+C first. A server marked **On** means the gateway will try to connect; it does not confirm that Burp or another upstream is running. For Burp, enable its MCP extension and verify its local listener is on port 9876. With an approved web application engagement selected, the gateway advertises Burp's scoped HTTP request, Repeater, and local encoding tools. Global Burp history, configuration, and task controls are withheld because their contents or effects cannot be confined to the selected engagement. Refresh the MCP client’s tool list after switching on Burp or changing the engagement.
|
|
19
23
|
|
|
20
24
|
On the **hosted** dashboard, **MCP servers** first asks where the tool runs:
|
|
21
25
|
|
|
@@ -67,7 +71,7 @@ The gateway advertises four things:
|
|
|
67
71
|
|
|
68
72
|
| MCP feature | What this gateway provides |
|
|
69
73
|
| --- | --- |
|
|
70
|
-
| Tools | Enabled upstream tools, prefixed with the server name such as `
|
|
74
|
+
| Tools | Enabled upstream tools, prefixed with the server name such as `burp__send_http1_request` and filtered by the user's active scope. |
|
|
71
75
|
| Resources | `pentest://engagement/active` contains the selected approved scope as JSON. |
|
|
72
76
|
| Prompts | `review_engagement_scope` and `plan_authorized_test` guide a review or plan without running tools. |
|
|
73
77
|
| Server instructions | Short guidance sent when the MCP connection starts. |
|
package/docs/tui.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# TUI monitor
|
|
2
2
|
|
|
3
|
+
For audit entries from the local managed gateway, run `integsec-agentic-pentest-tui --gateway`. It reads the gateway's per-user audit directory, independent of the terminal's starting folder. Use `--audit-path` for the original single-tool proxy or older gateway logs saved elsewhere.
|
|
4
|
+
|
|
3
5
|
The terminal monitor tails local audit JSONL files written by the proxy. Run it in a separate terminal using the path printed by `integsec-agentic-pentest-setup`:
|
|
4
6
|
|
|
5
7
|
```bash
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@integsec/agentic-pentest-proxy",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"description": "IntegSec Agentic Pentest MCP Proxy — enforce penetration testing engagement scope for AI agents",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"integsec-agentic-pentest-tui": "dist/bin/integsec-agentic-pentest-tui.js",
|
|
15
15
|
"integsec-agentic-pentest-manifest": "dist/bin/integsec-agentic-pentest-manifest.js",
|
|
16
16
|
"integsec-agentic-pentest-gateway": "dist/bin/integsec-agentic-pentest-gateway.js",
|
|
17
|
+
"integsec-gateway": "dist/bin/integsec-agentic-pentest-gateway.js",
|
|
17
18
|
"integsec-agentic-pentest-bridge": "dist/bin/integsec-agentic-pentest-bridge.js"
|
|
18
19
|
},
|
|
19
20
|
"files": [
|
package/scripts/postinstall.cjs
CHANGED
|
@@ -7,8 +7,10 @@ if (!process.env.CI && process.env.INTEGSEC_NO_INSTALL_MESSAGE !== "1") {
|
|
|
7
7
|
│ Scope first. Tools second. Audit every decision. │
|
|
8
8
|
└─────────────────────────────────────────────────────┘
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
Start local gateway: integsec-gateway start
|
|
11
|
+
Open dashboard: http://127.0.0.1:9091/admin
|
|
12
|
+
Check or stop: integsec-gateway status | stop
|
|
13
|
+
Scope CLI: integsec-agentic-pentest-manifest new
|
|
12
14
|
Watch decisions: integsec-agentic-pentest-tui
|
|
13
15
|
`);
|
|
14
16
|
}
|