@integsec/agentic-pentest-proxy 0.2.4 → 0.2.6
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/LICENSE +201 -0
- package/README.md +250 -54
- package/dist/bin/integsec-agentic-pentest-manifest.d.ts +3 -0
- package/dist/bin/integsec-agentic-pentest-manifest.d.ts.map +1 -0
- package/dist/bin/integsec-agentic-pentest-manifest.js +180 -0
- package/dist/bin/integsec-agentic-pentest-manifest.js.map +1 -0
- package/dist/bin/integsec-agentic-pentest-proxy.d.ts +1 -1
- package/dist/bin/integsec-agentic-pentest-proxy.d.ts.map +1 -1
- package/dist/bin/integsec-agentic-pentest-proxy.js +16 -4
- package/dist/bin/integsec-agentic-pentest-proxy.js.map +1 -1
- package/dist/src/audit/azure-monitor.d.ts +2 -2
- package/dist/src/audit/azure-monitor.d.ts.map +1 -1
- package/dist/src/audit/azure-monitor.js +8 -5
- package/dist/src/audit/azure-monitor.js.map +1 -1
- package/dist/src/audit/cloudwatch.d.ts.map +1 -1
- package/dist/src/audit/cloudwatch.js.map +1 -1
- package/dist/src/audit/gcp-logging.d.ts.map +1 -1
- package/dist/src/audit/gcp-logging.js +4 -6
- package/dist/src/audit/gcp-logging.js.map +1 -1
- package/dist/src/audit/index.d.ts +7 -0
- package/dist/src/audit/index.d.ts.map +1 -1
- package/dist/src/audit/index.js +11 -1
- package/dist/src/audit/index.js.map +1 -1
- package/dist/src/audit/local.d.ts.map +1 -1
- package/dist/src/audit/local.js +2 -1
- package/dist/src/audit/local.js.map +1 -1
- package/dist/src/builder/dry-run.d.ts +12 -0
- package/dist/src/builder/dry-run.d.ts.map +1 -0
- package/dist/src/builder/dry-run.js +103 -0
- package/dist/src/builder/dry-run.js.map +1 -0
- package/dist/src/builder/manifest-writer.d.ts +7 -0
- package/dist/src/builder/manifest-writer.d.ts.map +1 -0
- package/dist/src/builder/manifest-writer.js +17 -0
- package/dist/src/builder/manifest-writer.js.map +1 -0
- package/dist/src/builder/review-display.d.ts +10 -0
- package/dist/src/builder/review-display.d.ts.map +1 -0
- package/dist/src/builder/review-display.js +55 -0
- package/dist/src/builder/review-display.js.map +1 -0
- package/dist/src/builder/smart-validator.d.ts +39 -0
- package/dist/src/builder/smart-validator.d.ts.map +1 -0
- package/dist/src/builder/smart-validator.js +157 -0
- package/dist/src/builder/smart-validator.js.map +1 -0
- package/dist/src/builder/steps/domains.d.ts +10 -0
- package/dist/src/builder/steps/domains.d.ts.map +1 -0
- package/dist/src/builder/steps/domains.js +71 -0
- package/dist/src/builder/steps/domains.js.map +1 -0
- package/dist/src/builder/steps/engagement-info.d.ts +17 -0
- package/dist/src/builder/steps/engagement-info.d.ts.map +1 -0
- package/dist/src/builder/steps/engagement-info.js +49 -0
- package/dist/src/builder/steps/engagement-info.js.map +1 -0
- package/dist/src/builder/steps/engagement-window.d.ts +15 -0
- package/dist/src/builder/steps/engagement-window.d.ts.map +1 -0
- package/dist/src/builder/steps/engagement-window.js +57 -0
- package/dist/src/builder/steps/engagement-window.js.map +1 -0
- package/dist/src/builder/steps/exclusions.d.ts +13 -0
- package/dist/src/builder/steps/exclusions.d.ts.map +1 -0
- package/dist/src/builder/steps/exclusions.js +57 -0
- package/dist/src/builder/steps/exclusions.js.map +1 -0
- package/dist/src/builder/steps/ip-ranges.d.ts +10 -0
- package/dist/src/builder/steps/ip-ranges.d.ts.map +1 -0
- package/dist/src/builder/steps/ip-ranges.js +64 -0
- package/dist/src/builder/steps/ip-ranges.js.map +1 -0
- package/dist/src/builder/steps/review.d.ts +10 -0
- package/dist/src/builder/steps/review.d.ts.map +1 -0
- package/dist/src/builder/steps/review.js +29 -0
- package/dist/src/builder/steps/review.js.map +1 -0
- package/dist/src/builder/steps/techniques.d.ts +13 -0
- package/dist/src/builder/steps/techniques.d.ts.map +1 -0
- package/dist/src/builder/steps/techniques.js +68 -0
- package/dist/src/builder/steps/techniques.js.map +1 -0
- package/dist/src/builder/steps/urls-and-cloud.d.ts +15 -0
- package/dist/src/builder/steps/urls-and-cloud.d.ts.map +1 -0
- package/dist/src/builder/steps/urls-and-cloud.js +53 -0
- package/dist/src/builder/steps/urls-and-cloud.js.map +1 -0
- package/dist/src/builder/web/api.d.ts +9 -0
- package/dist/src/builder/web/api.d.ts.map +1 -0
- package/dist/src/builder/web/api.js +40 -0
- package/dist/src/builder/web/api.js.map +1 -0
- package/dist/src/builder/web/client-form.html +222 -0
- package/dist/src/builder/web/server.d.ts +14 -0
- package/dist/src/builder/web/server.d.ts.map +1 -0
- package/dist/src/builder/web/server.js +85 -0
- package/dist/src/builder/web/server.js.map +1 -0
- package/dist/src/builder/wizard.d.ts +9 -0
- package/dist/src/builder/wizard.d.ts.map +1 -0
- package/dist/src/builder/wizard.js +49 -0
- package/dist/src/builder/wizard.js.map +1 -0
- package/dist/src/config.d.ts +11 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +15 -2
- package/dist/src/config.js.map +1 -1
- package/dist/src/dns-resolver.d.ts +10 -1
- package/dist/src/dns-resolver.d.ts.map +1 -1
- package/dist/src/dns-resolver.js +41 -3
- package/dist/src/dns-resolver.js.map +1 -1
- package/dist/src/extractor.d.ts +12 -0
- package/dist/src/extractor.d.ts.map +1 -1
- package/dist/src/extractor.js +386 -0
- package/dist/src/extractor.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/ip-matcher.d.ts +23 -0
- package/dist/src/ip-matcher.d.ts.map +1 -1
- package/dist/src/ip-matcher.js +96 -23
- package/dist/src/ip-matcher.js.map +1 -1
- package/dist/src/manifest-schema.d.ts +12 -62
- package/dist/src/manifest-schema.d.ts.map +1 -1
- package/dist/src/manifest.d.ts +6 -0
- package/dist/src/manifest.d.ts.map +1 -1
- package/dist/src/manifest.js +21 -6
- package/dist/src/manifest.js.map +1 -1
- package/dist/src/proxy.d.ts +19 -4
- package/dist/src/proxy.d.ts.map +1 -1
- package/dist/src/proxy.js +111 -33
- package/dist/src/proxy.js.map +1 -1
- package/dist/src/safe-filename.d.ts +3 -0
- package/dist/src/safe-filename.d.ts.map +1 -0
- package/dist/src/safe-filename.js +8 -0
- package/dist/src/safe-filename.js.map +1 -0
- package/dist/src/sanitizer.d.ts.map +1 -1
- package/dist/src/sanitizer.js +36 -10
- package/dist/src/sanitizer.js.map +1 -1
- package/dist/src/technique-checker.d.ts +14 -0
- package/dist/src/technique-checker.d.ts.map +1 -1
- package/dist/src/technique-checker.js +123 -2
- package/dist/src/technique-checker.js.map +1 -1
- package/dist/src/transports/http.d.ts +6 -2
- package/dist/src/transports/http.d.ts.map +1 -1
- package/dist/src/transports/http.js +101 -13
- package/dist/src/transports/http.js.map +1 -1
- package/dist/src/transports/sse.d.ts +13 -0
- package/dist/src/transports/sse.d.ts.map +1 -0
- package/dist/src/transports/sse.js +161 -0
- package/dist/src/transports/sse.js.map +1 -0
- package/dist/src/transports/stdio.d.ts +2 -2
- package/dist/src/transports/stdio.d.ts.map +1 -1
- package/dist/src/transports/stdio.js +77 -48
- package/dist/src/transports/stdio.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/validator.d.ts +19 -28
- package/dist/src/validator.d.ts.map +1 -1
- package/dist/src/validator.js +315 -113
- package/dist/src/validator.js.map +1 -1
- package/examples/claude-desktop-burp-config.json +6 -6
- package/package.json +21 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf;oDACgD;IAChD,YAAY,EAAE,OAAO,CAAC;CACvB;AA6gBD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,gBAAgB,EAAE,CA6DpB;AAMD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,gBAAgB,GAAG,IAAI,CAmBzB"}
|
package/dist/src/extractor.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* Every code path here has a corresponding unit test — do not modify without
|
|
11
11
|
* updating tests/unit/extractor.test.ts.
|
|
12
12
|
*/
|
|
13
|
+
import { isIP } from "node:net";
|
|
13
14
|
const TOOL_MAPPINGS = [
|
|
14
15
|
{ match: "nmap", params: ["target", "host", "hosts"] },
|
|
15
16
|
{ match: "nmap_scan", params: ["target", "host", "hosts"] },
|
|
@@ -42,6 +43,151 @@ const TOOL_MAPPINGS = [
|
|
|
42
43
|
{ match: "send_http2_request", params: ["targetHostname"] },
|
|
43
44
|
{ match: "create_repeater_tab", params: ["targetHostname"] },
|
|
44
45
|
{ match: "send_to_intruder", params: ["targetHostname"] },
|
|
46
|
+
// Subdomain enumeration & asset discovery
|
|
47
|
+
{ match: "amass", params: ["domain", "target"] },
|
|
48
|
+
// "list" is intentionally absent: it can be a file path ("subdomains.txt"),
|
|
49
|
+
// which is not a DNS-resolvable target. Use domain/target for scope checks.
|
|
50
|
+
{ match: "alterx", params: ["domain", "target"] },
|
|
51
|
+
{ match: "assetfinder", params: ["domain", "target"] },
|
|
52
|
+
{ match: "subfinder", params: ["domain", "target"] },
|
|
53
|
+
{ match: "shuffledns", params: ["domain", "target"] },
|
|
54
|
+
// DNS & certificate tools
|
|
55
|
+
{ match: "dnsx", params: ["domain", "host", "target"] },
|
|
56
|
+
{ match: "cero", params: ["target", "host", "domain"] },
|
|
57
|
+
// "query" (wildcard patterns like "%.example.com") is kept last because it
|
|
58
|
+
// is not a valid DNS hostname and would cause resolution to fail.
|
|
59
|
+
{ match: "crtsh", params: ["domain", "target", "query"] },
|
|
60
|
+
// HTTP probing & crawling
|
|
61
|
+
{ match: "httpx", params: ["url", "target", "host"] },
|
|
62
|
+
{ match: "katana", params: ["url", "target"] },
|
|
63
|
+
{ match: "gowitness", params: ["url", "target"] },
|
|
64
|
+
// Port scanning
|
|
65
|
+
{ match: "masscan", params: ["target", "host", "range"] },
|
|
66
|
+
// OSINT & passive recon
|
|
67
|
+
// "query" is intentionally last: Shodan/Censys/Fofa query strings like
|
|
68
|
+
// `ssl:"example.com"` are not DNS-resolvable hostnames. If only query is
|
|
69
|
+
// present the validator will deny the targetless call by default.
|
|
70
|
+
{ match: "uncover", params: ["target", "domain", "query"] },
|
|
71
|
+
{ match: "waybackurls", params: ["domain", "url", "target"] },
|
|
72
|
+
// Notification streaming
|
|
73
|
+
{ match: "notify", params: ["target"] },
|
|
74
|
+
// Vulnerability & web-app scanners
|
|
75
|
+
{ match: "arjun", params: ["url", "target"] },
|
|
76
|
+
{ match: "smuggler", params: ["url", "host", "target"] },
|
|
77
|
+
{ match: "wpscan", params: ["url", "target"] },
|
|
78
|
+
{ match: "nessus", params: ["target", "host", "url"] },
|
|
79
|
+
{ match: "dalfox", params: ["url", "target"] },
|
|
80
|
+
{ match: "zap", params: ["url", "target"] },
|
|
81
|
+
{ match: "burpsuite", params: ["url", "target", "host"] },
|
|
82
|
+
// Exploitation & credential tools
|
|
83
|
+
{ match: "hydra", params: ["target", "host", "url"] },
|
|
84
|
+
// hashcat cracks hashes offline; target only applies if a network host is passed
|
|
85
|
+
{ match: "hashcat", params: ["target"] },
|
|
86
|
+
// Cloud security auditing
|
|
87
|
+
{ match: "prowler", params: ["target", "account"] },
|
|
88
|
+
{ match: "scoutsuite", params: ["target", "account"] },
|
|
89
|
+
// Container & IaC security
|
|
90
|
+
// "image" is a container image name (not a network hostname), kept last
|
|
91
|
+
{ match: "trivy", params: ["target", "url", "image"] },
|
|
92
|
+
{ match: "checkov", params: ["target", "url"] },
|
|
93
|
+
// Kubernetes security
|
|
94
|
+
{ match: "kube-hunter", params: ["target", "remote"] },
|
|
95
|
+
{ match: "kubeaudit", params: ["target"] },
|
|
96
|
+
{ match: "kube-bench", params: ["target", "node"] },
|
|
97
|
+
// OSINT & threat intelligence
|
|
98
|
+
// "query" last: Shodan query strings are not DNS hostnames
|
|
99
|
+
{ match: "shodan", params: ["host", "target", "query"] },
|
|
100
|
+
{ match: "virustotal", params: ["url", "domain", "target"] },
|
|
101
|
+
{ match: "bloodhound", params: ["target", "domain"] },
|
|
102
|
+
// Nmap MCP Server — prefix wildcard catches all nmap_* tool variants
|
|
103
|
+
// (nmap and nmap_scan exact entries above take priority for those names)
|
|
104
|
+
{ match: "nmap_*", params: ["targets", "target", "host"] },
|
|
105
|
+
// Hex Strike AI MCP — https://github.com/0x4m4/hexstrike-ai
|
|
106
|
+
{ match: "gobuster_scan", params: ["url", "target"] },
|
|
107
|
+
{ match: "nuclei_scan", params: ["target", "url"] },
|
|
108
|
+
{ match: "sqlmap_scan", params: ["url", "target"] },
|
|
109
|
+
{ match: "ffuf_scan", params: ["url", "target"] },
|
|
110
|
+
{ match: "feroxbuster_scan", params: ["url", "target"] },
|
|
111
|
+
{ match: "subfinder_scan", params: ["domain", "target"] },
|
|
112
|
+
{ match: "rustscan_fast_scan", params: ["target"] },
|
|
113
|
+
{ match: "katana_crawl", params: ["url", "target"] },
|
|
114
|
+
{ match: "hydra_attack", params: ["target", "host"] },
|
|
115
|
+
// metasploit_run options={RHOST:...} is handled by nested extraction.
|
|
116
|
+
// Offline hashcat/Ghidra/radare2 calls need an explicit targetless policy.
|
|
117
|
+
// Kali Linux MCP — https://github.com/k3nn3dy-ai/kali-mcp
|
|
118
|
+
{ match: "port_scan", params: ["target", "host"] },
|
|
119
|
+
{ match: "dns_enum", params: ["domain", "target"] },
|
|
120
|
+
{ match: "network_discovery", params: ["target"] },
|
|
121
|
+
{ match: "subdomain_enum", params: ["target", "domain"] },
|
|
122
|
+
{ match: "vulnerability_scan", params: ["target", "url"] },
|
|
123
|
+
{ match: "web_enumeration", params: ["target", "url"] },
|
|
124
|
+
{ match: "enum_shares", params: ["target"] },
|
|
125
|
+
{ match: "ssl_analysis", params: ["target", "host", "url"] },
|
|
126
|
+
// payload_generate lhost / reverse_shell lhost are targetless by default.
|
|
127
|
+
// Shodan MCP (BurtTheCoder) — https://github.com/BurtTheCoder/mcp-shodan
|
|
128
|
+
{ match: "ip_lookup", params: ["ip"] },
|
|
129
|
+
// shodan_search query strings are not DNS hostnames; proxy fails closed → BLOCKED_DNS_FAILED
|
|
130
|
+
{ match: "shodan_search", params: ["query"] },
|
|
131
|
+
{ match: "dns_lookup", params: ["hostnames"] },
|
|
132
|
+
{ match: "reverse_dns_lookup", params: ["ips"] },
|
|
133
|
+
// cve_lookup / cpe_lookup / cves_by_product have no extractable network target.
|
|
134
|
+
// Shodan MCP (Vorota-ai) — hyphenated tool names
|
|
135
|
+
{ match: "shodan-ip-lookup", params: ["ip"] },
|
|
136
|
+
// shodan-search query syntax not a DNS hostname → BLOCKED_DNS_FAILED
|
|
137
|
+
{ match: "shodan-search", params: ["query"] },
|
|
138
|
+
{ match: "shodan-dns-resolve", params: ["hostname"] },
|
|
139
|
+
{ match: "shodan-dns-reverse", params: ["ip"] },
|
|
140
|
+
{ match: "shodan-domain-info", params: ["domain"] },
|
|
141
|
+
{ match: "shodan-honeypot-score", params: ["ip"] },
|
|
142
|
+
{ match: "shodan-internetdb-lookup", params: ["ip"] },
|
|
143
|
+
// Burp Suite MCP — PortSwigger official scan initiation
|
|
144
|
+
{ match: "start_scan", params: ["target_url", "url"] },
|
|
145
|
+
// WireMCP — https://github.com/0xKoda/WireMCP
|
|
146
|
+
{ match: "check_ip_threats", params: ["ip"] },
|
|
147
|
+
// capture_packets / analyze_pcap / extract_credentials use an interface or file path.
|
|
148
|
+
// VirusTotal MCP — https://github.com/BurtTheCoder/mcp-virustotal
|
|
149
|
+
{ match: "get_url_report", params: ["url"] },
|
|
150
|
+
{ match: "get_ip_report", params: ["ip"] },
|
|
151
|
+
{ match: "get_domain_report", params: ["domain"] },
|
|
152
|
+
{ match: "submit_url", params: ["url"] },
|
|
153
|
+
{ match: "get_url_relationship", params: ["url"] },
|
|
154
|
+
{ match: "get_ip_relationship", params: ["ip"] },
|
|
155
|
+
{ match: "get_domain_relationship", params: ["domain"] },
|
|
156
|
+
// get_hash_report / get_file_relationship / get_analysis_status have no network target.
|
|
157
|
+
// Awesome Kali MCP Servers — https://github.com/ccq1/awsome_kali_MCPServers
|
|
158
|
+
{ match: "basic_scan", params: ["target", "targets"] },
|
|
159
|
+
{ match: "intense_scan", params: ["target", "targets"] },
|
|
160
|
+
{ match: "stealth_scan", params: ["target", "targets"] },
|
|
161
|
+
{ match: "quick_scan", params: ["target", "targets"] },
|
|
162
|
+
// capture_live / analyze_pcap / extract_http use an interface or pcap file.
|
|
163
|
+
// Postman MCP Server — https://github.com/postmanlabs/postman-mcp-server
|
|
164
|
+
{ match: "runRequest", params: ["url", "uri"] },
|
|
165
|
+
// createCollection / getCollections / runCollection etc. have no network target.
|
|
166
|
+
// Semgrep MCP (semgrep/mcp) — security_check / semgrep_scan / semgrep_scan_with_custom_rule
|
|
167
|
+
// scan local code paths; semgrep_findings queries the Semgrep cloud API with no
|
|
168
|
+
// user-specified host. None have an extractable network target.
|
|
169
|
+
// Gitleaks MCP — gitleaks_scan detects secrets in local git repos / file paths.
|
|
170
|
+
// Ghidra MCP (LaurieWired/GhidraMCP) — decompile_function and related tools operate on
|
|
171
|
+
// binaries loaded into Ghidra; no extractable network target.
|
|
172
|
+
// MobSF MCP (pullkitsan/mobsf-mcp-server) — scanFile accepts a local APK/IPA path.
|
|
173
|
+
// CrackMapExec MCP — AD/SMB network reconnaissance and exploitation
|
|
174
|
+
{ match: "crackmapexec", params: ["target", "host", "dc"] },
|
|
175
|
+
// Acunetix MCP (MCPwnetix) — add_target embeds the URL inside a nested body dict;
|
|
176
|
+
// nested target fields are inspected; targetless add_target calls are denied.
|
|
177
|
+
// Direct acunetix alias for simple URL-based calls:
|
|
178
|
+
{ match: "acunetix", params: ["url", "target"] },
|
|
179
|
+
// SSLScan MCP — TLS/SSL cipher and certificate analysis
|
|
180
|
+
{ match: "sslscan", params: ["target", "host"] },
|
|
181
|
+
// HTTP security headers — Custom MCP
|
|
182
|
+
{ match: "http_headers", params: ["url", "target"] },
|
|
183
|
+
{ match: "check_http_headers", params: ["url", "target"] },
|
|
184
|
+
// Commix — Automated command injection exploitation MCP
|
|
185
|
+
{ match: "commix", params: ["url", "target"] },
|
|
186
|
+
// Next.js CVE scanner — Custom MCP
|
|
187
|
+
{ match: "nextjs_scan", params: ["url", "target"] },
|
|
188
|
+
{ match: "nextjs_scanner", params: ["url", "target"] },
|
|
189
|
+
// Unified all-in-one security MCP
|
|
190
|
+
{ match: "unified_scan", params: ["url", "target"] },
|
|
45
191
|
];
|
|
46
192
|
/**
|
|
47
193
|
* Fallback parameter names tried (in priority order) when the tool name does
|
|
@@ -161,6 +307,246 @@ function findMapping(toolName) {
|
|
|
161
307
|
return null;
|
|
162
308
|
}
|
|
163
309
|
// ---------------------------------------------------------------------------
|
|
310
|
+
// Multi-target extraction (used by the validator)
|
|
311
|
+
// ---------------------------------------------------------------------------
|
|
312
|
+
/**
|
|
313
|
+
* Additional target-like parameter names checked on EVERY tool call (on top of
|
|
314
|
+
* the tool-specific mapping and FALLBACK_PARAMS). Scope enforcement must see
|
|
315
|
+
* every target a call carries, not just the first one.
|
|
316
|
+
*/
|
|
317
|
+
const EXTRA_TARGET_PARAMS = [
|
|
318
|
+
"targets",
|
|
319
|
+
"hosts",
|
|
320
|
+
"hostname",
|
|
321
|
+
"hostnames",
|
|
322
|
+
"urls",
|
|
323
|
+
"domains",
|
|
324
|
+
"rhosts",
|
|
325
|
+
"ip",
|
|
326
|
+
"ips",
|
|
327
|
+
"ip_address",
|
|
328
|
+
"address",
|
|
329
|
+
"base_url",
|
|
330
|
+
"baseurl",
|
|
331
|
+
"endpoint",
|
|
332
|
+
"endpoint_url",
|
|
333
|
+
"server_url",
|
|
334
|
+
"target_host",
|
|
335
|
+
"target_ip",
|
|
336
|
+
"ipaddress",
|
|
337
|
+
"fqdn",
|
|
338
|
+
"destination_url",
|
|
339
|
+
"remote_host",
|
|
340
|
+
"remote",
|
|
341
|
+
];
|
|
342
|
+
/**
|
|
343
|
+
* Parameters that hold non-hostname data (search queries, image names). They
|
|
344
|
+
* are only used when a mapped tool supplies nothing else, matching the
|
|
345
|
+
* single-target behaviour of extractTarget().
|
|
346
|
+
*/
|
|
347
|
+
const LAST_RESORT_PARAMS = new Set(["query", "image"]);
|
|
348
|
+
/**
|
|
349
|
+
* Parameters that carry free-form command lines. Their contents are scanned
|
|
350
|
+
* for URLs, IPs, CIDRs and hostnames so that e.g.
|
|
351
|
+
* `execute_command {command: "nmap 8.8.8.8"}` cannot dodge the scope check.
|
|
352
|
+
*/
|
|
353
|
+
const COMMAND_PARAMS = [
|
|
354
|
+
"command",
|
|
355
|
+
"cmd",
|
|
356
|
+
"command_line",
|
|
357
|
+
"commandline",
|
|
358
|
+
"cmdline",
|
|
359
|
+
"shell_command",
|
|
360
|
+
"args",
|
|
361
|
+
"extra_args",
|
|
362
|
+
"additional_args",
|
|
363
|
+
];
|
|
364
|
+
/**
|
|
365
|
+
* File extensions that look like TLDs. Tokens ending in these inside command
|
|
366
|
+
* lines (e.g. "-oX out.xml") are treated as file names, not hostnames.
|
|
367
|
+
*/
|
|
368
|
+
const FILE_EXTENSIONS = new Set([
|
|
369
|
+
"txt", "xml", "json", "csv", "html", "htm", "log", "nmap", "gnmap", "py",
|
|
370
|
+
"sh", "js", "ts", "md", "yaml", "yml", "conf", "cfg", "ini", "out", "pcap",
|
|
371
|
+
"pcapng", "lst", "list", "db", "sql", "zip", "gz", "tgz", "tar", "exe",
|
|
372
|
+
"dll", "bin", "php", "asp", "aspx", "jsp", "rb", "pl", "go", "java", "jar",
|
|
373
|
+
"war", "png", "jpg", "jpeg", "gif", "pdf", "doc", "docx", "xls", "xlsx",
|
|
374
|
+
"key", "pem", "crt", "cer", "ovpn", "kdbx", "hash", "hashes", "pot",
|
|
375
|
+
"rule", "rules", "dic", "dict", "nse", "lua", "ps1", "bat", "cmd", "toml",
|
|
376
|
+
]);
|
|
377
|
+
const MAX_NESTING_DEPTH = 4;
|
|
378
|
+
const HOSTNAME_RE = /^(?=.{1,253}\.?$)(?:[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?\.)+[a-z]{2,63}\.?$/i;
|
|
379
|
+
const IPV4ISH_RE = /^[\d*]{1,3}(?:[.\-,][\d*]{1,3}){1,}(?:\/\d{1,2})?$/;
|
|
380
|
+
const SCHEME_RE = /^[a-z][a-z0-9+.-]*:\/\//i;
|
|
381
|
+
/** Hostname of any scheme://host URL, or null. */
|
|
382
|
+
function hostOfAnyUrl(value) {
|
|
383
|
+
try {
|
|
384
|
+
let host = new URL(value).hostname;
|
|
385
|
+
if (host.startsWith("[") && host.endsWith("]")) {
|
|
386
|
+
host = host.slice(1, -1);
|
|
387
|
+
}
|
|
388
|
+
return host.length > 0 ? host : null;
|
|
389
|
+
}
|
|
390
|
+
catch {
|
|
391
|
+
return null;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
/** Strip a trailing :port from "host:port" / "1.2.3.4:80" (not bare IPv6). */
|
|
395
|
+
function stripPort(value) {
|
|
396
|
+
const m = /^([^:]+):\d{1,5}$/.exec(value);
|
|
397
|
+
return m ? m[1] : value;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Split a structured parameter value (not a command line) into individual
|
|
401
|
+
* targets. URLs are reduced to their hostname; other strings are split on
|
|
402
|
+
* whitespace, commas and semicolons so "10.0.0.1, 8.8.8.8" yields both.
|
|
403
|
+
*/
|
|
404
|
+
function targetsFromValue(value) {
|
|
405
|
+
const trimmed = value.trim();
|
|
406
|
+
if (trimmed === "")
|
|
407
|
+
return [];
|
|
408
|
+
if (SCHEME_RE.test(trimmed)) {
|
|
409
|
+
const host = hostOfAnyUrl(trimmed);
|
|
410
|
+
// Unparseable URL — keep the raw value so the validator fails closed.
|
|
411
|
+
return [host ?? trimmed];
|
|
412
|
+
}
|
|
413
|
+
return trimmed
|
|
414
|
+
.split(/[\s,;]+/)
|
|
415
|
+
.filter((t) => t.length > 0)
|
|
416
|
+
.map((t) => (SCHEME_RE.test(t) ? hostOfAnyUrl(t) ?? t : stripPort(t)));
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Scan a free-form command line for network targets. Flags and file names
|
|
420
|
+
* are ignored; URLs, IPs, CIDRs, IP ranges and hostnames are returned.
|
|
421
|
+
*/
|
|
422
|
+
function targetsFromCommand(command) {
|
|
423
|
+
const found = [];
|
|
424
|
+
for (const rawToken of command.split(/[\s"'`|&;<>()]+/)) {
|
|
425
|
+
if (!rawToken)
|
|
426
|
+
continue;
|
|
427
|
+
// "--url=https://x" / "target=host" → value part
|
|
428
|
+
let token = rawToken.includes("=") ? rawToken.slice(rawToken.indexOf("=") + 1) : rawToken;
|
|
429
|
+
if (!token || token.startsWith("-"))
|
|
430
|
+
continue;
|
|
431
|
+
if (SCHEME_RE.test(token)) {
|
|
432
|
+
const host = hostOfAnyUrl(token);
|
|
433
|
+
if (host)
|
|
434
|
+
found.push(host);
|
|
435
|
+
continue;
|
|
436
|
+
}
|
|
437
|
+
// ssh-style user@host
|
|
438
|
+
if (token.includes("@"))
|
|
439
|
+
token = token.slice(token.lastIndexOf("@") + 1);
|
|
440
|
+
// Paths are never targets on their own.
|
|
441
|
+
if (token.includes("\\") || (token.includes("/") && !IPV4ISH_RE.test(token) && !isIP(token.split("/")[0]))) {
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
const hostPart = stripPort(token);
|
|
445
|
+
if (isIP(hostPart) !== 0 || isIP(hostPart.split("/")[0]) !== 0) {
|
|
446
|
+
found.push(hostPart);
|
|
447
|
+
}
|
|
448
|
+
else if (IPV4ISH_RE.test(hostPart)) {
|
|
449
|
+
// nmap-style ranges such as 10.0.0.1-50 or 10.0.*.1 — cannot be
|
|
450
|
+
// resolved, so passing them through makes the validator fail closed.
|
|
451
|
+
found.push(hostPart);
|
|
452
|
+
}
|
|
453
|
+
else if (HOSTNAME_RE.test(hostPart)) {
|
|
454
|
+
const tld = hostPart.replace(/\.$/, "").split(".").pop().toLowerCase();
|
|
455
|
+
if (!FILE_EXTENSIONS.has(tld))
|
|
456
|
+
found.push(hostPart);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
return found;
|
|
460
|
+
}
|
|
461
|
+
/** Plain-object guard (arrays and null excluded). */
|
|
462
|
+
function isPlainObject(value) {
|
|
463
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
464
|
+
}
|
|
465
|
+
/** Flatten a parameter value into its string leaves. */
|
|
466
|
+
function stringLeaves(value) {
|
|
467
|
+
if (typeof value === "string")
|
|
468
|
+
return [value];
|
|
469
|
+
if (typeof value === "number")
|
|
470
|
+
return [String(value)];
|
|
471
|
+
if (Array.isArray(value))
|
|
472
|
+
return value.flatMap(stringLeaves);
|
|
473
|
+
return [];
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Extract EVERY target from a tool call's parameters.
|
|
477
|
+
*
|
|
478
|
+
* Unlike extractTarget(), which returns only the first candidate, this walks
|
|
479
|
+
* all target-like parameters (tool-specific, fallback and extra names, matched
|
|
480
|
+
* case-insensitively), every element of array values, nested option objects
|
|
481
|
+
* (e.g. metasploit `options: {RHOSTS: ...}`) and free-form command strings.
|
|
482
|
+
* The validator requires ALL returned targets to be in scope.
|
|
483
|
+
*
|
|
484
|
+
* Returns an empty array when the call has no network target.
|
|
485
|
+
*/
|
|
486
|
+
export function extractTargets(toolName, params) {
|
|
487
|
+
const knownParams = findMapping(toolName);
|
|
488
|
+
const usedFallback = knownParams === null;
|
|
489
|
+
const primary = new Set();
|
|
490
|
+
for (const name of [...(knownParams ?? []), ...FALLBACK_PARAMS, ...EXTRA_TARGET_PARAMS]) {
|
|
491
|
+
const lower = name.toLowerCase();
|
|
492
|
+
if (!LAST_RESORT_PARAMS.has(lower))
|
|
493
|
+
primary.add(lower);
|
|
494
|
+
}
|
|
495
|
+
const commandParams = new Set(COMMAND_PARAMS);
|
|
496
|
+
const results = [];
|
|
497
|
+
const seen = new Set();
|
|
498
|
+
const add = (target, source) => {
|
|
499
|
+
const key = target.toLowerCase();
|
|
500
|
+
if (seen.has(key))
|
|
501
|
+
return;
|
|
502
|
+
seen.add(key);
|
|
503
|
+
results.push({ target, source, usedFallback });
|
|
504
|
+
};
|
|
505
|
+
const walk = (obj, prefix, depth) => {
|
|
506
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
507
|
+
const lower = key.toLowerCase();
|
|
508
|
+
const source = prefix ? `${prefix}.${key}` : key;
|
|
509
|
+
if (primary.has(lower)) {
|
|
510
|
+
for (const leaf of stringLeaves(value)) {
|
|
511
|
+
for (const t of targetsFromValue(leaf))
|
|
512
|
+
add(t, source);
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
else if (commandParams.has(lower)) {
|
|
516
|
+
for (const leaf of stringLeaves(value)) {
|
|
517
|
+
for (const t of targetsFromCommand(leaf))
|
|
518
|
+
add(t, source);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
if (depth < MAX_NESTING_DEPTH) {
|
|
522
|
+
if (isPlainObject(value)) {
|
|
523
|
+
walk(value, source, depth + 1);
|
|
524
|
+
}
|
|
525
|
+
else if (Array.isArray(value)) {
|
|
526
|
+
value.forEach((item, i) => {
|
|
527
|
+
if (isPlainObject(item))
|
|
528
|
+
walk(item, `${source}[${i}]`, depth + 1);
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
};
|
|
534
|
+
walk(params, "", 0);
|
|
535
|
+
// Mapped last-resort params (e.g. crtsh "query") only when nothing else hit.
|
|
536
|
+
if (results.length === 0 && knownParams !== null) {
|
|
537
|
+
for (const name of knownParams) {
|
|
538
|
+
if (!LAST_RESORT_PARAMS.has(name.toLowerCase()) || !(name in params))
|
|
539
|
+
continue;
|
|
540
|
+
const resolved = resolveParamValue(params[name]);
|
|
541
|
+
if (resolved !== null) {
|
|
542
|
+
add(resolved, name);
|
|
543
|
+
break;
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
return results;
|
|
548
|
+
}
|
|
549
|
+
// ---------------------------------------------------------------------------
|
|
164
550
|
// Public API
|
|
165
551
|
// ---------------------------------------------------------------------------
|
|
166
552
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/extractor.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.
|
|
7
|
+
export declare const VERSION = "0.2.6";
|
|
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.
|
|
6
|
+
export const VERSION = "0.2.6";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/src/ip-matcher.d.ts
CHANGED
|
@@ -28,6 +28,29 @@ export declare function isIpInAnyRange(ip: string, ranges: string[]): boolean;
|
|
|
28
28
|
* Returns `false` for invalid inputs and for IPv6 addresses.
|
|
29
29
|
*/
|
|
30
30
|
export declare function isRfc1918(ip: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Return true if `value` is a valid CIDR range (must contain a `/`).
|
|
33
|
+
*/
|
|
34
|
+
export declare function isCidr(value: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Return the [first, last] address of a CIDR or bare IP, or null if invalid.
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* Return true if every address in `inner` (CIDR or bare IP) lies within
|
|
40
|
+
* `outer` (CIDR or bare IP). Returns false for invalid or mixed-family input.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isRangeWithin(inner: string, outer: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Return true if the two ranges (CIDRs or bare IPs) share at least one
|
|
45
|
+
* address. CIDR blocks are either nested or disjoint, so checking whether
|
|
46
|
+
* either range's first address falls in the other is sufficient.
|
|
47
|
+
*/
|
|
48
|
+
export declare function rangesOverlap(a: string, b: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Return true if `ip` is loopback, link-local, unspecified or a cloud
|
|
51
|
+
* metadata endpoint.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isRestrictedIp(ip: string): boolean;
|
|
31
54
|
/**
|
|
32
55
|
* Return true if `ip` is a known cloud metadata endpoint.
|
|
33
56
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ip-matcher.d.ts","sourceRoot":"","sources":["../../src/ip-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"ip-matcher.d.ts","sourceRoot":"","sources":["../../src/ip-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6CH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAa5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAOpE;AAgBD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAS7C;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAS7C;AAED;;GAEG;AACH;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAMnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAK3D;AAmBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKlD;AAYD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKnD"}
|