nsauditor-ai 0.1.0
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/CONTRIBUTING.md +24 -0
- package/LICENSE +21 -0
- package/README.md +584 -0
- package/bin/nsauditor-ai-mcp.mjs +2 -0
- package/bin/nsauditor-ai.mjs +2 -0
- package/cli.mjs +939 -0
- package/config/services.json +304 -0
- package/docs/EULA-nsauditor-ai.md +324 -0
- package/index.mjs +15 -0
- package/mcp_server.mjs +382 -0
- package/package.json +44 -0
- package/plugin_manager.mjs +829 -0
- package/plugins/arp_scanner.mjs +162 -0
- package/plugins/db_scanner.mjs +248 -0
- package/plugins/dns_scanner.mjs +369 -0
- package/plugins/dnssd-scanner.mjs +245 -0
- package/plugins/ftp_banner_check.mjs +247 -0
- package/plugins/host_up_check.mjs +337 -0
- package/plugins/http_probe.mjs +290 -0
- package/plugins/llmnr_scanner.mjs +130 -0
- package/plugins/mdns_scanner.mjs +522 -0
- package/plugins/netbios_scanner.mjs +737 -0
- package/plugins/opensearch_scanner.mjs +276 -0
- package/plugins/os_detector.mjs +436 -0
- package/plugins/ping_checker.mjs +271 -0
- package/plugins/port_scanner.mjs +250 -0
- package/plugins/result_concluder.mjs +274 -0
- package/plugins/snmp_scanner.mjs +278 -0
- package/plugins/ssh_scanner.mjs +421 -0
- package/plugins/sunrpc_scanner.mjs +339 -0
- package/plugins/syn_scanner.mjs +314 -0
- package/plugins/tls_scanner.mjs +225 -0
- package/plugins/upnp_scanner.mjs +441 -0
- package/plugins/webapp_detector.mjs +246 -0
- package/plugins/wsd_scanner.mjs +290 -0
- package/utils/attack_map.mjs +180 -0
- package/utils/capabilities.mjs +53 -0
- package/utils/conclusion_utils.mjs +70 -0
- package/utils/cpe.mjs +74 -0
- package/utils/cve_validator.mjs +64 -0
- package/utils/cvss.mjs +129 -0
- package/utils/delta_reporter.mjs +110 -0
- package/utils/export_csv.mjs +82 -0
- package/utils/finding_queue.mjs +64 -0
- package/utils/finding_schema.mjs +36 -0
- package/utils/host_iterator.mjs +166 -0
- package/utils/license.mjs +29 -0
- package/utils/net_validation.mjs +66 -0
- package/utils/nvd_cache.mjs +77 -0
- package/utils/nvd_client.mjs +130 -0
- package/utils/oui.mjs +107 -0
- package/utils/plugin_discovery.mjs +89 -0
- package/utils/prompts.mjs +143 -0
- package/utils/raw_report_html.mjs +170 -0
- package/utils/redact.mjs +79 -0
- package/utils/report_html.mjs +236 -0
- package/utils/sarif.mjs +225 -0
- package/utils/scan_history.mjs +248 -0
- package/utils/scheduler.mjs +157 -0
- package/utils/webhook.mjs +177 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
{
|
|
2
|
+
"services": [
|
|
3
|
+
{
|
|
4
|
+
"name": "web",
|
|
5
|
+
"port": 80,
|
|
6
|
+
"protocol": "http",
|
|
7
|
+
"description": "HTTP web server"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"name": "api",
|
|
11
|
+
"port": 8080,
|
|
12
|
+
"protocol": "http",
|
|
13
|
+
"description": "HTTP API server"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "database",
|
|
17
|
+
"port": 5432,
|
|
18
|
+
"protocol": "tcp",
|
|
19
|
+
"description": "PostgreSQL database"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "messaging",
|
|
23
|
+
"port": 5672,
|
|
24
|
+
"protocol": "amqp",
|
|
25
|
+
"description": "AMQP messaging service"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "cache",
|
|
29
|
+
"port": 6379,
|
|
30
|
+
"protocol": "tcp",
|
|
31
|
+
"description": "Redis caching service"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "monitoring",
|
|
35
|
+
"port": 9090,
|
|
36
|
+
"protocol": "http",
|
|
37
|
+
"description": "Prometheus monitoring service"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "ftp-data",
|
|
41
|
+
"port": 20,
|
|
42
|
+
"protocol": "tcp",
|
|
43
|
+
"description": "FTP data transfer"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "ftp-control",
|
|
47
|
+
"port": 21,
|
|
48
|
+
"protocol": "tcp",
|
|
49
|
+
"description": "FTP control channel"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "ssh",
|
|
53
|
+
"port": 22,
|
|
54
|
+
"protocol": "tcp",
|
|
55
|
+
"description": "Secure shell access"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "telnet",
|
|
59
|
+
"port": 23,
|
|
60
|
+
"protocol": "tcp",
|
|
61
|
+
"description": "Unencrypted remote access"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "smtp",
|
|
65
|
+
"port": 25,
|
|
66
|
+
"protocol": "tcp",
|
|
67
|
+
"description": "Email delivery"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "dns",
|
|
71
|
+
"port": 53,
|
|
72
|
+
"protocol": "tcp/udp",
|
|
73
|
+
"description": "Domain name resolution"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "dhcp-server",
|
|
77
|
+
"port": 67,
|
|
78
|
+
"protocol": "udp",
|
|
79
|
+
"description": "DHCP server (BOOTP server)"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "dhcp-client",
|
|
83
|
+
"port": 68,
|
|
84
|
+
"protocol": "udp",
|
|
85
|
+
"description": "DHCP client (BOOTP client)"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "tftp",
|
|
89
|
+
"port": 69,
|
|
90
|
+
"protocol": "udp",
|
|
91
|
+
"description": "Trivial file transfer"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "https",
|
|
95
|
+
"port": 443,
|
|
96
|
+
"protocol": "tcp",
|
|
97
|
+
"description": "Secure HTTP web server"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "imap",
|
|
101
|
+
"port": 143,
|
|
102
|
+
"protocol": "tcp",
|
|
103
|
+
"description": "Email retrieval"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "snmp",
|
|
107
|
+
"port": 161,
|
|
108
|
+
"protocol": "udp",
|
|
109
|
+
"description": "Network management"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "ntp",
|
|
113
|
+
"port": 123,
|
|
114
|
+
"protocol": "udp",
|
|
115
|
+
"description": "Time synchronization"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"name": "sunrpc",
|
|
119
|
+
"port": 111,
|
|
120
|
+
"protocol": "tcp/udp",
|
|
121
|
+
"description": "Sun RPC portmapper (rpcbind)"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "mysql",
|
|
125
|
+
"port": 3306,
|
|
126
|
+
"protocol": "tcp",
|
|
127
|
+
"description": "MySQL database"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "rdp",
|
|
131
|
+
"port": 3389,
|
|
132
|
+
"protocol": "tcp",
|
|
133
|
+
"description": "Remote desktop access"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "http-alt1",
|
|
137
|
+
"port": 81,
|
|
138
|
+
"protocol": "tcp",
|
|
139
|
+
"description": "Alternative HTTP server"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "http-alt2",
|
|
143
|
+
"port": 88,
|
|
144
|
+
"protocol": "tcp",
|
|
145
|
+
"description": "Alternative HTTP server"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"name": "pop3",
|
|
149
|
+
"port": 110,
|
|
150
|
+
"protocol": "tcp",
|
|
151
|
+
"description": "Email retrieval (POP3)"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"name": "nntp",
|
|
155
|
+
"port": 119,
|
|
156
|
+
"protocol": "tcp",
|
|
157
|
+
"description": "Usenet news transfer"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "msrpc",
|
|
161
|
+
"port": 135,
|
|
162
|
+
"protocol": "tcp",
|
|
163
|
+
"description": "Microsoft RPC service"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"name": "netbios-ns",
|
|
167
|
+
"port": 137,
|
|
168
|
+
"protocol": "udp",
|
|
169
|
+
"description": "NetBIOS name service"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "netbios-dgm",
|
|
173
|
+
"port": 138,
|
|
174
|
+
"protocol": "udp",
|
|
175
|
+
"description": "NetBIOS datagram service"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"name": "netbios",
|
|
179
|
+
"port": 139,
|
|
180
|
+
"protocol": "tcp",
|
|
181
|
+
"description": "NetBIOS session service"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"name": "ldap",
|
|
185
|
+
"port": 389,
|
|
186
|
+
"protocol": "tcp/udp",
|
|
187
|
+
"description": "Directory access protocol"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"name": "smb",
|
|
191
|
+
"port": 445,
|
|
192
|
+
"protocol": "tcp",
|
|
193
|
+
"description": "Server Message Block"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"name": "smtps",
|
|
197
|
+
"port": 465,
|
|
198
|
+
"protocol": "tcp",
|
|
199
|
+
"description": "Secure email delivery"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"name": "nntps",
|
|
203
|
+
"port": 563,
|
|
204
|
+
"protocol": "tcp",
|
|
205
|
+
"description": "Secure Usenet transfer"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"name": "submission",
|
|
209
|
+
"port": 587,
|
|
210
|
+
"protocol": "tcp",
|
|
211
|
+
"description": "Email submission (STARTTLS)"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"name": "ipp",
|
|
215
|
+
"port": 631,
|
|
216
|
+
"protocol": "tcp",
|
|
217
|
+
"description": "Internet printing protocol"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"name": "http-alt3",
|
|
221
|
+
"port": 688,
|
|
222
|
+
"protocol": "tcp",
|
|
223
|
+
"description": "Alternative HTTP server"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"name": "win-rm",
|
|
227
|
+
"port": 5985,
|
|
228
|
+
"protocol": "tcp/udp",
|
|
229
|
+
"description": "Windows Remote Management"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "http-alt4",
|
|
233
|
+
"port": 8081,
|
|
234
|
+
"protocol": "tcp",
|
|
235
|
+
"description": "Alternative HTTP server"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"name": "http-alt5",
|
|
239
|
+
"port": 8088,
|
|
240
|
+
"protocol": "tcp",
|
|
241
|
+
"description": "Alternative HTTP server"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"name": "https-alt",
|
|
245
|
+
"port": 8443,
|
|
246
|
+
"protocol": "tcp",
|
|
247
|
+
"description": "Alternative secure HTTP server"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"name": "http-alt6",
|
|
251
|
+
"port": 8888,
|
|
252
|
+
"protocol": "tcp",
|
|
253
|
+
"description": "Alternative HTTP server"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"name": "http-alt7",
|
|
257
|
+
"port": 9000,
|
|
258
|
+
"protocol": "tcp",
|
|
259
|
+
"description": "Alternative HTTP server"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"name": "elasticsearch",
|
|
263
|
+
"port": 9200,
|
|
264
|
+
"protocol": "tcp",
|
|
265
|
+
"description": "Elasticsearch search engine"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"name": "imaps",
|
|
269
|
+
"port": 993,
|
|
270
|
+
"protocol": "tcp",
|
|
271
|
+
"description": "Secure email retrieval"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"name": "pop3s",
|
|
275
|
+
"port": 995,
|
|
276
|
+
"protocol": "tcp",
|
|
277
|
+
"description": "Secure email retrieval (POP3)"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"name": "http-alt8",
|
|
281
|
+
"port": 1990,
|
|
282
|
+
"protocol": "tcp",
|
|
283
|
+
"description": "Alternative HTTP server"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"name": "http-alt9",
|
|
287
|
+
"port": 20005,
|
|
288
|
+
"protocol": "tcp",
|
|
289
|
+
"description": "Alternative HTTP server"
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"name": "http-alt10",
|
|
293
|
+
"port": 5000,
|
|
294
|
+
"protocol": "tcp",
|
|
295
|
+
"description": "Alternative HTTP server"
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"name": "http-alt11",
|
|
299
|
+
"port": 5555,
|
|
300
|
+
"protocol": "tcp",
|
|
301
|
+
"description": "Alternative HTTP server"
|
|
302
|
+
}
|
|
303
|
+
]
|
|
304
|
+
}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# NSAUDITOR AI — END USER LICENSE AGREEMENT (EULA)
|
|
2
|
+
|
|
3
|
+
**Nsasoft US LLC**
|
|
4
|
+
**Effective Date: [DATE]**
|
|
5
|
+
**Version: 2.0**
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**IMPORTANT — READ CAREFULLY BEFORE INSTALLING, COPYING, OR USING THIS SOFTWARE.**
|
|
10
|
+
|
|
11
|
+
This End User License Agreement ("Agreement" or "EULA") is a legally binding contract between you (either an individual or a single entity, referred to herein as "You," "Your," or "Licensee") and Nsasoft US LLC, a Nevada limited liability company ("Nsasoft," "We," "Us," or "Company"), governing Your use of the NSAuditor AI software, including any associated media, printed materials, documentation, updates, patches, plugins, and online or electronic content (collectively, the "Software").
|
|
12
|
+
|
|
13
|
+
**BY INSTALLING, COPYING, DOWNLOADING, ACCESSING, OR OTHERWISE USING THE SOFTWARE, YOU ACKNOWLEDGE THAT YOU HAVE READ, UNDERSTOOD, AND AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THESE TERMS, DO NOT INSTALL OR USE THE SOFTWARE. PROMPTLY DELETE ALL COPIES IN YOUR POSSESSION.**
|
|
14
|
+
|
|
15
|
+
**IF YOU ARE ACCEPTING THIS AGREEMENT ON BEHALF OF AN ORGANIZATION, YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND THAT ORGANIZATION TO THESE TERMS.**
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 1. DEFINITIONS
|
|
20
|
+
|
|
21
|
+
**1.1** "Community Edition" or "CE" means the free, MIT-licensed open source version of the Software available at github.com/nsasoft/nsauditor-ai.
|
|
22
|
+
|
|
23
|
+
**1.2** "Pro Edition" means the paid subscription tier of the Software that includes additional proprietary features available via the @nsasoft/nsauditor-ai-ee package.
|
|
24
|
+
|
|
25
|
+
**1.3** "Enterprise Edition" or "EE" means the paid subscription tier of the Software that includes all features of the Pro Edition plus additional enterprise capabilities.
|
|
26
|
+
|
|
27
|
+
**1.4** "License Key" means the digitally signed token (JWT) issued by Nsasoft that activates Pro or Enterprise features.
|
|
28
|
+
|
|
29
|
+
**1.5** "Scan Data" means any and all data, information, results, reports, findings, network information, credentials, passwords, vulnerabilities, configurations, or other output generated by the Software during its operation.
|
|
30
|
+
|
|
31
|
+
**1.6** "Target" means any computer, network, device, system, service, or infrastructure that the Software is directed to scan, probe, test, audit, or analyze.
|
|
32
|
+
|
|
33
|
+
**1.7** "Authorized Target" means a Target that You own, operate, or have explicit written authorization from the owner to scan.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 2. LICENSE GRANT
|
|
38
|
+
|
|
39
|
+
**2.1 Community Edition.** The Community Edition is licensed under the MIT Expat License. Your rights and obligations with respect to the Community Edition are governed by the MIT License included with the Software, subject to the additional terms in Sections 5 through 14 of this Agreement.
|
|
40
|
+
|
|
41
|
+
**2.2 Pro and Enterprise Editions.** Subject to Your compliance with this Agreement and payment of applicable fees, Nsasoft grants You a limited, non-exclusive, non-transferable, revocable license to install and use the Pro or Enterprise Edition of the Software during the term of Your active subscription, solely for Your internal business purposes.
|
|
42
|
+
|
|
43
|
+
**2.3 Scope.** The Software is licensed, not sold. Nsasoft retains all right, title, and interest in and to the Software, including all intellectual property rights therein. This Agreement does not convey any ownership interest in the Software.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 3. LICENSE RESTRICTIONS
|
|
48
|
+
|
|
49
|
+
You shall not:
|
|
50
|
+
|
|
51
|
+
**(a)** Sublicense, sell, resell, lease, rent, loan, distribute, or otherwise transfer the Pro or Enterprise Edition or any License Key to any third party;
|
|
52
|
+
|
|
53
|
+
**(b)** Modify, adapt, translate, reverse engineer, decompile, disassemble, or create derivative works of the Pro or Enterprise Edition, except to the extent expressly permitted by applicable law notwithstanding this limitation;
|
|
54
|
+
|
|
55
|
+
**(c)** Remove, alter, obscure, or tamper with any proprietary notices, labels, trademarks, license keys, or license enforcement mechanisms in the Software;
|
|
56
|
+
|
|
57
|
+
**(d)** Use the Software to provide scanning, auditing, or security assessment services to third parties on a managed-service, SaaS, or bureau-service basis without a separate written agreement with Nsasoft;
|
|
58
|
+
|
|
59
|
+
**(e)** Share, publish, or post any License Key in any public forum, repository, or electronic medium;
|
|
60
|
+
|
|
61
|
+
**(f)** Circumvent, disable, or interfere with any license validation, capability gating, or feature restriction mechanism in the Software;
|
|
62
|
+
|
|
63
|
+
**(g)** Use the Software in any manner that violates any applicable local, state, national, or international law or regulation (see Section 5).
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 4. SUBSCRIPTION TERMS
|
|
68
|
+
|
|
69
|
+
**4.1 Fees.** Pro and Enterprise Edition features require an active paid subscription. Fees are as stated on www.nsauditor.com/ai/pricing at the time of purchase.
|
|
70
|
+
|
|
71
|
+
**4.2 Renewal.** Subscriptions renew automatically unless canceled before the renewal date. You may cancel at any time through Your account portal.
|
|
72
|
+
|
|
73
|
+
**4.3 Expiration.** Upon expiration or termination of Your subscription, the Pro or Enterprise features will deactivate. The Community Edition features will continue to function without interruption.
|
|
74
|
+
|
|
75
|
+
**4.4 Refunds.** Subscription fees are non-refundable except as required by applicable law or as otherwise stated in the Nsasoft Terms of Service.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 5. AUTHORIZED USE AND LEGAL COMPLIANCE
|
|
80
|
+
|
|
81
|
+
**THIS SECTION IS CRITICAL. READ IT CAREFULLY.**
|
|
82
|
+
|
|
83
|
+
**5.1 Authorization Requirement.** You shall use the Software ONLY against Authorized Targets. You represent and warrant that, for every Target scanned, probed, tested, or analyzed using the Software, You either:
|
|
84
|
+
|
|
85
|
+
**(a)** Own the Target; or
|
|
86
|
+
|
|
87
|
+
**(b)** Have obtained explicit, documented, written authorization from the owner, operator, or authorized administrator of the Target to perform the specific type of scanning, testing, or auditing You intend to conduct.
|
|
88
|
+
|
|
89
|
+
**5.2 Legal Compliance.** You are solely responsible for ensuring that Your use of the Software complies with all applicable laws, regulations, and industry standards, including but not limited to:
|
|
90
|
+
|
|
91
|
+
- The Computer Fraud and Abuse Act (CFAA), 18 U.S.C. § 1030
|
|
92
|
+
- The Electronic Communications Privacy Act (ECPA)
|
|
93
|
+
- The General Data Protection Regulation (GDPR), where applicable
|
|
94
|
+
- The Health Insurance Portability and Accountability Act (HIPAA), where applicable
|
|
95
|
+
- The Payment Card Industry Data Security Standard (PCI DSS), where applicable
|
|
96
|
+
- Any applicable state, provincial, or national computer crime, privacy, or data protection laws
|
|
97
|
+
- Any applicable terms of service of the Target systems, networks, or services
|
|
98
|
+
|
|
99
|
+
**5.3 Prohibited Uses.** You shall NOT use the Software to:
|
|
100
|
+
|
|
101
|
+
**(a)** Scan, probe, test, or attack any Target without explicit authorization from the Target's owner or authorized operator;
|
|
102
|
+
|
|
103
|
+
**(b)** Conduct any form of unauthorized access, intrusion, penetration, or exploitation of any computer system, network, or service;
|
|
104
|
+
|
|
105
|
+
**(c)** Harvest, collect, store, or exfiltrate any personal data, credentials, passwords, private keys, or other sensitive information from any Target without the Target owner's explicit consent;
|
|
106
|
+
|
|
107
|
+
**(d)** Conduct denial-of-service attacks, network flooding, or any activity intended to degrade, disrupt, or destroy the availability of any Target;
|
|
108
|
+
|
|
109
|
+
**(e)** Violate the privacy, confidentiality, or security of any individual, organization, or system;
|
|
110
|
+
|
|
111
|
+
**(f)** Develop, create, or assist in the creation of malware, exploits, attack tools, or any software designed to facilitate unauthorized access;
|
|
112
|
+
|
|
113
|
+
**(g)** Engage in any activity that constitutes or facilitates corporate espionage, competitive intelligence gathering through unauthorized means, or industrial sabotage;
|
|
114
|
+
|
|
115
|
+
**(h)** Violate any law, regulation, contractual obligation, or third-party right.
|
|
116
|
+
|
|
117
|
+
**5.4 Your Responsibility.** YOU ACKNOWLEDGE AND AGREE THAT THE SOFTWARE IS A POWERFUL NETWORK SECURITY AUDITING TOOL THAT CAN DISCOVER SENSITIVE INFORMATION INCLUDING BUT NOT LIMITED TO OPEN PORTS, RUNNING SERVICES, SOFTWARE VERSIONS, SYSTEM CONFIGURATIONS, EXPOSED CREDENTIALS, PRIVATE DATA, AND NETWORK VULNERABILITIES. THE DISCOVERY OF SUCH INFORMATION IS THE INTENDED PURPOSE OF THE SOFTWARE WHEN USED ON AUTHORIZED TARGETS. YOU ARE SOLELY AND EXCLUSIVELY RESPONSIBLE FOR:
|
|
118
|
+
|
|
119
|
+
**(a)** Determining whether Your intended use is lawful in Your jurisdiction;
|
|
120
|
+
|
|
121
|
+
**(b)** Obtaining all necessary authorizations before scanning any Target;
|
|
122
|
+
|
|
123
|
+
**(c)** Safeguarding, protecting, and properly handling all Scan Data generated by the Software;
|
|
124
|
+
|
|
125
|
+
**(d)** Complying with all data protection, privacy, and security regulations applicable to the Scan Data;
|
|
126
|
+
|
|
127
|
+
**(e)** Any and all consequences arising from Your use of the Software, including any Scan Data discovered, generated, stored, or disclosed.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 6. ZERO DATA EXFILTRATION — DATA OWNERSHIP AND PROCESSING
|
|
132
|
+
|
|
133
|
+
**6.1 No Data Collection.** The Software operates entirely within Your infrastructure. Nsasoft does NOT collect, receive, transmit, access, process, store, or have any access to any Scan Data generated by the Software. Nsasoft has no technical capability to access Your Scan Data.
|
|
134
|
+
|
|
135
|
+
**6.2 Not a Data Processor.** Nsasoft is NOT a data processor, data controller, sub-processor, or business associate under any data protection regulation, including GDPR, HIPAA, CCPA, or any other privacy law, with respect to any Scan Data. No Data Processing Agreement (DPA) or Business Associate Agreement (BAA) is required or offered in connection with this Software.
|
|
136
|
+
|
|
137
|
+
**6.3 Data Ownership.** All Scan Data is and remains Your sole property. You are solely responsible for the collection, storage, protection, retention, deletion, and lawful processing of all Scan Data.
|
|
138
|
+
|
|
139
|
+
**6.4 AI Integration.** If You configure the Software to use external AI services (such as OpenAI, Anthropic Claude, or other providers), You are responsible for providing Your own API keys, reviewing the AI provider's terms of service and privacy policies, and understanding that Scan Data (after redaction) may be transmitted to the AI provider. Nsasoft has no relationship with, control over, or responsibility for any third-party AI provider. Nsasoft does not receive, process, or store any data transmitted to or received from AI providers.
|
|
140
|
+
|
|
141
|
+
**6.5 License Validation.** The only data Nsasoft processes is Your License Key and associated subscription information (email address, payment details via Stripe). License validation is performed offline using cryptographic signature verification. No Scan Data, network information, or telemetry of any kind is transmitted to Nsasoft.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## 7. DISCLAIMER OF WARRANTIES
|
|
146
|
+
|
|
147
|
+
**THE SOFTWARE IS PROVIDED "AS IS" AND "AS AVAILABLE," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, NSASOFT AND ITS SUPPLIERS, LICENSORS, AND AFFILIATES EXPRESSLY DISCLAIM ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO:**
|
|
148
|
+
|
|
149
|
+
**(a)** IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT;
|
|
150
|
+
|
|
151
|
+
**(b)** ANY WARRANTY THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR EXPECTATIONS;
|
|
152
|
+
|
|
153
|
+
**(c)** ANY WARRANTY THAT THE SOFTWARE WILL BE UNINTERRUPTED, TIMELY, SECURE, ACCURATE, COMPLETE, OR ERROR-FREE;
|
|
154
|
+
|
|
155
|
+
**(d)** ANY WARRANTY THAT THE SOFTWARE WILL DETECT ALL VULNERABILITIES, SECURITY FLAWS, MISCONFIGURATIONS, OR THREATS IN ANY TARGET;
|
|
156
|
+
|
|
157
|
+
**(e)** ANY WARRANTY THAT THE SCAN DATA OR AI-GENERATED REPORTS ARE ACCURATE, COMPLETE, CURRENT, OR RELIABLE;
|
|
158
|
+
|
|
159
|
+
**(f)** ANY WARRANTY REGARDING THE RESULTS OBTAINED FROM THE USE OF THE SOFTWARE;
|
|
160
|
+
|
|
161
|
+
**(g)** ANY WARRANTY THAT DEFECTS WILL BE CORRECTED.
|
|
162
|
+
|
|
163
|
+
**YOU ACKNOWLEDGE THAT NETWORK SECURITY AUDITING IS INHERENTLY COMPLEX AND THAT NO SCANNING TOOL, INCLUDING THE SOFTWARE, CAN GUARANTEE DETECTION OF ALL VULNERABILITIES OR PROVIDE COMPLETE SECURITY ASSURANCE. THE SOFTWARE IS A TOOL TO ASSIST QUALIFIED SECURITY PROFESSIONALS AND IS NOT A SUBSTITUTE FOR PROFESSIONAL JUDGMENT, MANUAL TESTING, OR COMPREHENSIVE SECURITY ASSESSMENTS.**
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 8. LIMITATION OF LIABILITY
|
|
168
|
+
|
|
169
|
+
**THIS SECTION LIMITS NSASOFT'S LIABILITY TO THE MAXIMUM EXTENT PERMITTED BY LAW. READ IT CAREFULLY.**
|
|
170
|
+
|
|
171
|
+
**8.1 Exclusion of Consequential Damages.** TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL NSASOFT, ITS OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, SUPPLIERS, LICENSORS, OR AFFILIATES BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES WHATSOEVER, INCLUDING BUT NOT LIMITED TO:
|
|
172
|
+
|
|
173
|
+
**(a)** DAMAGES FOR LOSS OF PROFITS, REVENUE, BUSINESS, GOODWILL, OR ANTICIPATED SAVINGS;
|
|
174
|
+
|
|
175
|
+
**(b)** DAMAGES FOR LOSS OF, DAMAGE TO, OR CORRUPTION OF DATA (INCLUDING SCAN DATA);
|
|
176
|
+
|
|
177
|
+
**(c)** DAMAGES FOR BUSINESS INTERRUPTION, SYSTEM DOWNTIME, OR NETWORK DISRUPTION;
|
|
178
|
+
|
|
179
|
+
**(d)** DAMAGES FOR LOSS OF PRIVACY, EXPOSURE OF CONFIDENTIAL INFORMATION, OR DATA BREACHES;
|
|
180
|
+
|
|
181
|
+
**(e)** DAMAGES FOR PERSONAL INJURY (TO THE EXTENT PERMITTED BY LAW);
|
|
182
|
+
|
|
183
|
+
**(f)** DAMAGES FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD FAITH OR OF REASONABLE CARE;
|
|
184
|
+
|
|
185
|
+
**(g)** DAMAGES FOR NEGLIGENCE;
|
|
186
|
+
|
|
187
|
+
**(h)** DAMAGES ARISING FROM OR RELATED TO ANY UNAUTHORIZED ACCESS, USE, OR ALTERATION OF YOUR SCAN DATA OR TRANSMISSIONS;
|
|
188
|
+
|
|
189
|
+
**(i)** ANY OTHER PECUNIARY OR NON-PECUNIARY LOSS WHATSOEVER;
|
|
190
|
+
|
|
191
|
+
ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OF OR INABILITY TO USE THE SOFTWARE, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS AGREEMENT, REGARDLESS OF THE LEGAL THEORY (WHETHER CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY, WARRANTY, OR OTHERWISE), EVEN IF NSASOFT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
192
|
+
|
|
193
|
+
**8.2 Maximum Aggregate Liability.** NOTWITHSTANDING ANY DAMAGES THAT YOU MIGHT INCUR FOR ANY REASON WHATSOEVER (INCLUDING, WITHOUT LIMITATION, ALL DAMAGES REFERENCED ABOVE AND ALL DIRECT OR GENERAL DAMAGES IN CONTRACT, TORT, OR OTHERWISE), THE ENTIRE AGGREGATE LIABILITY OF NSASOFT AND ANY OF ITS SUPPLIERS, LICENSORS, AND AFFILIATES UNDER ANY PROVISION OF THIS AGREEMENT, AND YOUR EXCLUSIVE REMEDY FOR ALL OF THE FOREGOING, SHALL BE LIMITED TO THE GREATER OF:
|
|
194
|
+
|
|
195
|
+
**(a)** THE AMOUNTS ACTUALLY PAID BY YOU FOR THE SOFTWARE OR SUBSCRIPTION IN THE TWELVE (12) MONTH PERIOD IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO THE CLAIM; OR
|
|
196
|
+
|
|
197
|
+
**(b)** FIVE U.S. DOLLARS (US $5.00).
|
|
198
|
+
|
|
199
|
+
**8.3 Application.** THE FOREGOING LIMITATIONS, EXCLUSIONS, AND DISCLAIMERS SHALL APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY FAILS OF ITS ESSENTIAL PURPOSE, AND REGARDLESS OF WHETHER NSASOFT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS APPLY TO ALL CLAIMS RELATED TO THIS AGREEMENT, THE SOFTWARE, AND ANY RELATED SERVICES.
|
|
200
|
+
|
|
201
|
+
**8.4 Essential Basis.** YOU ACKNOWLEDGE THAT NSASOFT HAS SET ITS PRICES AND ENTERED INTO THIS AGREEMENT IN RELIANCE UPON THE LIMITATIONS OF LIABILITY AND THE DISCLAIMERS OF WARRANTIES AND DAMAGES SET FORTH HEREIN, AND THAT THE SAME FORM AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE PARTIES.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 9. INDEMNIFICATION
|
|
206
|
+
|
|
207
|
+
**9.1 Your Indemnification Obligation.** YOU SHALL INDEMNIFY, DEFEND, AND HOLD HARMLESS NSASOFT, ITS OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, AFFILIATES, SUCCESSORS, AND ASSIGNS FROM AND AGAINST ANY AND ALL CLAIMS, DEMANDS, ACTIONS, SUITS, PROCEEDINGS, LOSSES, DAMAGES, LIABILITIES, COSTS, AND EXPENSES (INCLUDING REASONABLE ATTORNEYS' FEES AND COURT COSTS) ARISING OUT OF OR RELATED TO:
|
|
208
|
+
|
|
209
|
+
**(a)** Your use of the Software, including any Scan Data generated, discovered, stored, disclosed, or processed;
|
|
210
|
+
|
|
211
|
+
**(b)** Your breach of any term of this Agreement, including the Authorized Use requirements in Section 5;
|
|
212
|
+
|
|
213
|
+
**(c)** Your violation of any applicable law, regulation, or third-party right, including but not limited to unauthorized scanning, unauthorized access, privacy violations, or data protection violations;
|
|
214
|
+
|
|
215
|
+
**(d)** Any claim by any third party that Your use of the Software infringed their rights, damaged their systems, disclosed their data, or caused them harm of any kind;
|
|
216
|
+
|
|
217
|
+
**(e)** Any claim arising from Scan Data that You shared, disclosed, transmitted, or failed to adequately protect;
|
|
218
|
+
|
|
219
|
+
**(f)** Any claim arising from Your use of AI integration features, including any data transmitted to third-party AI providers;
|
|
220
|
+
|
|
221
|
+
**(g)** Your negligent or wrongful acts or omissions in connection with the Software.
|
|
222
|
+
|
|
223
|
+
**9.2 Survival.** This indemnification obligation shall survive the termination or expiration of this Agreement.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 10. EXPORT COMPLIANCE
|
|
228
|
+
|
|
229
|
+
You shall comply with all applicable export and import laws, regulations, and orders, including the U.S. Export Administration Regulations, U.S. sanctions laws administered by the Office of Foreign Assets Control (OFAC), and all applicable export restrictions of Your jurisdiction. You represent and warrant that You are not located in, under the control of, or a national or resident of any country to which the United States has embargoed goods or services, and that You are not listed on any U.S. Government list of prohibited or restricted parties.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 11. TERM AND TERMINATION
|
|
234
|
+
|
|
235
|
+
**11.1 Term.** This Agreement is effective upon Your first use of the Software and continues until terminated.
|
|
236
|
+
|
|
237
|
+
**11.2 Termination by You.** You may terminate this Agreement at any time by ceasing all use of the Software and deleting all copies in Your possession.
|
|
238
|
+
|
|
239
|
+
**11.3 Termination by Nsasoft.** Nsasoft may terminate this Agreement immediately and without notice if You breach any term of this Agreement, including the Authorized Use requirements in Section 5. Upon termination, You must immediately cease all use of the Software and delete all copies.
|
|
240
|
+
|
|
241
|
+
**11.4 Effect of Termination.** Sections 5, 6, 7, 8, 9, 10, 12, 13, and 14 shall survive any termination or expiration of this Agreement.
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 12. ACKNOWLEDGMENTS
|
|
246
|
+
|
|
247
|
+
By using the Software, You acknowledge and agree that:
|
|
248
|
+
|
|
249
|
+
**12.1** The Software is designed for use by qualified IT and security professionals for legitimate network security auditing, vulnerability assessment, and compliance testing purposes;
|
|
250
|
+
|
|
251
|
+
**12.2** The Software can discover sensitive information, and You bear full responsibility for handling such information in compliance with all applicable laws;
|
|
252
|
+
|
|
253
|
+
**12.3** Unauthorized scanning of computer systems and networks is illegal in most jurisdictions and may result in civil and criminal penalties;
|
|
254
|
+
|
|
255
|
+
**12.4** Nsasoft has no control over, and assumes no responsibility for, how You use the Software or what You do with Scan Data;
|
|
256
|
+
|
|
257
|
+
**12.5** Nsasoft has no ability to monitor, access, or review Your use of the Software or any Scan Data;
|
|
258
|
+
|
|
259
|
+
**12.6** You have been advised to consult with legal counsel regarding the lawfulness of Your intended use of the Software in Your jurisdiction;
|
|
260
|
+
|
|
261
|
+
**12.7** The AI-generated reports and analysis are produced by third-party AI models and may contain inaccuracies, errors, or hallucinations — they are advisory in nature and do not constitute professional security advice;
|
|
262
|
+
|
|
263
|
+
**12.8** The absence of reported findings does not mean the absence of vulnerabilities.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## 13. GOVERNING LAW AND DISPUTE RESOLUTION
|
|
268
|
+
|
|
269
|
+
**13.1 Governing Law.** This Agreement shall be governed by and construed in accordance with the laws of the State of Nevada, United States of America, without regard to its conflict of law provisions.
|
|
270
|
+
|
|
271
|
+
**13.2 Jurisdiction.** Any legal action or proceeding arising under this Agreement shall be brought exclusively in the state or federal courts located in Clark County, Nevada, and the parties hereby consent to personal jurisdiction and venue therein.
|
|
272
|
+
|
|
273
|
+
**13.3 Arbitration.** Any dispute, controversy, or claim arising out of or relating to this Agreement, or the breach, termination, or invalidity thereof, shall be settled by binding arbitration administered by the American Arbitration Association ("AAA") under its Commercial Arbitration Rules. The arbitration shall take place in Las Vegas, Nevada. The arbitrator's decision shall be final and binding. Judgment upon the award rendered by the arbitrator may be entered in any court having jurisdiction thereof.
|
|
274
|
+
|
|
275
|
+
**13.4 Class Action Waiver.** YOU AND NSASOFT AGREE THAT EACH MAY BRING CLAIMS AGAINST THE OTHER ONLY IN YOUR OR ITS INDIVIDUAL CAPACITY AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS OR REPRESENTATIVE ACTION. THE ARBITRATOR MAY NOT CONSOLIDATE MORE THAN ONE PERSON'S CLAIMS AND MAY NOT OTHERWISE PRESIDE OVER ANY FORM OF A REPRESENTATIVE OR CLASS PROCEEDING.
|
|
276
|
+
|
|
277
|
+
**13.5 Injunctive Relief.** Notwithstanding the foregoing, Nsasoft shall be entitled to seek injunctive or other equitable relief in any court of competent jurisdiction to prevent the actual or threatened infringement, misappropriation, or violation of Nsasoft's intellectual property rights or confidential information.
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## 14. GENERAL PROVISIONS
|
|
282
|
+
|
|
283
|
+
**14.1 Entire Agreement.** This Agreement constitutes the entire agreement between You and Nsasoft with respect to the Software and supersedes all prior or contemporaneous oral or written communications, proposals, and representations.
|
|
284
|
+
|
|
285
|
+
**14.2 Severability.** If any provision of this Agreement is held to be invalid or unenforceable, the remaining provisions shall continue in full force and effect.
|
|
286
|
+
|
|
287
|
+
**14.3 Waiver.** No failure or delay by Nsasoft in exercising any right under this Agreement shall constitute a waiver of that right.
|
|
288
|
+
|
|
289
|
+
**14.4 Assignment.** You may not assign or transfer this Agreement or any rights hereunder without Nsasoft's prior written consent. Nsasoft may assign this Agreement without Your consent in connection with a merger, acquisition, corporate reorganization, or sale of all or substantially all of its assets.
|
|
290
|
+
|
|
291
|
+
**14.5 Notices.** Any notices required or permitted under this Agreement shall be in writing and shall be sent to legal@nsasoft.us for Nsasoft, and to the email address associated with Your account for You.
|
|
292
|
+
|
|
293
|
+
**14.6 Force Majeure.** Nsasoft shall not be liable for any failure or delay in performance due to circumstances beyond its reasonable control, including acts of God, war, terrorism, pandemic, natural disaster, labor disputes, government actions, or failures of third-party services.
|
|
294
|
+
|
|
295
|
+
**14.7 Third-Party Beneficiaries.** This Agreement does not create any third-party beneficiary rights.
|
|
296
|
+
|
|
297
|
+
**14.8 Headings.** Section headings are for convenience only and shall not affect the interpretation of this Agreement.
|
|
298
|
+
|
|
299
|
+
**14.9 Language.** This Agreement is written in English. In the event of any conflict between the English version and any translation, the English version shall prevail.
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## 15. CONTACT INFORMATION
|
|
304
|
+
|
|
305
|
+
Nsasoft US LLC
|
|
306
|
+
732 S 6TH ST, STE R
|
|
307
|
+
LAS VEGAS, NV 89101
|
|
308
|
+
USA
|
|
309
|
+
|
|
310
|
+
Legal inquiries: legal@nsasoft.us
|
|
311
|
+
General support: support@nsasoft.us
|
|
312
|
+
Website: https://www.nsauditor.com/ai/
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
**BY INSTALLING, COPYING, OR USING THE SOFTWARE, YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.**
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
*This document is a draft template for review purposes. Nsasoft US LLC should have this Agreement reviewed by a licensed attorney before publication. This does not constitute legal advice.*
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
**END OF LICENSE AGREEMENT**
|
package/index.mjs
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// index.mjs — shim (CLI-first)
|
|
2
|
+
// This file exists only for programmatic imports. Prefer the CLI: `node cli.mjs ...`
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
|
|
6
|
+
export { default as PluginManager } from './plugin_manager.mjs';
|
|
7
|
+
export { buildHtmlReport } from './utils/report_html.mjs';
|
|
8
|
+
|
|
9
|
+
// If run directly, forward to CLI with a helpful message.
|
|
10
|
+
const isDirect = (fileURLToPath(import.meta.url) === path.resolve(process.argv[1] || ''));
|
|
11
|
+
if (isDirect) {
|
|
12
|
+
console.error('[nsauditor] index.mjs is not a runtime entrypoint. Use the CLI instead:');
|
|
13
|
+
console.error(' node cli.mjs scan --host 192.168.1.1 --plugins all');
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|