Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2017-12945 — Эксплойт для CVE-2017-12945. | Kitploit
Инструменты/GitHubGitHub/aress31/cve-2017-12945
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеИнструмент Удаленного Доступа
GitHubaress31/cve-2017-12945

cve-2017-12945

Эксплойт для CVE-2017-12945.

Репозиторий
416 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2017-12945

Эксплойт для CVE-2017-12945

Уязвимость удалённого (аутентифицированного) слепого внедрения команд ОС существует в Mersive Solstice Pods — беспроводной платформе для совместной работы и презентаций, разработанной Mersive Technologies Inc. — работающих на версиях прошивки до 2.8.4, как подтверждено/сообщено на сайте вендора, см. скриншот ниже. В результате аутентифицированный злоумышленник может выполнять произвольные команды (с правами root) на уязвимых Mersive Solstice Pods, отправляя им специально созданные HTTP-запросы.

changelog

Эта уязвимость существует из-за отсутствия проверки входных данных/параметров на стороне сервера. Некоторые контролируемые пользователем входные данные/параметры напрямую передаются в качестве аргументов методу public static String runShellCommand(String command), предназначенному для выполнения команд ОС в контексте пользователя root. Эта небезопасная конфигурация позволила бы злоумышленнику полностью скомпрометировать уязвимые устройства.

Ссылки

Ссылка Mitre CVE:

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

Журнал изменений вендора:

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

Затронутые версии

Mersive Solstice Pods, работающие на версиях прошивки до 2.8.4.

Затронутые компоненты

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

Векторы атаки

Чтобы использовать эту уязвимость, аутентифицированный злоумышленник должен отправить специально созданный запрос на устройства, работающие на уязвимой версии прошивки (до 2.8.4). Этот запрос может быть отправлен либо непосредственно из веб-интерфейса устройства (из формы set static IP address), либо, альтернативно, с помощью утилиты командной строки, такой как cURL.

В любом случае, перед полезной нагрузкой должен стоять специальный символ, указывающий /bin/sh выполнить последовательные команды, например, символ ; или &, чтобы полезная нагрузка выполнилась после завершения исходной/легитимной команды.

Параметр staticIP, который является одним из нескольких уязвимых параметров наряду с параметром gateway, не проверяется на стороне сервера и вместо этого напрямую передаётся в качестве аргумента методу static void SetStaticIP(String ipAddr), который, в свою очередь, передаёт его как аргумент методу public static String runShellCommand(String command).

Эта конфигурация позволила бы аутентифицированному злоумышленнику выполнять произвольные команды на уязвимых устройствах в контексте пользователя root.

Лицензия

Copyright (C) 2019 Alexandre Teyar

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

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

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Скачать инструмент