
Passiver Schwachstellen-Scanner für CVE-2026-1731 — BeyondTrust RS/PRA Pre-Auth RCE (CVSS 9.9). Nur für Bildungs- und Verteidigungszwecke.
╔═══════════════════════════════════════════════════════════════╗
║ ║
║ CVE-2026-1731 ║
║ BeyondTrust RS/PRA Passive Vulnerability Scanner ║
║ ║
╠═══════════════════════════════════════════════════════════════╣
║ PASSIVE SCANNER — EDUCATIONAL & AUTHORIZED USE ONLY ║
║ ║
║ Performs passive fingerprinting via standard HTTP GET. ║
║ No exploit payloads sent. No WebSocket connections. ║
║ Only use against systems you own or are authorized to test. ║
║ ║
║ Methods: BRDF version extraction, /check_health, ║
║ static asset sizing, /get_mech_list API, ║
║ HTML analysis, copyright year, /nw probe ║
║ ║
║ Author: NetGuard 24/7 LLC ║
║ Web: https://netguard24-7.com ║
╚═══════════════════════════════════════════════════════════════╝
Ein passiver Schwachstellen-Scanner für CVE-2026-1731 — eine kritische (CVSS 9.9) Remote-Code-Ausführungsschwachstelle ohne Authentifizierung in BeyondTrust Remote Support (RS) und Privileged Remote Access (PRA).
Dieses Tool identifiziert verwundbare BeyondTrust-Instanzen mithilfe ausschließlich standardmäßiger HTTP-GET-Anfragen. Es werden keine Exploit-Payloads gesendet. Es werden keine WebSocket-Verbindungen aufgebaut. Es wird keine Authentifizierung versucht.
Update: 16.02.2026
Die Anwendung des Hotfixes BT26-02-RS oder BT26-02-PRA führt dazu, dass erkannte BeyondTrust-Instanzen unterhalb von RS (v21.3 – 25.3.1) oder PRA (v22.1 – 24.X) als verwundbar erscheinen, da der Hotfix keine Versionserhöhung bewirkt. Daher erscheinen mit dem Hotfix (BT26-02-RS oder BT26-02-PRA) gepatchte Instanzen als verwundbar. Sobald die Basisversion aktualisiert wurde, erscheint die Instanz als nicht verwundbar. Laut Hersteller wird der offizielle Fix in Remote Support 25.3.2 und höher | Privileged Remote Access 25.1 und höher adressiert.
Autor: NetGuard 24/7 LLC
Dieses Tool wird ausschließlich für BILDUNGS- und AUTORISIERTE DEFENSIVE Zwecke bereitgestellt.
Sie dürfen dieses Tool NUR gegen Systeme einsetzen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben. Das unbefugte Scannen von Systemen, die Ihnen nicht gehören, kann geltende Gesetze verletzen, einschließlich des Computer Fraud and Abuse Act (CFAA) und ähnlicher Gesetze in anderen Rechtsordnungen.
Die Autoren übernehmen keine Haftung für den Missbrauch dieses Tools. Durch die Nutzung dieser Software erklären Sie sich damit einverstanden, sie verantwortungsvoll und in Übereinstimmung mit allen geltenden Gesetzen und Vorschriften zu verwenden.
| Feld | Detail |
|---|---|
| CVE | CVE-2026-1731 |
| CVSS | 9.9 (Kritisch) |
| Advisory | BT26-02 |
| Typ | Remote-Code-Ausführung ohne Authentifizierung |
| Vektor | WebSocket-Endpunkt /nw — Bash-Arithmetik-Auswertungs-Injektion |
| Betroffen | RS ≤ 25.3.1, PRA ≤ 24.3.4 |
| Behoben | RS 25.3.2+, PRA 25.1.1+ |
| Ausnutzung | Aktiv in freier Wildbahn seit dem 12. Februar 2026 |
CVE-2026-1731 ist eine Variante von CVE-2024-12356 (der Schwachstelle, die von einer chinesischen APT-Gruppe genutzt wurde, um das US-Finanzministerium zu kompromittieren). Beide zielen auf denselben /nw-WebSocket-Endpunkt und das zugrunde liegende Bash-Skript thin-scc-wrapper ab. Der BT24-10-Patch für CVE-2024-12356 fügte eine numerische Plausibilitätsprüfung hinzu, verhinderte jedoch nicht die Bash-Arithmetik-Auswertung des Parameters remoteVersion — die CVE-2026-1731 ausnutzt.
Dieser Scanner verwendet 8 passive Fingerprinting-Methoden — validiert gegen Live-BeyondTrust-Instanzen — um Produktversion und Schwachstellenstatus zu bestimmen, ohne Exploit-Traffic zu senden.
| # | Methode | Endpunkt | Was extrahiert wird | Konfidenz |
|---|---|---|---|---|
| 1 | BRDF-Versions-Extraktion | GET /get_rdf?comp=sdcust&locale_code=en-us | Exakte Produktversion aus dem Binär-Header (z. B. 24.1.4) | EXAKT |
| 2 | /check_health-Antwort | GET /check_health | "Health Check: Succeeded" = vor 25.x / "Status: Primary" = 25.x+ | HOCH |
| 3 | Statische Asset-Größe | HEAD /js/login.js | Dateigröße: ~36K-39K = vor 25.x / ~12K = 25.x+ | HOCH |
| 4 | /get_mech_list-API | GET /get_mech_list?version=3 | Firmenname + Feld thin_rep_enabled (nur 25.x+) | HOCH |
| 5 | HTML-Struktur | GET /login | XHTML 1.1 + BOMGAR = vor 25.x / HTML5 = 25.x+ | MITTEL |
| 6 | Copyright-Jahr | GET /login-Fußzeile | 2002-2024 = vor 25.x / 2002-2025 = 25.x | MITTEL |
| 7 | Portal-Info | GET /get_portal_info | X-Ns-Company-Wert (Indikator für Angreifer-Aufklärung) | — |
| 8 | WebSocket-Sonde | GET /nw (nur HTTP) | Bestätigt Erreichbarkeit der Angriffsfläche | — |
Methode 1 (BRDF) ist dieselbe Technik, die von Metasploit und Nessus-Plugin 213456 verwendet wird. Wenn BRDF eine exakte Version zurückgibt, ist die Konfidenz EXAKT. Einige 25.x-Instanzen entfernen die Version aus BRDF — in diesen Fällen werden die Methoden 2-6 bewertet und korreliert, um den Versionsbereich abzuleiten.
/nw übertragengit clone https://github.com/YOUR_USERNAME/cve-2026-1731-scanner.git
cd cve-2026-1731-scanner
chmod +x cve_2026_1731_scanner.py
python3 cve_2026_1731_scanner.py -t support.example.com -v
# Ziel-Liste erstellen (ein Host pro Zeile)
cat > targets.txt << 'EOF'
support.example.com
pra.example.com
192.168.1.50
10.0.0.100:8443
remote-support.beyondtrustcloud.com
EOF
# Scan ausführen
python3 cve_2026_1731_scanner.py -f targets.txt --threads 20 -o results.csv --json results.json -v
usage: cve_2026_1731_scanner.py [-h] (-t TARGET | -f FILE) [-o OUTPUT]
[--json JSON_OUTPUT] [--threads THREADS] [-v]
options:
-t, --target TARGET Einzelner Ziel-Hostname oder IP
-f, --file FILE Datei mit Zielen (eines pro Zeile)
-o, --output OUTPUT Ergebnisse in CSV-Datei exportieren
--json JSON_OUTPUT Ergebnisse in JSON-Datei exportieren
--threads THREADS Parallele Threads (Standard: 10)
-v, --verbose Ausführliche Ausgabe pro Ziel
Die Zieldatei akzeptiert flexible Eingaben — ein Eintrag pro Zeile:
# Kommentare werden unterstützt (Zeilen, die mit # beginnen)
192.168.1.1
10.0.0.5
support.example.com
support.example.com:8443
https://support.example.com
http://support.example.com # wird automatisch auf HTTPS aktualisiert
support.example.com/login # Pfade werden automatisch entfernt
| Stufe | Bedeutung |
|---|---|
| KRITISCH | Exakte Version über BRDF als verwundbar bestätigt, oder mehrere hochkonfidente Signale deuten auf vor 25.x hin |
| HOCH | Wahrscheinlich verwundbar, aber mit weniger bestätigenden Signalen; manuelle Verifizierung empfohlen |
| MITTEL | Als 25.x+ abgeleitet (RS könnte bis 25.3.1 weiterhin verwundbar sein); BT26-02-Patch verifizieren |
| NIEDRIG/INFO | SaaS-Instanz (automatisch gepatcht), bestätigte gepatchte Version oder bestätigt sicher |
| Konfidenz | Quelle | Bedeutung |
|---|---|---|
| EXAKT | BRDF /get_rdf | Exakte Versionszeichenfolge aus dem Binärformat extrahiert (z. B. 24.1.4) |
| HOCH | Multi-Signal (3+) | 3 oder mehr unabhängige Signale stimmen überein, 0 Widersprüche |
| MITTEL | Multi-Signal (2+) | Mehrheit der Signale stimmt überein, aber mit gewisser Mehrdeutigkeit |
| NIEDRIG | Nicht schlüssig | Widersprüchliche oder unzureichende Signale |
| Code | Bedeutung |
|---|---|
0 | Keine kritischen oder hohen Befunde |
1 | Hochrisiko-Befunde erkannt |
2 | Kritische Befunde erkannt |
# Beispiel: CI/CD-Pipeline-Integration
python3 cve_2026_1731_scanner.py -f targets.txt -o results.csv
if [ $? -eq 2 ]; then
echo "KRITISCH: Verwundbare BeyondTrust-Instanzen gefunden!"
# Alarm auslösen / Bereitschaft pagen / Ticket öffnen
fi
[*] Scanne https://support.example.com...
Status: VERWUNDBAR [KRITISCH]
Version: 24.1.4 (über BRDF /get_rdf, Konfidenz: EXAKT)
Firma: examplecorp
Produkt: Remote Support
Signale: health=old, login.js=36458B, html=modern, ©2024
/nw: ERREICHBAR
| Feld | Beschreibung |
|---|---|
target | Gescannte URL |
is_beyondtrust | Ob BeyondTrust erkannt wurde |
product_type | Remote Support oder Privileged Remote Access |
product_version | Exakte Version (falls aus BRDF extrahiert) |
version_source | Wie die Version ermittelt wurde |
version_confidence | EXAKT, HOCH, MITTEL oder NIEDRIG |
company_name | X-Ns-Company-Wert (bei Ausnutzung verwendet) |
copyright_year | Aus der Fußzeile der Login-Seite |
health_check_type | old (vor 25.x) oder new (25.x+) |
login_js_size | Dateigröße von /js/login.js |
thin_rep_enabled | Nur bei 25.x+ vorhanden |
html_generation | legacy (XHTML) oder modern (HTML5) |
is_saas | SaaS-Instanz (.beyondtrustcloud.com) |
ws_endpoint_reachable | Ob /nw antwortet |
vulnerability_status | Bewertungsergebnis |
risk_level | KRITISCH, HOCH, MITTEL, NIEDRIG oder INFO |
details | Für Menschen lesbare Bewertungsdetails |
Wenn der Scanner verwundbare Instanzen identifiziert:
/nw-WebSocket-Endpunkt einschränken, wenn ein sofortiges Patchen nicht möglich ist/nw mit ungewöhnlichen remoteVersion-Werten prüfen, die $() oder Backticks enthaltenPull-Requests sind willkommen. Wenn Sie zusätzliche passive Fingerprinting-Methoden oder Versionskorrelations-Signale entdecken, eröffnen Sie bitte ein Issue oder einen PR.
MIT-Lizenz — siehe LICENSE für Details.
NetGuard 24/7 LLC https://netguard24-7.com