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

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

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

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

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

Категории

Все категории
Loading categories
opnsense-tunables-loader — OPNsense 26.7.6 — высокий уровень — удалённо — инъекция строк конфигурации — загрузчик tunables | Kitploit
Инструменты/GitHubGitHub/abraxas/opnsense-tunables-loader
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийАудит конфигурацииВиртуализация для безопасностиТестирование на ПроникновениеЛаборатории и Практика
GitHub
abraxas/opnsense-tunables-loader

opnsense-tunables-loader

OPNsense 26.7.6 — высокий уровень — удалённо — инъекция строк конфигурации — загрузчик tunables

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

Популярное

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

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

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

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

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

Abraxas Labs - opnsense-tunables-loader

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-tunables-loader

opnsense-tunables-loader

Класс: Инъекция строки конфигурации Достижимость: Удалённая

Ядро OPNsense 26.7.6 (a842fe48) - opnsense.org

System: Advanced: Tunables по-прежнему интерполирует имя/значение в /boot/loader.conf. Оставшийся родственник GHSA-fq94. Tunables.xml tunable / value — это простые TextField (переводы строк включены). system_login_configure() записывает {$param}="{$value}". Переконфигурация Tunables также перезапускает login. Живой sysctl(8) проходит через shell_safe плюс фильтр OID, так что этот переход не является shell-инъекцией. Остаток — это дополнительные директивы loader при следующей загрузке. Привилегия — page-system-advanced-sysctl, а не page-all.

Этот пакет на GitHub остаётся приватным до скоординированного раскрытия.

IDCVE пока нет
КлассИнъекция строки конфигурации
ДостижимостьУдалённая (аутентифицированный WebGUI / API)
CWECWE-93
CVSSВысокий: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ПродуктOPNsense core
Затронуто26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) System: Advanced: Tunables
АутентификацияСессия WebGUI или ключ API с page-system-advanced-sysctl
ЛицензияGNU Affero GPL v3.0
Лабораторияcompose exec gadget (hunt slot 18850)

Я зафиксировал тег 26.7.6 peel a842fe48. Лаборатория — это PHP-гаджет зафиксированной интерполяции system_login_configure(). Compose-проект opnsense-tunables-loader. Hunt slot 18850 в семействе гаджетов 18800-18860; этот compose-файл использует docker compose exec php, а не опубликованный HTTP-биндинг.

Что может сделать атакующий

МетодSinkПривилегия
Значение Tunables с CR/LF (hw.usb.no_boot_wait плюс "\n# witness)закрепить в system_login_configure() дополнительную строку в /boot/loader.confЦелостность (доказано в лаборатории): дополнительный # OPNSENSE-TUNABLES-LOADER-WITNESS на отдельной строке после закрытого присваивания. Лаборатория: newline-extra-line=yes.
Чистое значение 1тот же writerОтрицательный результат (доказано в лаборатории): одна строка присваивания, без witness. Лаборатория: clean-value-single-line=yes.
Те же дополнительные строки loader при следующей загрузкеloader init_path / module_path / *_load / vfs.root.mountfrom / consoleЦелостность (предположительно): loader при следующей загрузке учитывает ключи атакующего. Перезагрузка в этом гаджете не выполнялась.
Мусорные строки loader / неверный vfs.root.mountfrom/boot/loader.confДоступность (предположительно): сбой загрузки или неверный root.
POST /api/core/tunables/searchItemAPI tunablesРазведка (предположительно): список tunables, включая current/default/type. Предназначено для этого ACL.
Живой sysctl -w валидного OIDset_sysctl + фильтр OIDПредназначенная задача страницы. Дополнительные строки loader — это остаток.

Доказано в лаборатории vs предположительно: дополнительная строка loader через перевод строки и однострочное чистое значение — УСПЕХ в лаборатории. Применение loader при следующей загрузке — предположительно. Гаджет, а не полноценная FreeBSD VM OPNsense.

Требуется: вошедший в систему пользователь или его Local API key с page-system-advanced-sysctl и без page-all. POST /api/core/tunables/*. CSRF при POST через сессию. Переконфигурация перезапускает login; rc.reload_all и загрузка также вызывают system_login_configure.

Смежная поверхность, которая остаётся закрытой

ПоверхностьЛаборатория
Shell-инъекция в живом sysctlshell_safe плюс фильтр OID
Чистое значениеодна строка присваивания
Без аутентификации401
Пользователь без page-system-advanced-sysctl403
user-config-readonlysave() выбрасывает исключение
Администратор tunables с page-all, задающий реальный OIDпредназначено
Исправленные текстовые поля GUI из GHSA-fq94другие sink; это поле не было названо

Без аутентификации — нет. Живого shell sysctl — нет. Diagnostics: Command — нет.

Лаборатория

cd lab
./run.sh

Compose-проект opnsense-tunables-loader. Witness OPNSENSE-TUNABLES-LOADER-WITNESS. Последняя строка:

SUCCESS opnsense-tunables-loader newline-extra-line=yes clean-value-single-line=yes OPNSENSE-TUNABLES-LOADER-WITNESS

Корневой лаунчер: python3 opnsense-tunables-loader-Abraxas-Labs.py.

Исправление

Удаляйте CR/LF и " из имени и значения tunables, тот же класс, что и GHSA-fq94. Типизируйте имя как маску OID, а не как простой TextField. Заключайте в кавычки с помощью помощника, который не может закрыть присваивание. Не записывайте tunable в /boot/loader.conf, если это не известный ключ loader.

Ссылки

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • system.inc интерполяция loader.conf в system_login_configure
  • Tunables.xml простые TextField для имени/значения
  • Родственный (другие текстовые поля GUI, не этот sink): GHSA-fq94
  • CWE-93
Скачать инструмент