Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
pwneye — Your ONVIF and RTSP camera companion for discovering and hacking real-world security cameras 🎥 | Kitploit
Tools/GitHubGitHub/hackerest/pwneye
ReconnaissanceIoT SecurityPassword AttacksVulnerability AnalysisExploitationInformation GatheringNetwork SecurityPenetration TestingHardware & IoT SecurityRed Teaming
GitHubhackerest/pwneye
354531441 month agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

pwneye

Your ONVIF and RTSP camera companion for discovering and hacking real-world security cameras 🎥

View Repository

pwneye logo

version 1.3.2 codename panopticon Python 3.10+ macOS and Linux GNU GPL v3.0

pwneye is a focused and portable offensive security tool for working with IP cameras that expose ONVIF and RTSP services, aiming to give security researchers and hackers an easy way to handle discovery, authentication testing, metadata collection, stream validation, recording, and follow-up actions from a single CLI workflow.

Some of the capabilities currently supported include:

  • Local network ONVIF discovery via WS-Discovery
  • ONVIF authentication and multithreaded bruteforce with single credentials or username/password files
  • ONVIF post-auth enumeration of device information, configured users, network configuration, media profiles, and RTSP stream URIs
  • Camera reboot, factory reset, and interactive shell access via ONVIF
  • ONVIF PTZ movement from both the CLI and the dedicated viewer
  • Stream deface and restore support via ONVIF
  • RTSP port detection and banner-based vendor identification
  • Vendor-aware RTSP bruteforce with 450+ built-in vendor credential / connection-string profiles, plus manual vendor and manual connection string support
  • Multithreaded RTSP bruteforce with live progress output
  • RTSP multi-channel handling with automatic detection, guided enumeration, and interactive channel selection
  • Dedicated live preview client with zoom and fast channel switching for DVR/NVR-style targets
  • RTSP stream validation, live preview via ffplay, recording via ffmpeg, and snapshot capture
  • Per-target caching of successful ONVIF and RTSP findings under ~/.pwneye

Demo

https://github.com/user-attachments/assets/6913632b-326d-455e-aa0d-be6bf9b3e66c

Table of Contents

  • Installation and Updates
    • pipx
    • Python
    • External Dependencies
  • Getting Started
  • ONVIF
    • What ONVIF Gives You
    • Enumerating the Local Network
    • Bruteforcing Credentials
    • Rebooting a Camera
    • Resetting a Camera
    • Moving the Camera
    • Defacing a Stream
    • Undefacing a Stream
    • Getting a shell
  • RTSP
    • What RTSP Gives You
    • Identifying the Vendor
    • RTSP Bruteforce
    • Multi-Channel Streams
    • Streaming, Recording, and Snapshots
  • Tips & Tricks
  • Acknowledgements
  • Safety
  • License

Installation and Updates

pipx

Install pwneye as a system-wide CLI command from GitHub:

pipx install git+https://github.com/Hackerest/pwneye.git
pwneye --help

Uninstall it:

pipx uninstall pwneye

Upgrade it later from the same GitHub source:

pipx upgrade pwneye

Python

git clone https://github.com/Hackerest/pwneye
cd pwneye
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python3 pwneye.py --help

Upgrade it later from the same GitHub source:

cd pwneye
git pull
source .venv/bin/activate
pip install -r requirements.txt

External Dependencies

The following tools are expected in PATH depending on the mode you use:

  • ffplay
  • ffprobe
  • ffmpeg for recording
PlatformInstall command
macOS (Homebrew)brew install ffmpeg
Ubuntu / Debiansudo apt update && sudo apt install ffmpeg
Fedorasudo dnf install ffmpeg ffmpeg-free
Arch Linuxsudo pacman -S ffmpeg
openSUSEsudo zypper install ffmpeg

Getting Started

Use these as the fastest entry points into the tool. The goal here is not to document every flag, but to show the most useful ways to start working with a camera depending on what you already know.

Start from the default full workflow when you have a single target and want pwneye to do the protocol selection work for you:

pwneye -t 192.168.1.135

Start from ONVIF discovery when you are on the same local network and want to identify devices, vendors, and stream clues before touching RTSP:

pwneye --discover

Start directly from RTSP when ONVIF is irrelevant, unavailable, or you already know what you want to test:

pwneye -t 192.168.1.135 --skip-onvif

Start from known or suspected credentials when you want to reduce noise and validate access quickly:

pwneye -t 192.168.1.135 --username admin --password admin
pwneye -t 192.168.1.135 --username admin --password ~/wordlists/passwords.txt
pwneye -t 192.168.1.135 --username ~/wordlists/users.txt --password admin123

Start from a known path or a path template when you already have a stream clue and want tight control over RTSP requests:

pwneye -t 192.168.1.135 --skip-onvif -cn "/live/ch00_0"
pwneye -t 192.168.1.135 --skip-onvif -cn '/cam/realmonitor?channel={channel}&subtype=0'

Start from evidence collection once a working stream is found:

pwneye -t 192.168.1.135 --snapshot
pwneye -t 192.168.1.135 --record

Useful flags to keep in mind:

  • --vendor VENDOR: reduce RTSP requests when the device family is already known
  • -cn, --connection-string PATH: try a known RTSP path or a file containing candidate paths
  • --multi-channel: prefer channel-based RTSP paths when you suspect a DVR/NVR-style target
  • --threads N: control concurrency for ONVIF and RTSP bruteforce
  • --skip-onvif / --skip-rtsp: focus on one protocol only
  • --no-cache: do not read from or write to cache
  • --fresh: ignore cache reads but still write new findings

ONVIF

ONVIF is the management and control side of the camera world. In practice, it is useful for discovery, authentication, metadata extraction, media profile enumeration, stream URI retrieval, and device actions such as rebooting.

In pwneye, ONVIF is usually the protocol that gives the richest post-auth context, the cleanest path to understanding what a camera exposes, and, when the authenticated account has enough privileges, access to real administrative actions on the device.

What ONVIF Gives You

When a camera exposes ONVIF, pwneye can use it to:

  • discover cameras on the local network via WS-Discovery
  • test ONVIF authentication using fixed credentials or files
  • extract manufacturer and device metadata
  • retrieve RTSP stream URIs exposed by the device
  • enumerate useful post-auth context before touching RTSP more aggressively
  • request an authenticated reboot with --reboot
  • request an authenticated factory reset with --reset
  • move a PTZ-capable camera from the CLI or from the dedicated viewer
  • open an authenticated interactive shell with --shell
  • deface the stream via ONVIF with --deface
  • restore the last saved deface profile with --undeface

Enumerating the Local Network

Use WS-Discovery to identify ONVIF-capable devices on the local network:

pwneye --discover
Download Tool