
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
swarmhack-cli
Advanced tools
Neural swarm-based penetration testing framework.
v2.5.0 -- Multi-Target Campaign + Network Intelligence + Host Recon
--target-list accepts comma-separated IPs, URLs, hostnames, and CIDR ranges. Scan entire networks in one command.--target-list 10.0.0.0/24 expands to 254 hosts automatically.mission-*.json with all targets' findings combined. Per-target reports moved to reports/per-target/.v2.4.0 -- AD Data Quality + Mandatory Auth + External Tool Documentation
v2.1.0 -- Quality, OCSF Compliance & Service-Driven Discovery Foundation
type_uid corrected to 600105, severity_id added at finding level, crown jewel deduplication by (category, value), findings sorted by generation ascending + risk_score descending.PHPSESSID=abcd...wxyz), fallback 500-char cap.cargo test + cargo clippy now run on every push/PR (was build-only).CARGO_PKG_VERSION (no more hardcoded v1.0.0).npm install -g swarmhack-cli
Or use npx:
npx swarmhack-cli --help
SwarmHack includes a default configuration file (config/swarmhack.yaml) that is automatically used when running commands. You can override it by:
Using your own config file:
swarmhack spawn --config /path/to/your/config.yaml --target "http://example.com"
Creating a local config in your project:
Place config/swarmhack.yaml in your project root - it will be automatically detected.
Customizing the bundled config: Copy the bundled config to your project and modify it:
cp $(npm root -g)/swarmhack-cli/config/swarmhack.yaml ./config/
# Full kill chain scan
swarmhack spawn \
--target "http://example.com" \
--customer "your-customer" \
--token "your-token"
# Specific agents only
swarmhack spawn --agents sqli,xss,csrf \
--target "http://example.com" \
--customer "your-customer" \
--token "your-token"
# AD domain controller scan
swarmhack spawn \
--target 192.168.56.10 \
--customer "your-customer" \
--token "your-token"
# Scan multiple targets — credentials from Host A are shared with Host B
swarmhack spawn \
--target-list "192.168.56.10,192.168.56.11,10.0.0.1" \
--customer "your-customer" \
--token "your-token"
# Scan entire subnet (CIDR)
swarmhack spawn \
--target-list "10.0.0.0/24" \
--customer "your-customer" \
--token "your-token"
# Mixed targets: IPs + URLs + hostnames + CIDR
swarmhack spawn \
--target-list "192.168.56.10,https://app.corp.local,10.0.0.0/24" \
--customer "your-customer" \
--token "your-token"
Campaign output:
mission-*.json with all findings across all targetsmission-*-attack-path.html showing network topology with all hostsreports/per-target/# Run in Docker mode (isolated execution)
swarmhack spawn --agents sqli \
--target "http://example.com" \
--runtime docker \
--docker-image "swarmhack/pentest:latest"
# Run multiple agents
swarmhack spawn --agents sqli,xss,csrf \
--target "http://example.com" \
--customer "your-customer" \
--token "your-token"
# Run in Docker with custom image and volumes
swarmhack spawn --agents sqli \
--target "http://example.com" \
--runtime docker \
--docker-image "myregistry/swarmhack:v1.0" \
--docker-volume "/host/reports:/app/reports"
# List available agents
swarmhack agents list
# Check system health
swarmhack doctor
SwarmHack supports two runtime modes:
| Mode | Description | Use Case |
|---|---|---|
local | Run directly on host system | Development, CI/CD with pre-installed tools |
docker | Run inside Docker containers | Production, isolated execution, portable |
| Option | Description |
|---|---|
--runtime | Runtime mode: local (default) or docker |
--docker-image | Docker image to use (overrides config) |
--docker-container | Custom container name |
--docker-volume | Additional volumes (can be repeated) |
--docker-env | Environment variables (format: KEY=VALUE) |
# In config/swarmhack.yaml
runtime:
mode: docker # or "local"
docker_image: swarmhack/pentest:latest
docker_auto_remove: true
docker_volumes:
- /host/reports:/app/reports
docker_env:
CUSTOM_VAR: value
docker_network: bridge
docker_resources:
memory: 1g
cpus: "1"
const swarmhack = require('swarmhack-cli');
// Run a scan
const results = await swarmhack.scan({
target: 'http://example.com',
agents: ['sqli', 'xss'],
customer: 'your-customer',
token: 'your-token',
});
console.log(results);
// Check version
const version = await swarmhack.version();
console.log(version);
// Run any command
const result = await swarmhack.run(['spawn', '--help']);
console.log(result.stdout);
| Platform | Architecture |
|---|---|
| Linux | x64, arm64 |
| macOS | x64, arm64 |
| Windows | x64 |
If npm installation fails, use Docker:
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(pwd)/reports:/app/reports \
prancer/swarmhack:2.5.0 \
spawn --agents sqli --target "http://example.com" \
--customer "your-customer" --token "your-token"
SwarmHack supports authenticated scanning using custom HTTP headers. This enables testing of post-authentication attack surfaces that are invisible to unauthenticated scans.
swarmhack spawn \
--target "https://your-app.com" \
--header "Cookie: session=abc123def456" \
--token "$PRANCER_TOKEN" \
--customer "$PRANCER_CUSTOMER"
swarmhack spawn \
--target "https://api.your-app.com" \
--header "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
--token "$PRANCER_TOKEN" \
--customer "$PRANCER_CUSTOMER"
swarmhack spawn \
--target "https://your-app.com" \
--header "Cookie: session=abc123" \
--header "X-API-Key: your-api-key-here" \
--header "X-Tenant-ID: customer-123" \
--token "$PRANCER_TOKEN" \
--customer "$PRANCER_CUSTOMER"
swarmhack spawn \
--target "https://your-app.com" \
--header "Authorization: Basic YWRtaW46cGFzc3dvcmQ=" \
--token "$PRANCER_TOKEN" \
--customer "$PRANCER_CUSTOMER"
--timeout 1200--header flag is repeatable -- add as many custom headers as needed| Agent | CWE | Description |
|---|---|---|
crawler | — | Web crawling, form discovery, WAF detection |
sqli | CWE-89 | SQL injection (UNION, boolean, error, time-based) |
xss | CWE-79 | Cross-site scripting (reflected, stored, DOM, blind) |
cmdi | CWE-78 | Command injection with marker-based detection |
csrf | CWE-352 | Cross-site request forgery |
idor | CWE-639 | Insecure direct object reference |
auth_bypass | CWE-287 | Authentication bypass |
ssrf | CWE-918 | Server-side request forgery (IMDS probes) |
lfi | CWE-22 | Local file inclusion / path traversal |
ssti | CWE-1336 | Server-side template injection |
open_redirect | CWE-601 | Open redirect |
cors | CWE-942 | CORS misconfiguration |
jwt | CWE-345 | JWT vulnerabilities (alg:none, confusion) |
xxe | CWE-611 | XML external entity injection |
file_upload | CWE-434 | File upload vulnerabilities |
deserialization | CWE-502 | Insecure deserialization |
http_smuggling | CWE-444 | HTTP request smuggling (CL.TE/TE.CL) |
session_fixation | CWE-384 | Session fixation and invalidation testing |
dangerous_methods | CWE-16 | Dangerous HTTP methods (TRACE/XST, PUT upload) |
default_credentials | CWE-798 | Default credential scanning (20 pairs) |
privilege_escalation | CWE-862 | Function-level access control testing |
mass_assignment | CWE-915 | Mass assignment / parameter injection |
vulnerable_components | CWE-1035 | Version fingerprinting + CVE lookup (30 CVEs) |
pivot | — | SSH lateral movement, tunnel scanning, credential reuse |
idor (enhanced) | CWE-639 | Object reference enumeration with credential correlation |
nmap_scanner | — | Port discovery, service detection, NSE vulnerability scanning |
ftp_probe | CWE-287 | FTP anonymous login, default credentials, banner analysis |
ssh_probe | CWE-327 | SSH banner analysis, weak version CVE detection |
ldap_enum | CWE-284 | AD enumeration (10 categories: users, SPNs, delegation, trusts, policy) |
ldap_spray | CWE-307 | LDAP password spray with lockout-safe threshold detection |
kerberos_attack | CWE-522 | AS-REP roasting + Kerberoasting (TGS hash extraction) |
smb_enum | CWE-200 | SMB null session, signing check, GPP password scraping |
mssql_probe | CWE-798 | MSSQL default credentials, linked servers, xp_cmdshell |
dcsync | CWE-522 | DCSync credential extraction via secretsdump |
winrm_probe | CWE-287 | WinRM lateral movement via evil-winrm/crackmapexec |
ntlm_capture | CWE-522 | NTLM hash capture via Responder (opt-in) |
acl_abuse | CWE-284 | BloodHound-style ACL path discovery and exploitation |
hash_crack | CWE-521 | Offline hash cracking with feedback loop |
pth_agent | CWE-522 | Pass-the-Hash lateral movement via impacket |
cred_dump | CWE-522 | SAM/LSA credential dumping |
adcs_exploit | CWE-295 | ADCS ESC1-ESC15 certificate abuse via certipy |
delegation_exploit | CWE-284 | Constrained/RBCD/unconstrained Kerberos delegation |
laps_reader | CWE-522 | LAPS local admin password extraction |
shadow_creds | CWE-284 | Shadow credentials via pywhisker/certipy |
gpo_abuse | CWE-284 | GPO modification for scheduled task deployment |
trust_exploit | CWE-200 | Cross-forest SID History exploitation |
gmsa_reader | CWE-522 | gMSA service account password reading |
auth_coercion | CWE-287 | PrinterBug/PetitPotam authentication coercion |
SwarmHack generates reports in OCSF 1.1.0 format, the industry standard for security findings.
Single target:
{
"scan_info": {
"scanner": { "name": "SwarmHack", "vendor": "Prancer" },
"customer": "your-customer",
"target": "http://example.com",
"summary": { "findings_count": 9, "crown_jewels_count": 23 }
},
"compliance_summary": { "frameworks_covered": ["PCI-DSS 4.0", "OWASP Top 10", "NIST CSF 2.0", ...] },
"findings": [...]
}
Multi-target campaign:
{
"scan_info": {
"mission_type": "multi-target",
"targets_scanned": 4,
"targets_total": 5,
"summary": { "findings_count": 20, "crown_jewels_count": 28 },
"per_target": [
{ "target": "http://192.168.56.10/", "findings_count": 6, "crown_jewels_count": 4 },
{ "target": "https://demo.testfire.net/", "findings_count": 7, "crown_jewels_count": 22 }
]
},
"findings": [/* all findings from all targets combined */]
}
Each finding includes:
SwarmHack requires Prancer Portal authentication:
swarmhack spawn \
--target "http://example.com" \
--agents sqli,xss \
--customer "your-customer" \
--token "your-32-char-token"
Get your token from Prancer Portal → Settings → Access Tokens.
--token and --customer)--target-list with comma-separated IPs, URLs, hostnames, CIDR ranges10.0.0.0/24 → 254 hosts, up to /16 supported--header flag for session cookies, Bearer tokens, API keysMIT
FAQs
SwarmHack - Autonomous swarm penetration testing for web, Active Directory, network lateral movement, and Cisco SSE — with FAIR dollar-risk quantification and Cisco SKU upsell reporting
The npm package swarmhack-cli receives a total of 0 weekly downloads. As such, swarmhack-cli popularity was classified as not popular.
We found that swarmhack-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.