Arsenal
How It Works
Arsenal is the installation and lifecycle manager for the entire pr0t31n toolkit. It provides a curses-based terminal user interface (TUI) that allows the operator to check, install, update, and uninstall every tool from a single menu. Arsenal requires root/sudo privileges because all pr0t31n tools are installed to /opt/pr0t31n/, a root-owned directory.
On launch, Arsenal scans the tool registry to determine which tools are installed, their current versions, and whether updates are available. Each tool entry in the registry specifies its GitHub repository, install path, main file, port (for web apps), dependencies on other tools, and a short description. Arsenal clones repositories using authenticated GitHub HTTPS access, runs each tool's install.py installer, and verifies the installation by checking version files.
The TUI presents a scrollable list of all registered tools with color-coded status indicators: green for installed and up-to-date, yellow for installed but outdated, red for not installed, and dim for tools whose dependencies are missing. The operator can select individual tools or batch operations across all tools. GitHub credentials are prompted once per session and cached securely — Arsenal generates a temporary git-askpass helper script to avoid exposing tokens in process arguments.
Arsenal also handles cross-tool dependency ordering. When installing a tool that depends on others (e.g., Crucible depends on Fracture and Siphon), Arsenal installs prerequisites first. Uninstallation warns about reverse dependencies before proceeding.
Security
Requires sudo for installation into /opt/pr0t31n/. GitHub authentication via SSH keys or HTTPS tokens. No credentials stored by Arsenal — uses the system's git credential configuration.
Features
Installation
Management
Registry
Security
Use Cases
Fresh Toolkit Deployment
Setting up a new pentest workstation — the operator runs Arsenal once with sudo, selects 'Install All', and walks away. Arsenal clones every tool from GitHub, installs system and Python dependencies, and verifies each installation.
Toolkit Version Audit
Before an engagement, the operator launches Arsenal to check which tools are installed and whether any have pending updates. The TUI's color-coded status makes it immediately clear which tools need attention.
Selective Tool Installation
An operator preparing for a wireless-only engagement installs just Aether, Aether-B, Aether-Z, Aether-U, and Spectre — Arsenal installs them in the correct dependency order.
Post-Engagement Cleanup
After an engagement, the operator uses Arsenal to verify all tools are at their latest versions and no partial installations remain, ensuring the workstation is ready for the next assessment.
CLI Reference
Command Examples
Install All Tools
Install every tool in the pr0t31n toolkit.
Update All Tools
Pull latest versions of all installed tools from GitHub.
Check Versions
Show installed vs. latest version for every tool.
Install Single Tool
Install a specific tool.
Third-Party Tool Invocations
Commands and flags used when this tool invokes third-party dependencies during operation.
Output Files
| File | Format | Description |
|---|---|---|
meta.json |
JSON | Tool identity and engagement metadata |
findings.json |
JSON | Universal findings array v1.1 |
findings.csv |
CSV | CSV mirror of findings |
summary.json |
JSON | Aggregated statistics |
scan.log |
TXT | Human-readable timestamped log |
scan.log.json |
JSONL | Machine-readable JSON log events |
errors.log |
TXT | ERROR-level entries only |
Invocation Methods
| Method | Usage |
|---|---|
| CLI — Direct |
cd /opt/pr0t31n/Arsenal && python3 arsenal.py
Run directly with command-line arguments. |
Integration
Used By
- Codex (reads tool registry)
- HelmAgent (remote install proxy)
Third-Party Dependencies & Credits
| Tool / Library | Developer | Type | Link |
|---|---|---|---|
| python-docx (optional) | Steve Canny | python | https://github.com/python-openxml/python-docx |
Metadata
| Name | Arsenal |
| Category | Utility |
| Version | 1.21.8 |
| Install Path | /opt/Arsenal |
| Main File | arsenal.py |
| GitHub | https://github.com/pr0t31n/Arsenal.git |