Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2017-12945 — Exploit para CVE-2017-12945. | Kitploit
Herramientas/GitHubGitHub/aress31/cve-2017-12945
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlHerramienta de Acceso Remoto
GitHubaress31/cve-2017-12945

cve-2017-12945

Exploit para CVE-2017-12945.

Ver Repositorio
41hace 6 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2017-12945

Exploit para CVE-2017-12945

Existe una vulnerabilidad de inyección de comandos del sistema operativo (remota) (autenticada) (ciega) en los Mersive Solstice Pods - una plataforma inalámbrica de colaboración y presentación diseñada por Mersive Technologies Inc. - que ejecutan versiones del firmware anteriores a 2.8.4, según lo reconocido/informado en el sitio web del proveedor, consulte la captura de pantalla a continuación. Como resultado, un adversario autenticado puede ejecutar comandos arbitrarios (con privilegios de root) en los Mersive Solstice Pods vulnerables enviándoles solicitudes HTTP manipuladas.

changelog

Esta vulnerabilidad existe debido a la falta de validación de entradas/parámetros en el lado del servidor. Algunas entradas/parámetros controlados por el usuario se pasan directamente como argumentos a un método public static String runShellCommand(String command) diseñado para ejecutar comandos del sistema operativo en el contexto del usuario root. Esta configuración insegura permitiría a un adversario comprometer por completo los dispositivos vulnerables.

Referencias

Referencia CVE de Mitre:

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

Registro de cambios del proveedor:

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

Versiones afectadas

Mersive Solstice Pods que ejecutan versiones del firmware anteriores a 2.8.4.

Componentes afectados

  • 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 "";
   }
}

Vectores de ataque

Para explotar esta vulnerabilidad, un adversario autenticado necesitaría enviar una solicitud especialmente manipulada a los dispositivos que ejecutan una versión vulnerable del firmware (anterior a 2.8.4). Esta solicitud podría enviarse directamente desde la interfaz web del dispositivo (desde el formulario set static IP address) o, alternativamente, podría enviarse mediante una utilidad de línea de comandos como cURL.

En cualquier caso, la carga útil debería ir precedida de un carácter especial que indique a /bin/sh que ejecute comandos consecutivos, por ejemplo, el carácter ; o &, para que la carga útil se ejecute después de que se complete el comando original/legítimo.

El parámetro staticIP, que es uno de los múltiples parámetros vulnerables junto con el parámetro gateway, no se valida en el lado del servidor y, en su lugar, se pasa directamente como argumento al método static void SetStaticIP(String ipAddr), que a su vez lo pasa como argumento al método public static String runShellCommand(String command).

Esta configuración permitiría a un adversario autenticado ejecutar comandos arbitrarios en los dispositivos vulnerables en el contexto del usuario root.

Licencia

Copyright (C) 2019 Alexandre Teyar

Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia"); no puede utilizar este archivo excepto en cumplimiento de la Licencia. Puede obtener una copia de la Licencia en

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

Salvo que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte la Licencia para conocer los permisos específicos y las limitaciones establecidas en la Licencia.

Descargar herramienta