nsauditor-ai-agent-skill 0.1.10

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.
@@ -0,0 +1,248 @@
1
+ # NSAuditor AI — Example Agent Interactions
2
+
3
+ Reasoning chains showing how an AI agent should use NSAuditor AI tools.
4
+
5
+ ---
6
+
7
+ ## Example 1: "Scan my router for vulnerabilities"
8
+
9
+ **Agent reasoning:** User wants a full security audit. Use `scan_host` first, then
10
+ `get_vulnerabilities` for each detected service with a version.
11
+
12
+ ```
13
+ 1. scan_host({ host: "192.168.1.1" })
14
+ → Result: {
15
+ summary: { services_found: 4, findings_count: 1 },
16
+ host: { os: "Linux", vendor: "Ubiquiti" },
17
+ services: [
18
+ { port: 22, service: "ssh", program: "OpenSSH", version: "8.9p1" },
19
+ { port: 53, service: "dns", program: "dnsmasq", version: "2.89" },
20
+ { port: 443, service: "https", program: "lighttpd", version: "1.4.69" },
21
+ { port: 161, service: "snmp", program: null, version: null }
22
+ ],
23
+ findings: [
24
+ { severity: "MEDIUM", title: "SNMP default community string 'public'" }
25
+ ]
26
+ }
27
+
28
+ 2. get_vulnerabilities({ cpe: "cpe:2.3:a:openbsd:openssh:8.9p1:*:*:*:*:*:*:*" })
29
+ → CVE-2023-38408 (CRITICAL 9.8), CVE-2023-48795 (MEDIUM 5.9)
30
+
31
+ 3. get_vulnerabilities({ cpe: "cpe:2.3:a:thekelleys:dnsmasq:2.89:*:*:*:*:*:*:*" })
32
+ → CVE-2023-50387 (HIGH 7.5) — KeyTrap DNS vulnerability
33
+
34
+ 4. get_vulnerabilities({ cpe: "cpe:2.3:a:lighttpd:lighttpd:1.4.69:*:*:*:*:*:*:*" })
35
+ → No known CVEs
36
+
37
+ 5. Present findings sorted by severity:
38
+ CRITICAL: CVE-2023-38408 — OpenSSH ssh-agent RCE (upgrade to 9.3p2+)
39
+ HIGH: CVE-2023-50387 — dnsmasq KeyTrap DoS (upgrade to 2.90+)
40
+ MEDIUM: CVE-2023-48795 — SSH Terrapin attack (upgrade OpenSSH)
41
+ MEDIUM: SNMP default community string (change community string)
42
+ INFO: SNMP on port 161 has no version — manual investigation recommended
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Example 2: "What plugins does NSAuditor have?"
48
+
49
+ **Agent reasoning:** Simple metadata query — use `list_plugins`.
50
+
51
+ ```
52
+ 1. list_plugins()
53
+ → Return formatted list grouped by category:
54
+
55
+ Core Scanners (17):
56
+ • 001 Ping Checker — ICMP/ARP reachability + TTL OS hints
57
+ • 002 SSH Scanner — SSH banner, version, weak algorithms
58
+ • 003 Port Scanner — TCP/UDP bulk scan (~1000 ports)
59
+ [... full list ...]
60
+
61
+ Discovery (6):
62
+ • 025 DB Scanner — MySQL, PostgreSQL, Redis detection
63
+ [... etc ...]
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Example 3: "Check if port 443 on example.com has weak TLS"
69
+
70
+ **Agent reasoning:** Targeted single-service probe — use `probe_service` with TLS scanner.
71
+
72
+ ```
73
+ 1. probe_service({ host: "example.com", pluginName: "011", port: 443 })
74
+ → Result: {
75
+ program: "nginx",
76
+ version: "1.24.0",
77
+ data: [{
78
+ probe_info: "TLS handshake",
79
+ tls_versions: ["TLSv1.2", "TLSv1.3"],
80
+ ciphers: ["TLS_AES_256_GCM_SHA384", "TLS_CHACHA20_POLY1305_SHA256"],
81
+ weakProtocols: [],
82
+ weakCiphers: []
83
+ }]
84
+ }
85
+
86
+ 2. Analysis: No deprecated TLS versions found. TLSv1.0 and TLSv1.1 are NOT
87
+ supported. All cipher suites are strong (AES-256-GCM, ChaCha20).
88
+ Verdict: TLS configuration is secure.
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Example 4: "Is Log4j 2.14.1 vulnerable?"
94
+
95
+ **Agent reasoning:** Direct CVE lookup — no scan needed. Construct CPE and query.
96
+
97
+ ```
98
+ 1. get_vulnerabilities({
99
+ cpe: "cpe:2.3:a:apache:log4j:2.14.1:*:*:*:*:*:*:*",
100
+ maxResults: 10
101
+ })
102
+ → [
103
+ CVE-2021-44228 (Log4Shell) — CRITICAL 10.0 — RCE via JNDI injection
104
+ CVE-2021-45046 — CRITICAL 9.0 — Incomplete fix for Log4Shell
105
+ CVE-2021-45105 — HIGH 7.5 — DoS via crafted lookup
106
+ CVE-2021-44832 — MEDIUM 6.6 — RCE via JDBC appender
107
+ ]
108
+
109
+ 2. Present with urgency: "Log4j 2.14.1 is critically vulnerable to Log4Shell
110
+ (CVE-2021-44228, CVSS 10.0) which enables remote code execution. Upgrade
111
+ immediately to Log4j 2.17.1+ or migrate to a maintained logging framework."
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Example 5: "Set up continuous monitoring for my subnet"
117
+
118
+ **Agent reasoning:** CTEM is a CLI feature, not available via MCP. Advise with the
119
+ correct CLI command.
120
+
121
+ ```
122
+ Agent response:
123
+ "Continuous monitoring uses the CLI's watch mode (not available via MCP tools).
124
+
125
+ Run:
126
+ nsauditor-ai scan --host 192.168.1.0/24 --plugins all \
127
+ --watch --interval 15 \
128
+ --webhook-url https://your-webhook.example.com/alerts \
129
+ --alert-severity high
130
+
131
+ This rescans every 15 minutes, detects changes (new/removed services, version
132
+ changes, new findings), and sends webhook alerts for high+ severity changes.
133
+
134
+ Scan history is stored in .scan_history/ as JSONL for trend analysis."
135
+ ```
136
+
137
+ ---
138
+
139
+ ## Example 6: "Audit DNS security for example.com" (Pro)
140
+
141
+ **Agent reasoning:** Use the DNS Security Auditor plugin for comprehensive DNS assessment.
142
+
143
+ ```
144
+ 1. probe_service({ host: "example.com", pluginName: "060", port: 53 })
145
+ → Result: {
146
+ spf: { valid: true, record: "v=spf1 include:_spf.google.com ~all" },
147
+ dkim: { found: true, selectors: ["google"] },
148
+ dmarc: { valid: true, policy: "reject", rua: "dmarc@example.com" },
149
+ dnssec: { signed: false },
150
+ axfr: { allowed: false },
151
+ mx: [{ host: "alt1.gmail-smtp-in.l.google.com", starttls: true }],
152
+ caa: [{ value: "letsencrypt.org" }]
153
+ }
154
+
155
+ 2. Present findings:
156
+ ✅ SPF configured (includes Google)
157
+ ✅ DKIM found (google selector)
158
+ ✅ DMARC policy set to 'reject' (strongest setting)
159
+ ⚠ DNSSEC not enabled (recommended for integrity)
160
+ ✅ Zone transfer (AXFR) properly blocked
161
+ ✅ MX servers support STARTTLS
162
+ ✅ CAA restricts certificates to Let's Encrypt
163
+ ```
164
+
165
+ ---
166
+
167
+ ## Example 7: Error Handling — SSRF Block
168
+
169
+ **Agent reasoning:** User asked to scan localhost, which triggers SSRF protection.
170
+
171
+ ```
172
+ 1. scan_host({ host: "127.0.0.1" })
173
+ → Error: "SSRF protection: loopback addresses are blocked"
174
+
175
+ 2. Agent response:
176
+ "NSAuditor AI blocks scanning of loopback addresses (127.x.x.x) as a security
177
+ measure. This prevents SSRF attacks when the scanner is exposed as an MCP tool.
178
+
179
+ If you need to scan your local machine, you have two options:
180
+ 1. Use the CLI directly: nsauditor-ai scan --host 127.0.0.1
181
+ 2. Set NSA_ALLOW_ALL_HOSTS=1 in the MCP server's environment
182
+
183
+ Note: Only enable this for legitimate local auditing, never in production
184
+ MCP deployments."
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Example 8: Error Handling — License Gate
190
+
191
+ **Agent reasoning:** User requested a Pro feature on Community Edition.
192
+
193
+ ```
194
+ 1. User: "Check vulnerabilities for OpenSSH 8.9"
195
+
196
+ 2. get_vulnerabilities({ cpe: "cpe:2.3:a:openbsd:openssh:8.9p1:*:*:*:*:*:*:*" })
197
+ → Error: "🔒 get_vulnerabilities requires a Pro license"
198
+
199
+ 3. Agent response:
200
+ "CVE lookup via NSAuditor requires a Pro license. Here are your options:
201
+
202
+ 1. Start a free trial: nsauditor.com/ai/trial
203
+ 2. Set NSAUDITOR_LICENSE_KEY in your MCP server environment
204
+ 3. Manual lookup: search nvd.nist.gov for 'openssh 8.9' directly
205
+
206
+ Meanwhile, I can still run scan_host (available in Community Edition) to
207
+ detect the service and identify potential risks from the scan evidence."
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Example 9: Full Audit with AI Report
213
+
214
+ **Agent reasoning:** User wants a comprehensive security assessment with AI analysis.
215
+
216
+ ```
217
+ 1. Confirm: "I'll scan 192.168.1.1. Do you have authorization to audit this host?"
218
+ → User confirms
219
+
220
+ 2. scan_host({ host: "192.168.1.1" })
221
+ → 4 services detected, 2 findings
222
+
223
+ 3. get_vulnerabilities for each versioned service
224
+ → 5 CVEs found across 2 services
225
+
226
+ 4. Present consolidated report:
227
+
228
+ ═══════════════════════════════════════
229
+ Security Audit Report: 192.168.1.1
230
+ ═══════════════════════════════════════
231
+
232
+ Host: Linux (Ubuntu 22.04) — Ubiquiti device
233
+ Services: 4 (SSH, DNS, HTTPS, SNMP)
234
+ Findings: 7 total (1 Critical, 1 High, 3 Medium, 2 Info)
235
+
236
+ CRITICAL FINDINGS:
237
+ • CVE-2023-38408 (CVSS 9.8) — OpenSSH ssh-agent RCE
238
+ → Upgrade OpenSSH from 8.9p1 to 9.3p2+
239
+
240
+ HIGH FINDINGS:
241
+ • CVE-2023-50387 (CVSS 7.5) — dnsmasq KeyTrap DoS
242
+ → Upgrade dnsmasq from 2.89 to 2.90+
243
+
244
+ [... continued ...]
245
+
246
+ For AI-enhanced analysis with remediation priorities, enable AI:
247
+ AI_ENABLED=true AI_PROVIDER=ollama nsauditor-ai scan --host 192.168.1.1
248
+ ```
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "nsauditor-ai-agent-skill",
3
+ "version": "0.1.10",
4
+ "description": "AI Agent Skill for NSAuditor AI — gives any AI coding agent built-in knowledge of NSAuditor's MCP tools, schemas, plugins, and security audit workflows.",
5
+ "keywords": [
6
+ "nsauditor",
7
+ "ai-agent",
8
+ "ai-agent-skill",
9
+ "mcp",
10
+ "model-context-protocol",
11
+ "network-security",
12
+ "vulnerability-scanner",
13
+ "security-audit",
14
+ "skill",
15
+ "claude",
16
+ "claude-code",
17
+ "cursor",
18
+ "windsurf",
19
+ "copilot",
20
+ "ai-coding-agent",
21
+ "cve",
22
+ "nvd",
23
+ "mitre-attack",
24
+ "sarif",
25
+ "port-scanner",
26
+ "tls-audit",
27
+ "penetration-testing"
28
+ ],
29
+ "homepage": "https://github.com/nsasoft/nsauditor-ai-agent-skill",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/nsasoft/nsauditor-ai-agent-skill.git"
33
+ },
34
+ "bugs": {
35
+ "url": "https://github.com/nsasoft/nsauditor-ai-agent-skill/issues"
36
+ },
37
+ "license": "MIT",
38
+ "author": {
39
+ "name": "Nsasoft US LLC",
40
+ "url": "https://www.nsauditor.com"
41
+ },
42
+ "files": [
43
+ "SKILL.md",
44
+ "README.md",
45
+ "LICENSE",
46
+ "references/",
47
+ "examples/"
48
+ ],
49
+ "peerDependencies": {
50
+ "nsauditor-ai": ">=0.1.10"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "nsauditor-ai": {
54
+ "optional": true
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,205 @@
1
+ # NSAuditor AI — Plugin Catalog
2
+
3
+ Complete reference of all scanner plugins, organized by category.
4
+
5
+ ---
6
+
7
+ ## Core Scanners (17)
8
+
9
+ | ID | Name | Protocols | Ports | Priority | Requirements |
10
+ |----|------|-----------|-------|----------|-------------|
11
+ | 001 | Ping Checker | ICMP/ARP | — | 100 | — |
12
+ | 002 | SSH Scanner | TCP | 22 | 200 | host: up, tcp_open: [22] |
13
+ | 003 | Port Scanner | TCP/UDP | ~1000 ports | 150 | host: up |
14
+ | 004 | FTP Banner Check | TCP | 21 | 200 | host: up, tcp_open: [21] |
15
+ | 005 | Host Up Check | TCP/UDP | multi-probe | 110 | — |
16
+ | 006 | HTTP Probe | TCP | 80, 443 | 300 | host: up |
17
+ | 007 | SNMP Scanner | UDP | 161 | 300 | host: up |
18
+ | 008 | Result Concluder | Meta | — | 100000 | — (always runs last) |
19
+ | 009 | DNS Scanner | TCP/UDP | 53 | 300 | host: up |
20
+ | 010 | Webapp Detector | HTTP | 80, 443 | 400 | host: up |
21
+ | 011 | TLS Scanner | TCP | 443, 465, 563, 993, 995 | 350 | host: up, tcp_open |
22
+ | 012 | OpenSearch Scanner | HTTP | 9200 | 400 | host: up |
23
+ | 013 | OS Detector | Meta | — | 99000 | — (runs near-last) |
24
+ | 014 | NetBIOS/SMB Scanner | UDP/TCP | 137, 445 | 300 | host: up |
25
+ | 015 | SUN RPC Scanner | TCP/UDP | 111 | 300 | host: up |
26
+ | 016 | WS-Discovery | UDP | 3702 | 300 | host: up |
27
+ | 024 | TCP SYN Scanner | TCP (Nmap) | configurable | 140 | nmap installed, root/sudo |
28
+
29
+ ### Plugin Details
30
+
31
+ **001 — Ping Checker:** ICMP echo with ARP fallback. Extracts TTL-based OS hints
32
+ (TTL 64 = Linux, 128 = Windows, 255 = network device). Falls back to TCP SYN on
33
+ port 80/443 if ICMP is blocked (`PING_FALLBACK=true`).
34
+
35
+ **002 — SSH Scanner:** Parses SSH protocol banner to extract program + version.
36
+ Detects weak key exchange algorithms (`diffie-hellman-group1-sha1`) and weak ciphers
37
+ (`aes128-cbc`, `3des-cbc`). Reports `weakAlgorithms[]` and `weakCiphers[]`.
38
+
39
+ **003 — Port Scanner:** Bulk TCP connect scan (~1000 common ports) with optional
40
+ UDP probing. Banner sniffing on open ports. Results feed into port-gated plugins.
41
+
42
+ **004 — FTP Banner Check:** FTP daemon enumeration. Detects anonymous login,
43
+ extracts program/version from FTP banner (220 response).
44
+
45
+ **005 — Host Up Check:** Multi-probe reachability: ICMP echo → TCP SYN (80, 443) →
46
+ UDP (53, 161). More thorough than Ping Checker for firewalled hosts.
47
+
48
+ **006 — HTTP Probe:** Extracts HTTP response headers (`Server`, `X-Powered-By`),
49
+ detects redirects, extracts server tokens for vendor/program identification.
50
+
51
+ **007 — SNMP Scanner:** Queries sysDescr, sysObjectID, sysName via `public` community.
52
+ Extracts hardware model, firmware version, and OS details from OID responses.
53
+
54
+ **008 — Result Concluder:** Meta-plugin that fuses ALL plugin outputs into a single
55
+ normalized `conclusion` object with `host{}`, `services[]`, and `evidence[]`. Always
56
+ runs last (priority 100000). Resolves conflicts via `authoritative` flag.
57
+
58
+ **009 — DNS Scanner:** Sends `version.bind` CHAOS TXT query to extract DNS server
59
+ version (ISC BIND, PowerDNS, etc.). Also performs A/AAAA record lookups.
60
+
61
+ **010 — Webapp Detector:** Uses Wappalyzer fingerprinting engine to identify web
62
+ technologies: CMS (WordPress, Drupal), frameworks (React, Angular), servers (Apache,
63
+ nginx), CDNs, analytics, and more.
64
+
65
+ **011 — TLS Scanner:** Probes for supported TLS protocol versions (SSLv3, TLSv1.0,
66
+ TLSv1.1, TLSv1.2, TLSv1.3) and cipher suites. Flags deprecated protocols and weak
67
+ ciphers. Timeout configurable via `TLS_SCANNER_TIMEOUT_MS`.
68
+
69
+ **012 — OpenSearch Scanner:** Detects Elasticsearch/OpenSearch instances. Extracts
70
+ cluster name, version, and underlying OS/Java info from the `GET /` endpoint.
71
+
72
+ **013 — OS Detector:** Meta-plugin that derives the most likely OS from ALL collected
73
+ evidence: TTL hints, SSH banners, HTTP headers, SNMP sysDescr, NetBIOS, MAC vendor
74
+ OUI lookup. Runs at priority 99000 (after all probes, before Concluder).
75
+
76
+ **014 — NetBIOS/SMB Scanner:** NetBIOS name service enumeration (UDP 137) and SMB2
77
+ detection (TCP 445). Optionally attempts null session (`SMB_NULL_SESSION=true`) to
78
+ enumerate shares and domain info.
79
+
80
+ **015 — SUN RPC Scanner:** Queries RPC portmapper (port 111) to enumerate registered
81
+ RPC services. Detects NFS, mountd, and other RPC-based services.
82
+
83
+ **016 — WS-Discovery:** Web Services Discovery protocol scanner. Sends WS-Discovery
84
+ probe messages to detect SOAP/WS-enabled devices on the network.
85
+
86
+ **024 — TCP SYN Scanner:** Nmap wrapper for half-open (SYN) scanning. Requires Nmap
87
+ installed and root/sudo privileges. Enable with `ENABLE_SYN_SCAN=true`. Faster and
88
+ stealthier than the TCP connect scanner (003).
89
+
90
+ ---
91
+
92
+ ## Discovery Plugins (6)
93
+
94
+ | ID | Name | Protocol | Purpose |
95
+ |----|------|----------|---------|
96
+ | 025 | DB Scanner | TCP | Database service detection (MySQL, PostgreSQL, Redis, MongoDB, etc.) |
97
+ | 026 | ARP Scanner | ARP | Layer 2 MAC resolution, OUI vendor lookup, OS hints from vendor |
98
+ | 027 | mDNS/Bonjour Scanner | mDNS | Local Bonjour/mDNS service discovery, friendly device names |
99
+ | 028 | UPnP/SSDP Scanner | SSDP | UPnP device discovery via SSDP, description XML parsing |
100
+ | 029 | DNS-SD Scanner | DNS-SD | DNS-based Service Discovery announcements |
101
+ | 030 | LLMNR Scanner | LLMNR | Link-local Multicast Name Resolution (Windows networks) |
102
+
103
+ ### Discovery Plugin Details
104
+
105
+ **025 — DB Scanner:** Connects to common database ports and fingerprints the service
106
+ from handshake responses. Detects MySQL (3306), PostgreSQL (5432), Redis (6379),
107
+ MongoDB (27017), and others.
108
+
109
+ **026 — ARP Scanner:** Resolves IP to MAC via ARP request. Performs OUI vendor lookup
110
+ to identify device manufacturer. Vendor name feeds into OS Detector for OS hints
111
+ (e.g., "Apple" → macOS, "Ubiquiti" → Linux).
112
+
113
+ **027 — mDNS/Bonjour Scanner:** Multicast DNS query for `.local` service announcements.
114
+ Discovers friendly device names, service types (e.g., `_http._tcp`, `_ssh._tcp`),
115
+ and IoT devices broadcasting on the LAN.
116
+
117
+ **028 — UPnP/SSDP Scanner:** Sends M-SEARCH multicast to discover UPnP devices.
118
+ Parses device description XML for manufacturer, model, firmware version.
119
+
120
+ **029 — DNS-SD Scanner:** DNS-based Service Discovery. Enumerates `_services._dns-sd._udp`
121
+ zone to find advertised services.
122
+
123
+ **030 — LLMNR Scanner:** Link-Local Multicast Name Resolution. Detects Windows hosts
124
+ responding to LLMNR queries (useful for Windows network enumeration and detecting
125
+ LLMNR poisoning risk).
126
+
127
+ ---
128
+
129
+ ## Pro Plugins (3)
130
+
131
+ | ID | Name | Ports | Purpose |
132
+ |----|------|-------|---------|
133
+ | 040 | TLS Certificate & Cipher Auditor | 443, 465, 993, 995, 8443 | Deep TLS audit: cert chain, expiry, weak ciphers, HSTS |
134
+ | 050 | TRIBE v2 Probe | 80, 443 | Detect debug info leaks, stack traces, verbose errors, CORS misconfig |
135
+ | 060 | DNS Security Auditor | 53 | SPF/DKIM/DMARC validation, DNSSEC, zone transfer, MX security, CAA |
136
+
137
+ ### Pro Plugin Details
138
+
139
+ **040 — TLS Certificate & Cipher Auditor:** Goes beyond the basic TLS Scanner (011)
140
+ with full certificate chain validation, expiration warnings, certificate transparency
141
+ log checks, HSTS header verification, and a comprehensive weak cipher inventory.
142
+ Generates findings for: expired certs, self-signed certs, missing HSTS, weak key
143
+ sizes (<2048-bit RSA), and deprecated cipher suites.
144
+
145
+ **050 — TRIBE v2 Probe:** Targeted Reconnaissance for Information and Bug Enumeration.
146
+ Sends crafted requests to detect: stack traces in error responses, debug mode
147
+ indicators (`X-Debug`, `X-Powered-By` with version), CORS misconfiguration (wildcard
148
+ origins, credential leaking), verbose error messages, exposed admin panels, directory
149
+ listings, and default pages.
150
+
151
+ **060 — DNS Security Auditor:** Comprehensive DNS security assessment:
152
+ - **SPF:** Validates Sender Policy Framework record syntax and coverage
153
+ - **DKIM:** Checks for DKIM selector records
154
+ - **DMARC:** Validates DMARC policy (reject/quarantine/none)
155
+ - **DNSSEC:** Checks for DNSSEC signing and validation chain
156
+ - **Zone Transfer (AXFR):** Tests if zone transfer is allowed (security risk)
157
+ - **MX Security:** Validates mail exchange records and TLS support
158
+ - **CAA Records:** Checks Certificate Authority Authorization records
159
+
160
+ ---
161
+
162
+ ## Enterprise Plugins (4)
163
+
164
+ | ID | Name | Tier | Purpose |
165
+ |----|------|------|---------|
166
+ | 020 | AWS Cloud Scanner | Enterprise | Security group analysis, IAM policy review, S3 bucket checks |
167
+ | 021 | GCP Cloud Scanner | Enterprise | Firewall rule audit, IAM bindings, project-level security |
168
+ | 022 | Azure Cloud Scanner | Enterprise | NSG rule analysis, RBAC review, resource exposure |
169
+ | 023 | Zero Trust Checker | Enterprise | Network segmentation, encryption posture, identity verification scoring |
170
+
171
+ ---
172
+
173
+ ## Execution Order
174
+
175
+ Plugins run in strict priority order (lower number = runs first):
176
+
177
+ ```
178
+ 1. Ping Checker (100) → Establish basic reachability
179
+ Host Up Check (110) → Multi-probe reachability confirmation
180
+
181
+ 2. TCP SYN Scanner (140) → Half-open port discovery (if Nmap available)
182
+ Port Scanner (150) → TCP connect + UDP bulk scan
183
+
184
+ 3. SSH Scanner (200) → SSH banner + weak algorithms
185
+ FTP Banner (200) → FTP daemon + anonymous login
186
+
187
+ 4. HTTP Probe (300) → Web server headers + tokens
188
+ SNMP Scanner (300) → sysDescr + device info
189
+ DNS Scanner (300) → version.bind + records
190
+ NetBIOS/SMB (300) → NetBIOS names + SMB2 detection
191
+ SUN RPC (300) → RPC portmapper enumeration
192
+ WS-Discovery (300) → SOAP/WS device discovery
193
+ TLS Scanner (350) → TLS versions + cipher suites
194
+
195
+ 5. Webapp Detector (400) → Technology fingerprinting (Wappalyzer)
196
+ OpenSearch Scanner (400) → Elasticsearch/OpenSearch detection
197
+
198
+ 6. OS Detector (99000) → Fuse all evidence into OS determination
199
+
200
+ 7. Result Concluder (100000) → Merge all results into final conclusion
201
+ ```
202
+
203
+ **Auto-skip rules:** Plugins with unmet `requirements` are automatically skipped. For
204
+ example, SSH Scanner (requires `tcp_open: [22]`) skips if the Port Scanner didn't find
205
+ port 22 open. This avoids wasted probes and reduces scan time.