Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2017-12945 — Exploit per CVE-2017-12945. | Kitploit
Strumenti/GitHubGitHub/aress31/cve-2017-12945
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and ControlStrumento di Accesso Remoto
GitHubaress31/cve-2017-12945

cve-2017-12945

Exploit per CVE-2017-12945.

Vedi Repository
416 anni 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

CVE-2017-12945

Exploit per CVE-2017-12945

Esiste una vulnerabilità di iniezione di comandi del sistema operativo (remota) (autenticata) (blind) nei Mersive Solstice Pods - una piattaforma wireless per collaborazione e presentazioni progettata da Mersive Technologies Inc. - con versioni del firmware precedenti alla 2.8.4, come riconosciuto/segnalato sul sito web del fornitore, vedere lo screenshot qui sotto. Di conseguenza, un avversario autenticato può eseguire comandi arbitrari (con privilegi di root) su pod Mersive Solstice vulnerabili inviando loro richieste HTTP appositamente formulate.

registro modifiche

Questa vulnerabilità esiste a causa della mancanza di convalida degli input/parametri lato server. Alcuni input/parametri controllati dall'utente vengono passati direttamente come argomenti a un metodo public static String runShellCommand(String command) progettato per eseguire comandi del sistema operativo nel contesto dell'utente root. Questa configurazione insicura consentirebbe a un avversario di compromettere completamente i dispositivi vulnerabili.

Riferimenti

Riferimento CVE Mitre:

  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12945

Registro modifiche del fornitore:

  • https://documentation.mersive.com/content/pages/release-notes.htm

Versioni interessate

Mersive Solstice Pods con versioni del firmware precedenti alla 2.8.4.

Componenti interessati

  • com/mersive/solstice/server/EthernetInterface.java:
root@kitploit:~
static void SetPrefixLength(int prefixLength) {
    int value = -1 << (32 - prefixLength);
    try {
        Log.d("Ethernet", "complete: " + ServerDisplay.runShellCommand("ifconfig eth0 netmask " + InetAddress.getByAddress(new byte[]{(byte) (value >>> 24), (byte) ((value >> 16) & 255), (byte) ((value >> 8) & 255), (byte) (value & 255)}).getHostAddress()));
    } catch (Exception e) {
        e.printStackTrace();
    }
}

static void SetGateway(String gateway) {
    if (!gateway.equals(GetGateway())) {
        Log.d("Ethernet", "complete: " + ServerDisplay.runShellCommand("ip route del default"));
        Log.d("Ethernet", "complete: " + ServerDisplay.runShellCommand("ip route add default via " + gateway + " dev " + ETH0));
    }
}

static void SetStaticIP(String ipAddr) {
    Log.d("Ethernet", "complete: " + ServerDisplay.runShellCommand("ifconfig eth0 " + ipAddr));
}
  • com/mersive/solstice/server/ServerDisplay.java:
root@kitploit:~
public static String runShellCommand(String command) {
   return runShellCommand(command, true);
}

public static String runShellCommand(String command, boolean wait) {
   Log.d("Shell Command", command);
   try {
       Process process = Runtime.getRuntime().exec("shell-tunnel --client");
       DataOutputStream stdin = new DataOutputStream(process.getOutputStream());
       InputStream is = process.getInputStream();
       stdin.writeBytes(command + "\n");
       stdin.flush();
       stdin.writeBytes("exit\n");
       stdin.flush();
       if (wait) {
           process.waitFor();
       }
       byte[] buffer = new byte[1024];
       Arrays.fill(buffer, 0);
       return new String(buffer, 0, is.read(buffer));
   } catch (Exception e) {
       e.printStackTrace();
       return "";
   }
}

Vettori di attacco

Per sfruttare questa vulnerabilità, un avversario autenticato dovrebbe inviare una richiesta appositamente formulata a dispositivi che eseguono una versione vulnerabile del firmware (precedente alla 2.8.4). Questa richiesta potrebbe essere inviata direttamente dall'interfaccia web del dispositivo (dal modulo set static IP address) oppure, in alternativa, tramite un'utilità a riga di comando come cURL.

In entrambi i casi, il payload dovrebbe essere preceduto da un carattere speciale che istruisca /bin/sh a eseguire comandi consecutivi, ad esempio il carattere ; o &, affinché il payload venga eseguito dopo il completamento del comando originale/legittimo.

Il parametro staticIP, che è uno dei molteplici parametri vulnerabili insieme al parametro gateway, non viene convalidato lato server e viene invece passato direttamente come argomento al metodo static void SetStaticIP(String ipAddr), che a sua volta lo passa come argomento al metodo public static String runShellCommand(String command).

Questa configurazione consentirebbe a un avversario autenticato di eseguire comandi arbitrari sui dispositivi vulnerabili nel contesto dell'utente root.

Licenza

Copyright (C) 2019 Alexandre Teyar

Concesso in licenza secondo l'Apache License, Versione 2.0 (la "Licenza"); non è consentito utilizzare questo file se non in conformità con la Licenza. È possibile ottenere una copia della Licenza all'indirizzo

http://www.apache.org/licenses/LICENSE-2.0

Salvo quanto diversamente previsto dalla legge o concordato per iscritto, il software distribuito con la Licenza è distribuito "COSÌ COM'È", SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, esplicite o implicite. Vedere la Licenza per il linguaggio specifico che regola le autorizzazioni e le limitazioni previste dalla Licenza.

Scarica lo strumento