swarmhack-cli 2.3.0 → 2.3.1

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/README.md CHANGED
@@ -2,7 +2,33 @@
2
2
 
3
3
  Neural swarm-based penetration testing framework.
4
4
 
5
- ## What's New in v2.1.0
5
+ ## What's New in v2.5.0
6
+
7
+ **v2.5.0 -- Multi-Target Campaign + Network Intelligence + Host Recon**
8
+
9
+ - **Multi-target campaigns** -- `--target-list` accepts comma-separated IPs, URLs, hostnames, and CIDR ranges. Scan entire networks in one command.
10
+ - **CIDR expansion** -- `--target-list 10.0.0.0/24` expands to 254 hosts automatically.
11
+ - **Campaign intelligence graph** -- Credentials found on Host A are automatically seeded to Host B (petgraph + DashMap property graph).
12
+ - **Unified OCSF report** -- Single `mission-*.json` with all targets' findings combined. Per-target reports moved to `reports/per-target/`.
13
+ - **Network attack path visualization** -- D3.js HTML showing all hosts as topology with device types, findings grouped per host, detail panel on click, intel flow bottom panel.
14
+ - **Host recon** -- Reverse DNS + HTTP banner + MAC vendor lookup. Device type classification: Router, Printer, NAS, IP Camera, Web Server.
15
+ - **Graceful unreachable skip** -- Offline hosts skipped with one-line message instead of verbose error. Prior scan data included in campaign report.
16
+ - **Default credential fallback** -- SMB/WinRM agents try vagrant:vagrant and other defaults when campaign creds fail on non-domain hosts.
17
+ - **Network agent findings fix** -- AD agent findings now included in OCSF report and CLI display (was silently dropped).
18
+ - **Quiet campaign mode** -- Per-target "MISSION COMPLETE" banners suppressed; single campaign summary shown.
19
+ - **49 regression tests** (was 37) across 15 categories.
20
+ - **GOAD assessment** -- Comprehensive mapping of 38 GOAD attack paths vs SwarmHack capabilities.
21
+ - **46 agents total** (23 web + 23 AD/network).
22
+
23
+ **v2.4.0 -- AD Data Quality + Mandatory Auth + External Tool Documentation**
24
+
25
+ - Mandatory Prancer Portal authentication (offline mode removed)
26
+ - AD finding categorization (CWE-307/521/522 → "authentication")
27
+ - Dynamic resource type from URL scheme
28
+ - Compliance mappings for AD CWEs
29
+ - LDIF base64 parsing, password policy guard, trust direction decoding
30
+ - Crown jewel dedup across merged findings
31
+ - External tool documentation (38 binaries)
6
32
 
7
33
  **v2.1.0 -- Quality, OCSF Compliance & Service-Driven Discovery Foundation**
8
34
 
@@ -50,13 +76,59 @@ SwarmHack includes a default configuration file (`config/swarmhack.yaml`) that i
50
76
 
51
77
  ## CLI Usage
52
78
 
79
+ ### Single Target
80
+
53
81
  ```bash
54
- # Run SQL injection scan (local mode - default)
55
- swarmhack spawn --agents sqli \
82
+ # Full kill chain scan
83
+ swarmhack spawn \
84
+ --target "http://example.com" \
85
+ --customer "your-customer" \
86
+ --token "your-token"
87
+
88
+ # Specific agents only
89
+ swarmhack spawn --agents sqli,xss,csrf \
56
90
  --target "http://example.com" \
57
91
  --customer "your-customer" \
58
92
  --token "your-token"
59
93
 
94
+ # AD domain controller scan
95
+ swarmhack spawn \
96
+ --target 192.168.56.10 \
97
+ --customer "your-customer" \
98
+ --token "your-token"
99
+ ```
100
+
101
+ ### Multi-Target Campaign (NEW in v2.5.0)
102
+
103
+ ```bash
104
+ # Scan multiple targets — credentials from Host A are shared with Host B
105
+ swarmhack spawn \
106
+ --target-list "192.168.56.10,192.168.56.11,10.0.0.1" \
107
+ --customer "your-customer" \
108
+ --token "your-token"
109
+
110
+ # Scan entire subnet (CIDR)
111
+ swarmhack spawn \
112
+ --target-list "10.0.0.0/24" \
113
+ --customer "your-customer" \
114
+ --token "your-token"
115
+
116
+ # Mixed targets: IPs + URLs + hostnames + CIDR
117
+ swarmhack spawn \
118
+ --target-list "192.168.56.10,https://app.corp.local,10.0.0.0/24" \
119
+ --customer "your-customer" \
120
+ --token "your-token"
121
+ ```
122
+
123
+ Campaign output:
124
+ - Unified `mission-*.json` with all findings across all targets
125
+ - `mission-*-attack-path.html` showing network topology with all hosts
126
+ - Per-target reports in `reports/per-target/`
127
+ - Unreachable hosts gracefully skipped
128
+
129
+ ### Docker Mode
130
+
131
+ ```bash
60
132
  # Run in Docker mode (isolated execution)
61
133
  swarmhack spawn --agents sqli \
62
134
  --target "http://example.com" \
@@ -160,7 +232,7 @@ If npm installation fails, use Docker:
160
232
  docker run --rm \
161
233
  -v /var/run/docker.sock:/var/run/docker.sock \
162
234
  -v $(pwd)/reports:/app/reports \
163
- prancer/swarmhack:2.1.0 \
235
+ prancer/swarmhack:2.5.0 \
164
236
  spawn --agents sqli --target "http://example.com" \
165
237
  --customer "your-customer" --token "your-token"
166
238
  ```
@@ -220,7 +292,7 @@ swarmhack spawn \
220
292
  - The `--header` flag is repeatable -- add as many custom headers as needed
221
293
  - All agents (SQLi, XSS, CSRF, etc.) automatically include your custom headers in every request
222
294
 
223
- ## Available Agents (35)
295
+ ## Available Agents (46)
224
296
 
225
297
  | Agent | CWE | Description |
226
298
  |-------|-----|-------------|
@@ -252,26 +324,69 @@ swarmhack spawn \
252
324
  | `nmap_scanner` | — | Port discovery, service detection, NSE vulnerability scanning |
253
325
  | `ftp_probe` | CWE-287 | FTP anonymous login, default credentials, banner analysis |
254
326
  | `ssh_probe` | CWE-327 | SSH banner analysis, weak version CVE detection |
327
+ | `ldap_enum` | CWE-284 | AD enumeration (10 categories: users, SPNs, delegation, trusts, policy) |
328
+ | `ldap_spray` | CWE-307 | LDAP password spray with lockout-safe threshold detection |
329
+ | `kerberos_attack` | CWE-522 | AS-REP roasting + Kerberoasting (TGS hash extraction) |
330
+ | `smb_enum` | CWE-200 | SMB null session, signing check, GPP password scraping |
331
+ | `mssql_probe` | CWE-798 | MSSQL default credentials, linked servers, xp_cmdshell |
332
+ | `dcsync` | CWE-522 | DCSync credential extraction via secretsdump |
333
+ | `winrm_probe` | CWE-287 | WinRM lateral movement via evil-winrm/crackmapexec |
334
+ | `ntlm_capture` | CWE-522 | NTLM hash capture via Responder (opt-in) |
335
+ | `acl_abuse` | CWE-284 | BloodHound-style ACL path discovery and exploitation |
336
+ | `hash_crack` | CWE-521 | Offline hash cracking with feedback loop |
337
+ | `pth_agent` | CWE-522 | Pass-the-Hash lateral movement via impacket |
338
+ | `cred_dump` | CWE-522 | SAM/LSA credential dumping |
339
+ | `adcs_exploit` | CWE-295 | ADCS ESC1-ESC15 certificate abuse via certipy |
340
+ | `delegation_exploit` | CWE-284 | Constrained/RBCD/unconstrained Kerberos delegation |
341
+ | `laps_reader` | CWE-522 | LAPS local admin password extraction |
342
+ | `shadow_creds` | CWE-284 | Shadow credentials via pywhisker/certipy |
343
+ | `gpo_abuse` | CWE-284 | GPO modification for scheduled task deployment |
344
+ | `trust_exploit` | CWE-200 | Cross-forest SID History exploitation |
345
+ | `gmsa_reader` | CWE-522 | gMSA service account password reading |
346
+ | `auth_coercion` | CWE-287 | PrinterBug/PetitPotam authentication coercion |
255
347
 
256
348
  ## OCSF Reports
257
349
 
258
- SwarmHack generates reports in [OCSF 1.1.0](https://schema.ocsf.io/) format, the industry standard for security findings:
350
+ SwarmHack generates reports in [OCSF 1.1.0](https://schema.ocsf.io/) format, the industry standard for security findings.
259
351
 
352
+ **Single target:**
260
353
  ```json
261
354
  {
262
355
  "scan_info": {
263
356
  "scanner": { "name": "SwarmHack", "vendor": "Prancer" },
264
357
  "customer": "your-customer",
265
358
  "target": "http://example.com",
266
- "duration_formatted": "3m 11s",
267
- "summary": { "findings_count": 5, "crown_jewels_count": 12 }
359
+ "summary": { "findings_count": 9, "crown_jewels_count": 23 }
268
360
  },
269
- "class_name": "Vulnerability Finding",
270
- "class_uid": 6001,
361
+ "compliance_summary": { "frameworks_covered": ["PCI-DSS 4.0", "OWASP Top 10", "NIST CSF 2.0", ...] },
271
362
  "findings": [...]
272
363
  }
273
364
  ```
274
365
 
366
+ **Multi-target campaign:**
367
+ ```json
368
+ {
369
+ "scan_info": {
370
+ "mission_type": "multi-target",
371
+ "targets_scanned": 4,
372
+ "targets_total": 5,
373
+ "summary": { "findings_count": 20, "crown_jewels_count": 28 },
374
+ "per_target": [
375
+ { "target": "http://192.168.56.10/", "findings_count": 6, "crown_jewels_count": 4 },
376
+ { "target": "https://demo.testfire.net/", "findings_count": 7, "crown_jewels_count": 22 }
377
+ ]
378
+ },
379
+ "findings": [/* all findings from all targets combined */]
380
+ }
381
+ ```
382
+
383
+ Each finding includes:
384
+ - Severity + risk score + confidence
385
+ - CWE classification + MITRE ATT&CK mapping
386
+ - Compliance mappings (PCI-DSS, OWASP, NIST, SOC2, HIPAA, ISO 27001, DORA, NIS2)
387
+ - Crown jewels (extracted credentials, hashes, sensitive data)
388
+ - Device type identification (Router, Printer, NAS, etc.)
389
+
275
390
  ## Authentication
276
391
 
277
392
  SwarmHack requires Prancer Portal authentication:
@@ -293,6 +408,43 @@ Get your token from [Prancer Portal](https://portal.prancer.io) → Settings →
293
408
 
294
409
  ## Changelog
295
410
 
411
+ ### v2.5.0
412
+ - **Multi-target campaigns**: `--target-list` with comma-separated IPs, URLs, hostnames, CIDR ranges
413
+ - **CIDR expansion**: `10.0.0.0/24` → 254 hosts, up to /16 supported
414
+ - **Campaign intelligence graph**: credentials from Host A seed Host B (petgraph + DashMap)
415
+ - **Unified OCSF report**: single mission-*.json with all targets combined
416
+ - **Network attack path visualization**: D3.js HTML with host topology, device types, detail panel, intel flow
417
+ - **Host recon**: reverse DNS + HTTP banner + MAC vendor → device type classification
418
+ - **Graceful unreachable skip**: offline hosts skipped cleanly, prior scan data included
419
+ - **Default credential fallback**: SMB/WinRM try vagrant:vagrant when null session/campaign creds fail
420
+ - **Network agent findings fix**: AD findings now in report + CLI display (was silently dropped)
421
+ - **Quiet campaign mode**: per-target banners suppressed, single summary shown
422
+ - 49 regression tests across 15 categories
423
+ - GOAD lab assessment: 38 attack paths mapped vs SwarmHack capabilities
424
+ - Validated: 5-target campaign = 20 findings, 28 crown jewels
425
+
426
+ ### v2.4.0
427
+ - **BREAKING**: Mandatory Prancer Portal authentication — offline mode removed
428
+ - AD finding category mapping: CWE-307/521/522 → "authentication", CWE-200 → "reconnaissance"
429
+ - Dynamic affected_resource.type from URL scheme (Directory Service, Kerberos KDC, SMB File Share)
430
+ - Compliance mappings for AD CWEs (OWASP A07:2021, PCI-DSS 8.3.6, NIST PR.AA-01)
431
+ - LDIF base64 attribute parsing, empty password policy guard, trust direction decoding
432
+ - Crown jewel dedup across merged findings, masked value filtering
433
+ - 37 quality regression tests (was 25)
434
+ - External tool documentation: 38 binaries fully documented with install instructions
435
+
436
+ ### v2.3.0
437
+ - Full AD exploitation pipeline: 23 new network/AD agents (LDAP, Kerberos, SMB, MSSQL, DCSync, WinRM, NTLM, ACL, ADCS, delegation, LAPS, shadow creds, GPO, trust)
438
+ - 6-pass AD kill chain: Discovery → Spray → Kerberoast → Exploit → Lateral → Dominate
439
+ - Credential chaining via shared memory (spray → Kerberoast → lateral movement)
440
+ - Blackbox DC discovery: rootDSE + DNS reverse + NetBIOS
441
+ - OCSF compliance mapping for 8 frameworks (ADR-012)
442
+ - D3.js attack path visualization (ADR-013)
443
+ - GOAD lab validated: hodor:hodor credential + tyron.lannister TGS hash extracted
444
+ - Agent plugin registry with define_plugin! macro (46 plugins total)
445
+ - Bare IP/hostname target support (auto-prepend http://)
446
+ - TCP connectivity fallback for non-HTTP targets
447
+
296
448
  ### v2.1.0
297
449
  - Agent plugin registry (ADR-011): scalable plugin system for 100+ agents (one file + one registry line per agent)
298
450
  - Nmap-first port discovery: canonical entry point, automatic service-to-agent routing
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swarmhack-cli",
3
- "version": "2.3.0",
3
+ "version": "2.3.1",
4
4
  "description": "SwarmHack - Neural swarm-based penetration testing framework",
5
5
  "author": "Prancer <support@prancer.io>",
6
6
  "license": "MIT",