Crucible
Crucible Documentation
Comprehensive guides covering every page, tab, and option.
How It Works
⚠️ Authorized Testing Only
Crucible orchestrates tools that perform active exploitation, scanning, and probing of live systems — web applications, APIs, network infrastructure, databases, wireless networks, cloud environments, and more. Unauthorized testing is illegal under the CFAA (US), CMA (UK), and equivalent legislation worldwide. You MUST obtain signed, written authorization (Rules of Engagement, Statement of Work, or equivalent) from the asset owner explicitly covering every target and scope before launching any tool through Crucible. pr0t31n does not condone or recommend unauthorized testing of any kind.
🛡️ Sensitive Data Handling
Crucible engagements collect and store security findings, vulnerability data, screenshots, application responses, API traffic, credentials (when testing authentication), network captures, and OSINT intelligence. Handle all collected evidence in compliance with your organization's data protection policies and applicable regulations (GDPR, CCPA, HIPAA, PCI DSS). Never test production systems without explicit authorization and a data handling agreement. Store engagement directories on encrypted, access-controlled storage and destroy evidence per your data retention policy.
Overview
Crucible is the unified management platform for penetration testing engagements. It wraps 16 specialized security tools in a structured workflow: create an engagement, configure scope and targets, launch tools, monitor progress in real time, review findings, generate reports, and export deliverables — all from a single browser interface.
Crucible runs as a Flask/Socket.IO application on port 5500 over HTTPS with session-based authentication (_auth.py). It supports 34 visual themes.
Managed Tools
| Tool | Scope | Purpose |
|---|---|---|
| Scattershot3 (SS3) | External | Network recon — port scanning, service enumeration, vulnerability detection |
| OSift | OSINT | Open-source intelligence gathering — DNS, WHOIS, certificate transparency, subdomain enumeration |
| Fracture | Web App | Web application penetration testing — OWASP Top 10 2025, authentication, injection, XSS |
| Siphon | API | API penetration testing — OWASP API Top 10 2023, spec fuzzing, authentication bypass |
| AuthProbe | Recon | Authentication technology fingerprinting and detection |
| Auger | Database | Database security assessment — misconfigurations, default credentials, privilege escalation |
| Trawler | PCAP | Network traffic analysis from packet captures |
| Aether | Wireless | 802.11 WiFi security assessment — WPA/WPA2/WPA3, rogue AP detection |
| Aether-B | Wireless | Bluetooth/BLE security assessment |
| Aether-Z | Wireless | Zigbee/Z-Wave/LoRa RF security assessment |
| Aether-U | Wireless | UWB (Ultra-Wideband) security assessment |
| Bastion | Firewall | Firewall rule audit and configuration analysis |
| Forge | Cloud | Cloud infrastructure security assessment (AWS, Azure, GCP) |
| Quill | Mobile | Mobile application security testing (Android/iOS) |
| Isotope | File | Static file and binary analysis |
| Dredge | Endpoint | Endpoint security configuration assessment |
Benefits of Managed Mode
While every tool in the table above can run standalone from the command line, running them through Crucible provides significant advantages:
| Capability | Standalone | Crucible Managed |
|---|---|---|
| Unified findings store | Each tool writes its own findings.json; you merge manually | All tools feed a single engagement findings store with dedup, cross-tool correlation, and unified risk overrides |
| Action item pipeline | You read one tool's output and manually configure the next tool | Tools emit action items (e.g., "test this URL with Fracture") that Crucible routes to the correct tool — including pre-populated credentials and scope |
| Auto-queue | You launch each tool manually | When a tool finishes, Crucible examines pending action items and auto-launches the next recommended tool with correct settings |
| Parallelism control | You manage concurrency yourself | Crucible enforces group-based parallelism rules: exclusive tools (one at a time), OSINT (can parallel with SS3 only), and unrestricted tools (run alongside anything) |
| Pause / resume | Kill and restart from scratch | Graceful pause (tool checkpoints itself) and resume with --resume flag. Testing hours restrict execution to approved windows. |
| Scheduling | Manual start | Schedule engagement start for a future date/time with automatic launch |
| Credential propagation | Configure auth in each tool's config file | Set credentials once in the engagement wizard; Crucible writes credentialled settings files for each tool automatically |
| OOS (Out-of-Scope) segregation | No concept of scope boundaries | Action items targeting out-of-scope assets get separate settings files with _oos scope suffix — never mixed with in-scope targets |
| 40+ intelligence panels | Parse each tool's output files yourself | Aggregated intelligence across all tools: DNS maps, certificate trees, subdomain graphs, technology stacks, port/service matrices, screenshot galleries |
| 50+ report types | Write your own report | One-click PDF/HTML reports: full engagement, per-scope, per-tool, cross-scope correlation, executive summary |
| Audit trail | Whatever the tool logs to stdout | Every action timestamped in scan.log and scan.log.json; findings snapshots with diff; risk override and rename audit trails |
| Real-time collaboration | One terminal, one tester | Multiple browser tabs/devices see live console output, findings, and status simultaneously via Socket.IO |
| RAM/resource protection | Tools run unconstrained | Crucible checks system RAM before launching (blocks at >85% usage) and enforces one-at-a-time rules for memory-intensive tools |
New Engagement Wizard
The wizard creates a new penetration testing engagement with all the configuration tools need to operate.
Step 1 — Client & Engagement
| Field | Required | Description |
|---|---|---|
| Client Name | Yes | Full legal name of the client organization. Appears in reports, exports, and directory naming. |
| Client Short Name | Yes | Alphanumeric abbreviation used in directory paths, filenames, and finding references (e.g., ACME). Determines the engagement directory: <clients_base>/<client_short>/<year>/crucible/<client_short>_<timestamp>/ |
| Year | Yes | Engagement year (defaults to current). Drives directory structure. |
| Engagement Name | No | Descriptive name for the engagement (e.g., "Q4 External Pentest"). Shown in the project list and reports. |
| Start Date / End Date | No | Engagement window. Informational for reports; does not enforce scheduling. |
Step 2 — Scope Definition
Define what is in scope for the engagement. Each scope type enables specific tools.
| Scope Toggle | What It Enables | Configuration Fields |
|---|---|---|
| External | Scattershot3 | Target IPs/CIDRs, hostnames, port ranges, exclusion list |
| OSINT | OSift | Target domains, organization names, email domains |
| Web Application | Fracture | Target URLs, authentication method (None/Basic/Bearer/Cookie/Form/Custom Header/NTLM/OAuth2/API Key/Client Cert), credentials, exclusion paths |
| API | Siphon | Base URLs, OpenAPI/Swagger spec file upload, authentication method (same options as web), credentials, rate limiting |
| Internal | Scattershot3 (internal mode) | Internal network CIDRs, VPN/jump host configuration |
| Wireless | Aether, Aether-B, Aether-Z, Aether-U | Wireless interface selection, target SSIDs/BSSIDs, channel ranges |
| Database | Auger | Database connection strings, types (MySQL/PostgreSQL/MSSQL/Oracle/MongoDB/Redis), credentials |
| Cloud | Forge | Cloud provider (AWS/Azure/GCP), access keys, account IDs, regions |
| Firewall | Bastion | Firewall config file upload or API endpoint, rule export format |
| Mobile | Quill | APK/IPA file upload, device connection settings |
| Endpoint | Dredge | Target host, SSH/WinRM credentials, baseline policy |
| File Analysis | Isotope | File upload or directory path for static analysis |
| PCAP | Trawler | PCAP file upload or capture interface |
Step 3 — Consultant & Reporting
| Field | Description |
|---|---|
| Consultant Name / Title / Email | Tester information included in reports |
| Client POC Name / Email / Phone | Client point of contact for the engagement |
| Report Version | Version string for deliverables (default "1.0") |
Step 4 — Tool Registration
Based on the scopes enabled in Step 2, Crucible auto-registers the appropriate tools. You can also manually register additional tools. Each registered tool gets:
- A settings file (
<tool>_settings.yaml) pre-populated from the scope definition - An output directory under the engagement directory
- Console, findings, and log tracking in the dashboard
Edit Engagement Wizard
Opens the same form as New Engagement, pre-populated with the current configuration. All fields are editable. Changes to scope definitions propagate to tool settings files. Adding a new scope auto-registers the corresponding tool. Removing a scope does not delete existing findings — it only prevents new launches.
Additional edit-only options:
- Re-base paths — If the engagement directory was moved, Crucible detects the mismatch via
crucible_meta.jsonand offers to rebase all internal paths - Archive & Rescan — Archives current tool output and re-launches with fresh settings (useful for re-assessment)
Project Dashboard
The main workspace after creating or selecting an engagement. All interaction happens through the tabbed interface.
Settings Tab
Per-tool configuration management. Each registered tool has its own settings panel.
Common Settings (All Tools)
| Setting | Description |
|---|---|
| Targets | IP addresses, hostnames, URLs, or CIDRs depending on the tool. Pre-populated from scope definition. Editable per-tool. |
| Exclusions | Targets to skip. Critical for preventing scope breach — items in the exclusion list are never tested. |
| Output Directory | Where the tool writes results. Auto-set to <engagement_dir>/<tool>/. |
Authentication Settings (Fracture, Siphon)
Web and API tools need to know how to authenticate to the target application. Supported methods:
| Auth Method | Required Fields | Notes |
|---|---|---|
| None | — | No authentication; testing as an unauthenticated user |
| Basic Auth | Username, Password | HTTP Basic Authentication header |
| Bearer Token | Token | Authorization: Bearer <token> header |
| Cookie | Cookie string | Raw cookie header value |
| Form-Based | Login URL, username field, password field, username, password | Automated form login before each test session |
| Custom Header | Header name, Header value | Arbitrary header injection (e.g., X-API-Key) |
| NTLM | Domain, Username, Password | Windows NTLM authentication |
| OAuth2 | Token URL, Client ID, Client Secret, Scope | OAuth2 client credentials flow; token auto-refreshed |
| API Key | Key name, Key value, Location (header/query) | API key in header or query parameter |
| Client Certificate | Cert file, Key file | Mutual TLS authentication |
Test Connection
The Test Connection button validates that the configured authentication works against the target before launching a full assessment. It performs a lightweight HTTP request with the configured auth method and reports success/failure with status code and response details.
AuthProbe Integration
The Run AuthProbe button launches AuthProbe against the target URL to detect the authentication technology in use (e.g., Okta, Azure AD, custom form, Basic Auth). Results populate the auth method dropdown automatically, reducing manual configuration. AuthProbe supports --rendered mode for JavaScript-heavy login pages.
Spec File Upload (Siphon)
Upload an OpenAPI/Swagger specification file (.json or .yaml) for API testing. Siphon uses the spec to discover all endpoints, methods, and parameter schemas — testing both documented endpoints and probing for undocumented (rogue) endpoints.
Wireless Settings (Aether Family)
| Setting | Description |
|---|---|
| Wireless Interface | Select from detected wireless adapters on the host |
| Target SSIDs | Specific network names to assess (blank = scan all visible) |
| Target BSSIDs | Specific access point MAC addresses |
| Channel Range | WiFi channels to scan (default: all) |
| Capture Duration | How long to capture wireless traffic |
Archive & Rescan
Archives the current tool's output directory (timestamped backup) and creates a fresh output directory. Use this for re-assessment without losing prior results. The archived data remains in the engagement directory under archive/.
Console Tab
Real-time process management and live output streaming for all registered tools.
Tool Launch Controls
| Button | Description |
|---|---|
| ▶ Start | Launch the tool as a managed subprocess. Crucible injects CRUCIBLE_MANAGED=1 into the environment, which switches the tool from standalone output to structured protocol tokens. Settings are passed via the tool's settings YAML. |
| ⏸ Pause | Sends a graceful pause signal. The tool checkpoints its progress and exits cleanly. Crucible never kills the tool process during pause — it only terminates child subprocesses (nmap, nuclei, etc.) while the tool itself handles the checkpoint. |
| ▶ Resume | Re-launches the tool with --resume flag. The tool reads its checkpoint file and continues from where it left off. |
| ⏸ Pause All | Pauses every running tool in the engagement |
| ▶ Resume All | Resumes all paused tools |
| 🗑 Kill | Terminates the tool process and all its children. Use sparingly — checkpoint data from the current module may be lost. |
Console Output
- Live stdout/stderr streaming via Socket.IO
- Color-coded: findings highlighted, errors in red, status updates in blue
- Console history preserved in memory and on disk — new tabs receive full history
- Per-tool console tabs — switch between tools to see their individual output
- Combined feed view showing all tools' status in one panel
Pre-Flight Health Check
Before launching, the Health Check button verifies that the tool's script exists, is executable, and all required dependencies are available. Reports specific errors if anything is missing.
Instance Details
For each running tool, view: current scope (in-scope vs OOS), target list, settings file path, process ID, uptime, and checkpoint data (if paused).
Scheduling
| Feature | Description |
|---|---|
| Schedule Engagement | Set a future date/time for automatic tool launch. Crucible starts the engagement at the scheduled time without manual intervention. |
| Testing Hours | Restrict tool execution to specific hours (e.g., 09:00–17:00 Mon–Fri). Tools are paused outside the window and resumed when the window reopens. Configure: start time, end time, timezone, and which weekdays are active. |
Testing hours are critical for engagements where the client has restricted testing to business hours or maintenance windows.
Subprocess Management
View every child process spawned by each tool (nmap, nuclei, gobuster, etc.) with PID, command line, CPU/memory usage, and runtime. Kill individual subprocesses without terminating the parent tool.
Intelligence Tab
Aggregated intelligence from all tools, organized into 40+ panels across 9 categories. Intelligence is read-only — it reflects what tools have discovered.
OSINT Intelligence (OSift)
| Panel | What It Shows |
|---|---|
| DNS Records | All discovered DNS records by type (A, AAAA, MX, NS, TXT, CNAME, SOA, SRV, PTR) with TTL and resolver source |
| Subdomains | All discovered subdomains with IP resolution, source tool, and first-seen timestamp |
| WHOIS | Domain registration data: registrar, dates, nameservers, registrant info (when available) |
| Certificates | SSL/TLS certificates from Certificate Transparency logs: subject, issuer, validity dates, SANs |
| Email Addresses | Discovered email addresses with source (WHOIS, web scraping, breach databases) |
| Technology Stack | Detected web technologies, frameworks, CMS, CDN, WAF |
| Social Media | Discovered social media profiles and organizational presence |
| IP Geolocation | Geographic location data for discovered IP addresses |
| ASN Information | Autonomous System Numbers with organization, prefix, and peer data |
Network Intelligence (Scattershot3)
| Panel | What It Shows |
|---|---|
| Discovered Hosts | All live hosts with IP, hostname, OS detection, open port count |
| Port/Service Matrix | Grid view: hosts × ports with service identification and version |
| Screenshots | Web application screenshots captured by gowitness with thumbnail gallery and full-size viewer |
| SSL/TLS Analysis | Per-host cipher suites, protocol versions, certificate chain, and vulnerability status (Heartbleed, POODLE, ROBOT, etc.) |
| Security Headers | HTTP security header analysis: HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy |
| Software Inventory | Detected software with version numbers — web servers, frameworks, libraries, CMS platforms |
Web Application Intelligence (Fracture)
| Panel | What It Shows |
|---|---|
| Discovered Endpoints | All discovered URLs with HTTP method, status code, content type, and discovery source |
| Authentication Analysis | Authentication mechanism details: login flow, session management, token handling |
| Input Vectors | Form fields, URL parameters, headers, and cookies identified as potential injection points |
API Intelligence (Siphon)
| Panel | What It Shows |
|---|---|
| API Surface Map | All endpoints from spec + discovered rogue endpoints, with methods, parameters, auth requirements |
| Rogue Endpoints | Endpoints found by probing that are NOT in the supplied OpenAPI spec — potential undocumented/shadow API surfaces |
| API Authentication | How the API handles auth: tokens, keys, OAuth flows, session management |
Intelligence Export
Each intelligence panel supports XLSX export — download the data as a structured Excel spreadsheet for offline analysis or inclusion in reports.
Findings Tab
Central management of all security findings across every tool in the engagement.
Findings Table
All findings sorted by risk severity (Critical → High → Medium → Low → Info), then by tool, then alphabetically. Each row shows:
- Risk badge (color-coded: Critical, High, Medium, Low, Info)
- Title, IP:Port, service, tool source, CVE IDs, description preview
Filtering & Search
| Filter | Description |
|---|---|
| Risk Level | Filter by severity: All, Critical, High, Medium, Low, Informational |
| Tool | Filter by source tool (SS3, Fracture, Siphon, etc.) |
| Scope | Filter by scope: External, Internal, OSINT, Web, API, Wireless, etc. |
| Search | Free-text across title, description, IP, CVE, tool name |
| View Toggle | Switch between Active Findings and False Positives views |
Finding Detail Panel
Click any finding to expand the full detail panel showing:
- Title & Risk — with risk override history
- Description — full vulnerability description
- Impact — what an attacker can achieve
- IP, Port, Service, Hostname — affected asset details
- CVEs — linked CVE identifiers
- OWASP / NIST Mapping — compliance framework references
- Remediation — recommended fix
- Command — exact command that produced the finding
- Output — tool output (truncated to 4096 chars with full-view link)
- Evidence File — link to the output file on disk
- Exploit Details — ExploitDB, Metasploit module references
- Notes — tester-added notes (free-text, persisted per finding)
Finding Actions
| Action | Description |
|---|---|
| Risk Override | Change severity to any level. Creates an audit entry in finding_risk_changes.jsonl. The override persists across tool re-runs via the tool's risk override mechanism. |
| Add Note | Attach a tester note to the finding. Notes persist in the findings store and appear in reports. |
| Mark False Positive | Moves the finding to falsePositives.json/falsePositives.csv. Removed from active findings, visible in the FP view. Recoverable. |
| Recover FP | Moves a false positive back to active findings |
| View Evidence | Opens the associated output file in a modal viewer |
Findings Snapshots & Diffing
Crucible can take a snapshot of the current findings state. Later, you can diff against a previous snapshot to see what changed: new findings, removed findings, and risk overrides. Useful for re-assessment engagements.
Export Formats
| Format | Description |
|---|---|
| CSV | All active findings as a flat CSV with all fields |
| JSON | Full findings array in universal schema format |
| XLSX | Excel workbook with findings, sorted and color-coded by risk |
Action Items Tab
Cross-tool recommendation pipeline. When a tool discovers something that another tool should investigate, it emits an action item.
How Action Items Work
- SS3 discovers a web server → emits action item: "Test
https://target:443with Fracture" - SS3 discovers an API endpoint → emits action item: "Test
https://api.targetwith Siphon" - OSift discovers a subdomain → emits action item: "Scan
sub.target.comwith SS3" - SS3 discovers a database port → emits action item: "Test
target:3306with Auger"
Action items include the target, recommended tool, and any context (e.g., discovered service type, version). You can accept (launch the recommended tool) or dismiss individual items.
Tool Generation Chains
| Source Tool | Generates Items For |
|---|---|
| OSift | SS3, Fracture, Siphon |
| SS3 | Fracture, Siphon, Auger |
Exclusion Filtering
Action items whose targets match the engagement exclusion list are automatically filtered out and will not appear as pending recommendations.
Auto-Queue
Auto-queue is Crucible's automated tool chaining system. When a tool finishes, Crucible examines all pending action items, groups them by recommended tool, and launches the next tool with pre-populated targets and credentials.
⚠️ Auto-Queue Scope Breach Warning
Auto-queue can launch tools against targets discovered during the engagement that may not have been in your original scope. For example, if SS3 discovers a web application on an IP address, auto-queue may launch Fracture against it — even if that specific URL was not listed in your Rules of Engagement. Before enabling auto-queue, ensure your authorization covers all targets that tools may discover, or use the confirmation tier (below) to review each launch manually. Accidental scope breach during a penetration test can have serious legal consequences. When in doubt, disable auto-queue and launch tools manually after verifying each target is authorized.
Auto-Queue Configuration
| Setting | Description |
|---|---|
| Enable/Disable | Master toggle. When disabled, tools must be launched manually. |
| AUTO_QUEUE_TOOLS | Whitelist of tools that auto-queue is allowed to launch. Limit this to reduce scope risk. |
| Approval Tier: Auto | Tool launches immediately without user confirmation. Use only when your authorization covers broad target discovery. |
| Approval Tier: Confirm | Crucible presents the proposed launch (tool, targets, settings) and waits for manual approval before starting. Recommended for most engagements. |
Auto-Queue Behavior
- Dequeue timing — Runs when a tool completes. Also retries every 30 seconds if a launch was blocked (e.g., by parallelism rules or RAM limits).
- Parallelism enforcement — Auto-queue respects the same group rules as manual launches: exclusive tools cannot overlap, OSINT can only parallel with SS3.
- RAM check — Blocks launch if system RAM usage exceeds 85%.
- Credential propagation — When the engagement has authentication configured, auto-queue writes credentialled settings files for tools that need auth (Fracture, Siphon).
- Dedup — Won't re-queue a tool/target combination that's already been launched or is currently running.
- Pause awareness — When a project is paused, auto-queue stops dequeuing. Resumed projects restart the dequeue cycle.
Out-of-Scope (OOS) Handling
⚠️ Out-of-Scope Target Handling — Explicit Permission Required
When tools discover assets outside the defined engagement scope, Crucible segregates them as OOS (Out-of-Scope) action items. These receive separate settings files with an _oos scope suffix and are never mixed with in-scope targets. OOS targets must NEVER be tested without obtaining explicit, written permission from the asset owner. The fact that an OOS target was discovered during an authorized engagement does NOT authorize testing it. Contact the client, update the Rules of Engagement, and only then enable OOS testing for those specific targets. Crucible provides OOS segregation as a safety mechanism — it is NOT an authorization mechanism.
| OOS Feature | Description |
|---|---|
| OOS Detection | Action items whose targets fall outside the defined scope are automatically tagged as OOS |
| Separate Settings Files | OOS targets get their own settings file with _oos suffix (e.g., fracture_settings_oos.yaml), never combined with in-scope targets |
| Separate Queue Keys | OOS items are queued independently from in-scope items — they never merge |
| Manual Launch Only (default) | OOS items require manual launch by default. Auto-queue does not auto-launch OOS items unless explicitly configured to do so. |
| OOS Visibility | The Console tab's Instance Details shows whether a running tool is in-scope or OOS mode |
Logs Tab
Combined log viewer for the entire engagement.
Log Sources
- Tool Logs — Parsed from
__CRUCIBLE_LOG__tokens with severity: INFO, WARNING, ERROR, FINDING, STATUS, DONE - Crucible Logs — Application-level events: tool launches, pauses, resumes, kills, settings changes, finding modifications
- Combined View — Merged timeline of all sources
Log Features
| Feature | Description |
|---|---|
| Time-Range Filter | From/To datetime pickers (datetime-local with second precision) to narrow the view. Missing bounds mean unbounded. |
| Error-Count Pills | Tab badge shows the count of error-level entries only (ERROR, EXCEPTION, TOOL_ERROR, FATAL, CRITICAL) — not total log count |
| Auto-Refresh | New entries arrive in real time via Socket.IO |
| Clear Logs | Clear the displayed log buffer (does not delete on-disk logs) |
Errors Tab
Filtered view showing only error-level entries across all tools.
- Time-range filter (From/To pickers) identical to Logs tab
- Error-count pill reflects the same ERROR/EXCEPTION/TOOL_ERROR/FATAL/CRITICAL levels
- Auto-categorized by source: tool errors vs Crucible errors vs communication errors
Reports Tab
One-click report generation across 50+ report types organized by scope category.
Report Scopes & Types
| Category | Report Types | Scope Gate |
|---|---|---|
| Full Engagement | Executive Summary, Full Technical Report, Finding Matrix, Remediation Roadmap, Risk Register, Compliance Mapping | None (always available) |
| Endpoint/Internal | Host Assessment, Port/Service Matrix, Vulnerability by Host, Network Topology, Service Enumeration, Credential Findings, Configuration Audit | endpoint or internal scope |
| External | External Attack Surface, Internet-Facing Services, SSL/TLS Assessment, DNS/Infrastructure, External Vulnerability Summary | external scope |
| OSINT | Digital Footprint, Subdomain Enumeration, Certificate Transparency, Email/Credential Exposure, Technology Stack | osint scope |
| Internal | Internal Network Assessment, Lateral Movement Paths, Privilege Escalation, Service Misconfigurations, Internal Vulnerability Summary | internal scope |
| Wireless | Wireless Assessment, Rogue AP Detection, Encryption Analysis, Wireless Vulnerability Summary, RF Spectrum Analysis | wireless scope |
| Web Application | OWASP Top 10 Mapping, Web Vulnerability Assessment, Authentication/Authorization, Input Validation, Session Management | webapp scope |
| API | OWASP API Top 10, API Surface Coverage, Rogue Endpoint Analysis | api scope |
| Tool-Specific | SS3 Report, Fracture Report, Siphon Report, Bastion Report, Gearbox Report, OSift Report | Respective tool registered |
| Cross-Scope | Attack Chain Analysis, Shared Vulnerability Patterns, Cross-Scope Risk Correlation | 2+ scopes active |
Report Options
| Option | Description |
|---|---|
| Format | PDF (styled, print-ready) or HTML (interactive, collapsible sections) |
| Custom Filename | Override the default filename pattern |
| Engagement Completeness | Crucible checks if all registered tools have completed before generating. A warning appears if the engagement is still in progress — you can proceed anyway. |
Report Types Available
The /api/report-types/<project_id> endpoint returns only report types whose scope gate matches the engagement's active scopes. A wireless report won't appear unless the engagement has wireless scope enabled and an Aether-family tool registered.
Auditability
Crucible maintains comprehensive audit trails for every action in the engagement:
| Audit File | What It Records |
|---|---|
scan.log | Every event timestamped: tool launches, pauses, resumes, completions, errors, phase transitions |
scan.log.json | Machine-readable mirror of scan.log as a JSON array |
errors.log | ERROR-level entries only, for quick triage |
finding_risk_changes.jsonl | Every risk override: original level → new level, timestamp, reason |
finding_name_changes.jsonl | Every title rename: original → new, timestamp |
falsePositives.json | All findings marked as false positive, with timestamp and original finding data |
findings_snapshots/ | Point-in-time snapshots for before/after comparison |
meta.json | Tool identity, client, engagement metadata, schema version, Crucible version |
Per-tool .log siblings | Every third-party tool invocation logged with command, version, timing, exit code, stdout/stderr |
Parallelism Groups
Crucible enforces concurrency rules to prevent resource exhaustion and tool conflicts:
| Group | Tools | Rule |
|---|---|---|
| Exclusive | SS3, Fracture, Siphon, Forge, Aether, Aether-B, Aether-Z, Aether-U | Only one exclusive tool runs at a time. These are resource-intensive (heavy scanning, network I/O) and would interfere with each other. |
| OSINT | OSift | Can run in parallel with SS3 only. Cannot overlap with other exclusive tools. OSift is mostly passive (DNS, WHOIS) and doesn't compete for the same network resources as SS3's port scanning. |
| Any | Trawler, Auger, AuthProbe, Quill, Isotope, Bastion, Dredge | Unrestricted — can run alongside any other tool. These are either lightweight, offline, or target separate resources. |
Integration Points
| Integration | Endpoint | Description |
|---|---|---|
| Nexus Hub | GET /api/nexus-status | Unauthenticated health probe returning app name, version, hostname, and scan status |
| Arbiter | GET /api/arbiter-projects | Normalized project list with engagement metadata for enrichment pipeline |
| Nessus Import | Auto-queue | When auto-queue is enabled and a Nessus CSV/XML is detected in the output directory, findings are automatically imported |
Security
Crucible implements defense-in-depth across authentication, transport, session management, and data handling.
Transport Security: All traffic is encrypted with TLS 1.2 or higher. In production deployments, Crucible sits behind an nginx reverse proxy with a properly signed certificate. For standalone or lab use, Crucible generates a self-signed certificate at startup. Unencrypted HTTP connections are redirected to HTTPS.
Authentication: Crucible uses the shared _auth.py module — the same session-based authentication system used across the Crucible platform. Users authenticate with a username and password, and sessions are managed via Flask's secure session cookies with the HttpOnly and Secure flags set.
CSRF Protection: All state-changing POST, PUT, and DELETE requests are protected against Cross-Site Request Forgery via token validation. The CSRF token is embedded in forms and validated server-side on every mutation.
Session Management: Sessions expire after 30 minutes of inactivity. A 5-minute warning is displayed before expiration, giving the operator time to extend the session. Session data is stored server-side; only the session identifier is transmitted to the client.
Audit Logging: All significant actions — tool launches, kills, finding modifications, project creation and deletion, export and report generation, and authentication events — are written to a persistent audit log with timestamps and the authenticated user identity.
Path Traversal Protection: All file upload endpoints validate filenames and paths to prevent directory traversal attacks. Uploaded files are sanitized and placed in designated directories only.
Credential Handling: When a managed tool requires sudo privileges (e.g., Scattershot3 for raw socket operations or Aether for wireless interface control), the sudo password is passed from the browser to the server via an encrypted SocketIO channel and relayed directly to the tool's stdin. The password is held only in memory for the duration of the relay and is never written to disk, logged, or persisted in any form.
Features
Action Items
Console & Logging
Export
Findings Management
Import
Intelligence Panel
Process Control
Project Management
Queue Management
Scheduling
Tool Interop
UI & Theming
Web Terminal
Wireless Management
Use Cases
Multi-Scope Penetration Test
A full-spectrum engagement covering external, internal, OSINT, wireless, web, API, and endpoint scopes. Crucible manages the entire lifecycle: OSINT and external recon tools run first (OSift, Scattershot3), their discoveries auto-generate action items for targeted tools (Fracture, Siphon, Auger), and findings are aggregated and deduplicated across all scopes into a unified compliance matrix report.
Wireless Security Assessment
A dedicated wireless engagement using the Aether family of tools. Crucible discovers available wireless interfaces, enables monitor mode, and tracks progress through up to 15 testing phases — from WEP and WPA handshake capture through KRACK testing, rogue AP deployment, and post-connection attacks. Findings are mapped to wireless-specific report types.
Web Application Test
A web-focused engagement where Fracture orchestrates OWASP Top 10 testing against one or more target URLs. AuthProbe first identifies authentication mechanisms, then Fracture runs automated and semi-automated testing phases. Crucible aggregates findings into web-specific reports including OWASP Top 10 mapping, content discovery, and technology analysis.
API Security Test
An API-focused engagement where Siphon performs OWASP API Top 10:2023 testing against REST or GraphQL endpoints. Crucible manages API specification import, authentication configuration, and endpoint enumeration. Findings are presented in API-specific reports with endpoint-level detail and OWASP API category mapping.
Automated Recon Pipeline
A reconnaissance-focused engagement where Scattershot3 and OSift run in parallel to map the external attack surface. As they discover hosts, ports, services, and domains, Crucible's ActionEngine auto-generates follow-up items. The operator reviews and bulk-approves items, and Crucible queues the targeted tools with proper parallelism enforcement — creating an automated discovery-to-exploitation pipeline.
Report Generation for Completed Engagements
After tool execution is complete, Crucible generates professional PDF reports from 44 templates. The operator selects the appropriate report type for the audience — an executive summary for leadership, a full technical report for the remediation team, a PCI DSS report for compliance, or a compliance matrix spanning NIST, ISO, SOC 2, and HIPAA. Reports are previewed in HTML before PDF generation.
CLI Reference
Command Examples
Starting Crucible
Launches the Crucible web application on port 5500. The server initializes all seven core services, loads the persisted execution queue and project registry, and begins accepting browser connections over HTTPS.
Accessing the Interface
Crucible is primarily a web application accessed via browser. After starting the server, navigate to the HTTPS URL on port 5500 to reach the login screen. All tool management, finding review, export, and reporting operations are performed through the browser interface.
Installing Crucible
Runs the multi-platform installer which checks Python version, installs system dependencies, Python packages, downloads static assets (socket.io.min.js, xterm.js), and initializes the authentication database.
Third-Party Tool Invocations
Commands and flags used when this tool invokes third-party dependencies during operation.
Finding Nomenclature
Every finding in Crucible carries a catalogue ID that identifies the tool of origin and the specific finding type. Catalogue IDs follow the pattern <PREFIX>-NNN where the prefix is a two-letter tool code and NNN is a sequential number within that tool's catalogue.
Catalogue ID Prefixes
| Prefix | Tool | Domain |
|---|---|---|
SS-NNN | Scattershot3 | Network recon, service enumeration, SSL/TLS, SMB |
FR-NNN | Fracture | Web application vulnerabilities, OWASP Top 10 |
SI-NNN | Siphon | API security, OWASP API Top 10 |
AU-NNN | Auger | Database security, authentication, privilege escalation |
AE-NNN | Aether family | Wireless (Wi-Fi, Bluetooth, Zigbee, UWB) |
OS-NNN | OSift | OSINT, DNS, email, digital footprint |
AP-NNN | AuthProbe | Authentication mechanism detection |
BA-NNN | Bastion | Firewall configuration audit |
GB-NNN | Gearbox | Network device security, OT/ICS |
PI-NNN | pAIn | Payload injection testing |
PT-NNN | Trawler | Network traffic analysis |
IS-NNN | Isotope | File analysis, metadata, malware indicators |
FG-NNN | Forge | Cloud infrastructure security |
QU-NNN | Quill | Mobile application security |
DG-NNN | Dredge | Windows endpoint security, compliance |
Risk Levels
All findings use uppercase risk classifications: CRITICAL (exploitable with immediate business impact), HIGH (exploitable or high likelihood of exploitation), MEDIUM (exploitable under specific conditions or moderate impact), LOW (minor impact or difficult to exploit), and INFO (informational — no direct security impact but relevant for security posture awareness).
Cross-Tool Deduplication
When multiple tools report the same vulnerability, Crucible resolves duplicates by matching on three fields: normalized title (case-insensitive, whitespace-trimmed), IP address, and port number. The merged finding retains the highest risk level from any contributing tool and records all source tools in the source_tools field. This ensures that an SSL/TLS weakness discovered by both Scattershot3 (network recon) and Fracture (web testing) appears as a single finding in reports while preserving attribution to both tools.
Action Items
Crucible's ActionEngine automatically generates follow-up tasks when tools discover new targets, services, or entry points. This creates an intelligent pipeline where reconnaissance findings flow into targeted testing without manual intervention.
Generation Rules
Action items are generated based on a tool-to-tool mapping that defines which tools should be recommended when a discovery is made:
- Fracture is recommended when OSift or Scattershot3 discovers a web service (HTTP/HTTPS ports, detected web servers)
- Siphon is recommended when OSift or Scattershot3 discovers an API endpoint or service
- Auger is recommended when Scattershot3 discovers a database service (MySQL, PostgreSQL, MSSQL, Oracle, MongoDB, Redis)
- Scattershot3 is recommended when OSift discovers new IP addresses or domain resolutions that expand the target scope
When a tool emits a __CRUCIBLE_ACTION_ITEM__: token, the payload contains the recommended tool, target, and justification. The ActionEngine validates the target, checks scope, and creates the item.
IP Validation
Before accepting any action item, the target IP is validated against multiple filters: known DNS resolvers (1.1.1.1, 8.8.8.8, 9.9.9.9, etc.) are rejected, network and broadcast addresses (x.x.x.0) are rejected, loopback and multicast ranges are rejected, leading-zero octets (which indicate date or version artifacts, not IP addresses) are rejected, and addresses outside the engagement scope are rejected. This prevents tools from generating bogus action items based on misinterpreted data.
Lifecycle States
Each action item progresses through a defined lifecycle:
- Pending — the item has been generated and is awaiting operator review. The operator can see the target, recommended tool, justification, and a preview of the command that will be executed.
- Queued — the operator approved the item, and it has been submitted to QueueManager. It will launch when parallelism constraints allow.
- Running — the tool is executing against the specified target.
- Complete — the tool finished successfully. Its findings have been injected into the FindingsEngine.
- Failed — the tool encountered an error during execution.
- Dismissed — the operator determined the follow-up is unnecessary and dismissed the item.
Scope-Aware Registration
Action items are only generated for tools relevant to the engagement's active scopes. If the wireless scope is not active, no Aether action items will be created regardless of what other tools discover. If the API scope is not active, no Siphon items will be generated. This prevents irrelevant action items from cluttering the queue.
Report Types
| Report | Scope | Description |
|---|---|---|
| Full Pentest Report | Universal | Complete engagement report with all scopes, findings, and methodology. |
| Remediation Prioritization Report | Universal | Cross-scope remediation roadmap ranked by risk severity, exploitation likelihood, and remediation effort. |
| Compliance Matrix Report | Universal | All findings mapped across compliance frameworks (NIST CSF, PCI DSS, ISO 27001, SOC 2, HIPAA) with gap analysis. |
| Unified Executive Summary | Universal | Single-page executive overview spanning all scopes with risk heat map and strategic recommendations. |
| External Vulnerability Assessment | external | All external findings with risk ratings, exploit availability, and remediation guidance. |
| Attack Surface Report | external | Exposed services, technologies, open ports, and entry points from external reconnaissance. |
| PCI DSS External Scan Report | external | External vulnerability assessment mapped to PCI DSS v4.0 requirements with ASV-style formatting. |
| Perimeter Firewall Assessment | external | Firewall rule analysis, exposed services, and network filtering gaps from external perspective. |
| Executive Summary — External | external | Non-technical overview of external attack surface and risk posture for leadership. |
| OSINT Intelligence Report | osint | Complete passive reconnaissance findings including subdomains, DNS, infrastructure, and employee data. |
| Digital Footprint Report | osint | Organization's public-facing digital presence: domains, IP ranges, ASN relationships, and hosting. |
| Email & Credential Exposure Report | osint | Harvested email addresses, breach database matches, and O365/Azure tenant enumeration results. |
| DNS Security Report | osint | DNS misconfiguration findings: SPF/DKIM/DMARC gaps, zone transfers, and subdomain takeover risks. |
| Executive Summary — OSINT | osint | Non-technical overview of public exposure and passive intelligence risk for leadership. |
| Internal Vulnerability Assessment | internal | All internal findings with risk ratings, lateral movement paths, and remediation guidance. |
| Network Segmentation Report | internal | Internal network segmentation analysis, VLAN boundaries, and lateral movement assessment. |
| Active Directory Security Report | internal | AD-specific findings: Kerberos weaknesses, LDAP binds, GPO misconfigurations, and privilege escalation. |
| SMB & File Share Report | internal | Share enumeration, permissions, null sessions, and SMBv1/signing vulnerabilities across the internal network. |
| Executive Summary — Internal | internal | Non-technical overview of internal network security posture and lateral movement risks for leadership. |
| Wireless Security Assessment | wireless | Complete wireless findings across all protocols: encryption, rogue APs, deauth, and credential capture. |
| Wi-Fi Configuration Report | wireless | SSID inventory, encryption analysis, WPA assessment, guest isolation, and AP firmware findings. |
| Rogue Access Point Report | wireless | Unauthorized access points, evil twin susceptibility, and wireless intrusion detection gaps. |
| Bluetooth / IoT Protocol Report | wireless | BLE device enumeration, Zigbee network mapping, UWB ranging analysis, and protocol-specific vulnerabilities. |
| Executive Summary — Wireless | wireless | Non-technical overview of wireless security posture and unauthorized device risks for leadership. |
| Web Application Vulnerability Report | web | All web findings with OWASP Top 10 mapping, proof-of-concept details, and remediation guidance. |
| OWASP Top 10 Assessment | web | Findings organized by OWASP Top 10:2021 categories with coverage analysis and gap assessment. |
| Web Technology Report | web | Detected technologies, CMS versions, JavaScript libraries, and EOL/CVE analysis across web applications. |
| Content Discovery Report | web | Hidden directories, backup files, admin panels, and sensitive path enumeration across web applications. |
| Executive Summary — Web | web | Non-technical overview of web application security posture and critical vulnerabilities for leadership. |
| API Security Assessment Report | api | All API findings with OWASP API Top 10:2023 mapping, evidence, and remediation guidance. |
| OWASP API Top 10 Assessment | api | Findings by OWASP API Security Top 10:2023 categories with coverage analysis per category. |
| Executive Summary — API | api | Non-technical overview of API security posture and authorization gaps for leadership. |
| NIST 800-123 Assessment | endpoint | Guide to General Server Security compliance assessment for endpoint hardening. |
| DISA STIG Assessment | endpoint | Defense Information Systems Agency Security Technical Implementation Guide compliance assessment. |
| CIS Benchmark Assessment | endpoint | Center for Internet Security hardening benchmark assessment against the target endpoint. |
| Disk & Storage Report | endpoint | Physical and logical disk configuration, RAID arrays, encryption status, and storage health assessment. |
| Software & Update Report | endpoint | Installed software inventory, end-of-life analysis, running services, and update compliance status. |
| Malicious Activity Report | endpoint | Suspicious processes, persistence mechanisms, credential exposure, and event log indicators of compromise. |
| Hardware Report | endpoint | System hardware inventory including processors, memory, BIOS/UEFI, network adapters, and peripherals. |
| Network Traffic Analysis Report | Universal | Protocol distribution, top talkers, malicious traffic indicators, cleartext credentials, and anomalous patterns. |
| Database Security Report | Universal | Database authentication, privilege escalation, configuration audit, and data access analysis. |
| Firewall Assessment Report | Universal | Firewall rule analysis, overly permissive rules, shadowed rules, and compliance gaps. |
| Cloud Infrastructure Report | Universal | IAM misconfigurations, storage exposure, network security groups, and cloud access patterns. |
| Mobile Application Report | Universal | Binary analysis, API extraction, certificate pinning, data storage, and runtime security analysis. |
| File Analysis Report | Universal | File metadata, malware indicators, embedded content, and suspicious link or IP analysis. |
Invocation Methods
| Method | Usage |
|---|---|
| CLI — Direct |
cd /opt/pr0t31n/Crucible && python3 app.py
Run directly with command-line arguments. |
| Web UI |
https://localhost:5100
Flask web interface — start the app then open in browser. |
Integration
Depends On
- Scattershot3
- OSift
- Fracture
- Siphon
- AuthProbe
- Auger
- Trawler
- Aether family
- Bastion
- Forge
- Quill
- Isotope
- Dredge
- pAIn
Used By
- Nexus (health check)
Third-Party Dependencies & Credits
| Tool / Library | Developer | Type | Link |
|---|---|---|---|
| Flask | Pallets / Armin Ronacher | python | https://github.com/pallets/flask |
| Flask-SocketIO | Miguel Grinberg | python | https://github.com/miguelgrinberg/Flask-SocketIO |
| Playwright | Microsoft | python | https://github.com/microsoft/playwright-python |
| openpyxl | Eric Gazoni / Charlie Clark | python | https://github.com/theorchard/openpyxl |
| Nessus (integration) | Tenable | system | https://www.tenable.com/products/nessus |
Metadata
| Name | Crucible |
| Category | Management |
| Version | 2.152.1 |
| Install Path | /opt/pr0t31n/Crucible |
| Main File | app.py |
| Port | 5100 |
| GitHub | https://github.com/pr0t31n/Crucible.git |
| Requires | Shared |