Arsenal

Utility v1.21.8 — Installer and manager for the pr0t31n toolkit — checks, installs, updates, and uninstalls all pr0t31n tools.
1
Dependencies

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

One-Command Install
Each tool is installed with a single menu selection — Arsenal handles cloning, dependency installation, and post-install setup automatically.
Multi-Platform Support
Detects Linux and macOS, selects the correct package manager (apt-get or brew), and handles platform-specific installation steps.
Dependency-Ordered Installation
Resolves cross-tool dependencies and installs prerequisites before dependent tools, preventing broken installations.

Management

Version Checking
Reads each tool's VERSION file and compares against the latest version available in the repository to identify outdated installations.
Batch Operations
Install, update, or uninstall all tools at once, or select individual tools from the TUI menu.
Curses TUI
Full-featured terminal interface with color-coded status indicators, scrollable tool list, and keyboard navigation.
38+ Tool Registry
Tracks all pr0t31n toolkit tools with install path, main file, port, service name, dependencies, and GitHub URL
6-Platform Service Management
Creates and manages services on systemd, SysVinit, OpenRC, launchd, Windows SC, and OpenBSD rcctl
Running Version Detection
Probes running Flask apps via /api/nexus-status HTTP endpoint, falls back to systemctl status check

Registry

Tool Registry
Centralized registry of all pr0t31n tools with metadata: name, path, main file, port, Flask status, dependencies, and description.
Port Conflict Detection
Identifies tools that share ports and warns about potential conflicts when multiple web apps are installed.

Security

Secure Credential Handling
GitHub credentials are prompted once per session, read via /dev/tty with echo disabled, and passed to git via a temporary askpass helper — never exposed in process arguments or environment variables.
Reverse Dependency Warnings
Before uninstalling a tool, Arsenal warns if other installed tools depend on it, preventing accidental breakage.
GitHub Credential Caching
Session-scoped PAT reading from /dev/tty with echo disabled — prompted once, reused for all operations, never stored on disk

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

sudo python3 arsenal.py --install-all

Install every tool in the pr0t31n toolkit.

Update All Tools

sudo python3 arsenal.py --update-all

Pull latest versions of all installed tools from GitHub.

Check Versions

python3 arsenal.py --status

Show installed vs. latest version for every tool.

Install Single Tool

sudo python3 arsenal.py --install Fracture

Install a specific tool.

Third-Party Tool Invocations

Commands and flags used when this tool invokes third-party dependencies during operation.

git
Repository cloning, updating, and version management for all toolkit tools
git clone <url> <path>
git pull
git log --oneline -1
systemctl
Linux systemd service management for Flask applications
systemctl daemon-reload
systemctl enable <svc>
systemctl start <svc>
launchctl
macOS service management via launchd plists
launchctl load -w <plist>

Output Files

FileFormatDescription
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

MethodUsage
CLI — Direct cd /opt/pr0t31n/Arsenal && python3 arsenal.py

Run directly with command-line arguments.

Integration

Used By

Third-Party Dependencies & Credits

Tool / LibraryDeveloperTypeLink
python-docx (optional) Steve Canny python https://github.com/python-openxml/python-docx

Metadata

NameArsenal
CategoryUtility
Version1.21.8
Install Path/opt/Arsenal
Main Filearsenal.py
GitHubhttps://github.com/pr0t31n/Arsenal.git