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.
- package/LICENSE +21 -0
- package/README.md +123 -0
- package/SKILL.md +401 -0
- package/examples/agent-interactions.md +248 -0
- package/package.json +57 -0
- package/references/plugins.md +205 -0
- package/references/schemas.md +366 -0
- package/references/workflows.md +301 -0
|
@@ -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.
|