Detection Process
The detection process occurs in theExecute_Cam.run() method (lib/camlib.py:166-225) and follows these steps:
RTSP Banner Retrieval
BloodCat sends an RTSP OPTIONS request to the target camera and extracts the
Server header from the response.Banner Analysis
The server banner is converted to lowercase and checked against known brand identifiers.
Configuration Selection
Based on the detected brand, BloodCat loads the appropriate users and RTSP paths from the
CamLib class.Banner Detection Implementation
The__get_rtsp_banner() method (lib/camlib.py:228-250) retrieves the RTSP server banner:
The method sends a standard RTSP OPTIONS request and parses the
Server: header using regex. A 5-second timeout prevents hanging on unresponsive targets.Brand Matching Logic
Therun() method performs case-insensitive banner matching:
Detection Flow Diagram
Successful Detection
- RTSP OPTIONS request sent
- Server banner extracted
- Brand keyword matched (e.g., “hikvision”)
- Brand-specific config loaded
- Optimized brute-force begins
Unknown Device
- RTSP OPTIONS request sent
- Server banner extracted
- No brand keyword matched
- Default path list used (19 paths)
- Generic brute-force begins
Fallback Behavior
When BloodCat encounters an unknown or clone device, it uses a comprehensive fallback configuration:Default Users
Default Users
admin username is tested for unknown devices to reduce brute-force time.Default Paths (19 total)
Default Paths (19 total)
Banner Examples
Typical RTSP server banners that BloodCat detects:| Brand | Example Server Banner |
|---|---|
| Hikvision | RTSP Server/Hikvision-RtspServer |
| Dahua | RTSP Server/1.0 (Dahua IP Camera) |
| Axis | AXIS Communications/1.0 |
| Unknown | RTSP Server/1.0 or N/A |
Detection Efficiency
By detecting the camera brand, BloodCat significantly reduces brute-force time:
- Hikvision: 3 users × 6 paths × 33 passwords = 594 total combinations
- Unknown device: 1 user × 19 paths × 33 passwords = 627 total combinations
- Without detection: Would need to test all possible combinations across all brands
supervisor for Hikvision or system for Dahua), which increases success rates.BloodCat tests 33 common default passwords including
admin, 123456, password, 12345678, and others commonly found in IoT devices. See lib/camlib.py:130-164 for the complete password list.