Quiver

Utility v1.27.3 Flask App :5200 — Hardware hacking command centre — 45-device registry with SSH, serial, and WebSocket shells for Hak5 and offensive security hardware.
12
Dependencies
5200
Port

How It Works

Quiver is a Flask/SocketIO web application for managing penetration testing hardware devices. It provides a centralized interface for configuring, connecting to, and operating the physical tools used in hardware and wireless assessments — from Hak5 devices and Proxmark RFID readers to serial-attached microcontrollers and WiFi Duck keystroke injectors.

Each device registered in Quiver is assigned a shell type that determines how the operator interacts with it. SSH shells use paramiko for network-attached devices like Hak5 gear or Raspberry Pi drop devices. Serial shells use pyserial for REPL/VCP console connections to microcontrollers and embedded devices. Process shells spawn PTY subprocesses for tools like Proxmark3 (pm3), RfCat (rfcat -r), GreatFET (gf shell), or J-Link (JLinkExe). WebSocket shells relay to devices like WiFi Duck that expose a ws:// endpoint. Devices that only support libusb (no interactive CLI) are marked as none shell type.

The browser-based interface provides interactive terminals for each device via Socket.IO, with real-time input/output streaming. Operators can open multiple device terminals simultaneously, manage device inventories (IPs, credentials, connection parameters), and deploy payloads to supported devices. Quiver mirrors the Gauntlet UI theme system for visual consistency across the toolkit's web applications.

Quiver stores device configurations locally and provides payload management — operators can browse, edit, and push payload scripts to devices that support them (e.g., Hak5 Rubber Ducky payloads, WiFi Duck scripts, Proxmark Lua scripts).

Security

Quiver uses the shared _auth.py authentication module. On first launch, credentials are initialized via _auth.init_auth(). All sessions are protected with secure, HTTP-only, SameSite=Lax cookies with a 30-minute expiration. Security headers (Cache-Control, Pragma, Expires for HTML responses) are applied via _auth.apply_security_headers().

Device credentials (SSH passwords, serial parameters) are stored locally in Quiver's configuration. The application is designed to run on the operator's workstation — it should not be exposed to untrusted networks. WebSocket connections for device terminals are authenticated through the Flask session.

Features

Connectivity

WebSocket Device Relay
Connects to devices exposing WebSocket interfaces (e.g., WiFi Duck at ws://192.168.4.1/ws) and relays I/O through the Quiver terminal.

Device Management

Multi-Protocol Shell Support
Five shell types cover the full range of pentest hardware: SSH (network), serial (UART/VCP), process (PTY subprocess), WebSocket (WiFi Duck relay), and none (libusb-only).
Device Inventory
Register and manage devices with IP addresses, SSH credentials, serial port parameters, connection strings, and descriptive metadata.
Auto-Detection
Serial port enumeration via pyserial for discovering attached USB/serial devices.

Interactive Terminals

Browser-Based Terminals
Full interactive terminal sessions streamed via Socket.IO, supporting real-time input/output for each connected device.
Multi-Device Sessions
Open simultaneous terminal sessions to multiple devices, each in its own tab or pane in the browser interface.
PTY Process Management
Spawns and manages PTY subprocesses for tools like pm3, rfcat, gf shell, and JLinkExe with proper terminal emulation.

Payload Management

Payload Library
Browse, edit, and manage payload scripts organized by device type (Rubber Ducky, WiFi Duck, Proxmark Lua, etc.).
Payload Deployment
Push payloads directly to connected devices that support script upload.

UI

Gauntlet Theme System
Mirrors the Gauntlet UI theme for visual consistency with other pr0t31n toolkit web applications.

Use Cases

Hardware Assessment Device Orchestration

During a hardware penetration test, the operator manages all connected assessment tools (Proxmark3, logic analyzer, Bus Pirate, JTAG debugger) from a single browser interface, switching between device terminals without physically reconnecting.

Wireless Device Management

For wireless assessments involving multiple Hak5 devices (WiFi Pineapple, Packet Squirrel, Shark Jack), the operator registers each device's IP and SSH credentials in Quiver and opens simultaneous terminal sessions.

Payload Development and Deployment

An operator develops Rubber Ducky payloads in Quiver's payload editor, tests them iteratively by pushing to the connected device, and maintains a library of engagement-specific scripts.

Serial Device Interaction

When testing embedded systems with UART debug ports, the operator connects via serial shell to interact with the device's bootloader or debug console directly from the browser.

CLI Reference

Command Examples

Start Quiver

sudo python3 app.py

Launch the Hak5 device management dashboard.

Custom Port

sudo python3 app.py --port 5200

Run on an alternate port.

Third-Party Tool Invocations

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

paramiko
SSH client library for connecting to network-attached devices
pip3 install paramiko
pyserial
Serial port communication for UART/VCP console connections
pip3 install pyserial
websocket-client
WebSocket relay for WiFi Duck and similar WS-enabled devices
pip3 install websocket-client
Flask
Web application framework for the device management UI
pip3 install flask
Flask-SocketIO
Real-time bidirectional communication for interactive device terminals
pip3 install flask-socketio
Proxmark3 (pm3)
RFID/NFC assessment tool launched as a PTY process shell
pm3 /dev/ttyACM0
rfcat
Sub-GHz radio assessment tool launched as a PTY process shell
rfcat -r

Invocation Methods

MethodUsage
CLI — Direct cd /opt/pr0t31n/Quiver && python3 app.py

Run directly with command-line arguments.

Web UI https://localhost:5200

Flask web interface — start the app then open in browser.

Integration

Used By

Third-Party Dependencies & Credits

Tool / LibraryDeveloperTypeLink
Flask Pallets / Armin Ronacher python https://github.com/pallets/flask
Flask-SocketIO Miguel Grinberg python https://github.com/miguelgrinberg/Flask-SocketIO
paramiko Jeff Forcier python https://github.com/paramiko/paramiko
pyserial Chris Liechti python https://github.com/pyserial/pyserial
esptool Espressif Systems python https://github.com/espressif/esptool
pyflipper Flipper Devices community python https://github.com/wh00hw/pyFlipper
pyhackrf dressel / HackRF community python https://github.com/dressel/pyhackrf
scapy Philippe Biondi / SecDev python https://github.com/secdev/scapy
Cynthion / LUNA Great Scott Gadgets python https://github.com/greatscottgadgets/cynthion
FaceDancer Great Scott Gadgets python https://github.com/greatscottgadgets/facedancer
GreatFET Great Scott Gadgets python https://github.com/greatscottgadgets/greatfet
pyocd pyOCD contributors / Chris Reed python https://github.com/pyocd/pyOCD

Metadata

NameQuiver
CategoryUtility
Version1.27.3
Install Path/opt/pr0t31n/Quiver
Main Fileapp.py
Port5200
GitHubhttps://github.com/pr0t31n/Quiver.git