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

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

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

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

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

Категории

Все категории
Loading categories
pfsense-qinq-parent-if — pfSense CE 2.9.0-DEVELOPMENT — высокий уровень — удалённое выполнение кода — RCE — QinQ parent-if ifconfig | Kitploit
Инструменты/GitHubGitHub/abraxas/pfsense-qinq-parent-if
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСетевая безопасностьТестирование на ПроникновениеКомандование и УправлениеИнструмент Удаленного Доступа
GitHubabraxas/pfsense-qinq-parent-if

pfsense-qinq-parent-if

pfSense CE 2.9.0-DEVELOPMENT — высокий уровень — удалённое выполнение кода — RCE — QinQ parent-if ifconfig

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

Популярное

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

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

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

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

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

Abraxas Labs - pfsense-qinq-parent-if

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-qinq-parent-if

pfsense-qinq-parent-if

Класс: RCE Достижимость: Удалённая

pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org

Редактирование QinQ сохраняет имя родительского интерфейса без проверки does_interface_exist. Редактирование VLAN уже отклоняет родителя, который не является активным интерфейсом. Form_Select не выполняет повторную валидацию POST. Создание выполняет write_config даже когда interface_qinq_configure завершается досрочно. Добавление/удаление участника затем подставляет сохранённый vlanif в неэкранированный ifconfig. PHP exec — это /bin/sh -c. WebGUI PHP-FPM работает от root. Привилегия — page-interfaces-qinq-edit, а не Diagnostics: Command.

IDCVE пока нет
КлассRCE
ДостижимостьУдалённая (аутентифицированный WebGUI)
CWECWE-78
CVSSHigh: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ПродуктpfSense CE
Затронуто2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) редактирование QinQ
АутентификацияСессия WebGUI с page-interfaces-qinq-edit
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Я зафиксировал публичный master 9363ac5. Лаборатория — это PHP-гаджет из зафиксированных строк vlan_interface / interface_qinq_configure / member exec, HTTP на loopback 127.0.0.1:18810.

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

МетодТочка срабатыванияПривилегия
POST создание QinQ с родителем, который не является активным интерфейсом, затем POST редактирование с добавлением участникаinterface_qinq2_configure exec ifconfig vlan create ... (interfaces.inc:620)Целостность (доказано в лаборатории): root-шелл через /bin/sh -c. Лаборатория: добавление участника qinq2 записало свидетельство (member-sink=yes).
Тот же сохранённый vlanif, POST редактирование с удалением участникаexec("/sbin/ifconfig {$parent}.{$tag} destroy") (interfaces_qinq_edit.php:212)Целостность (доказано в лаборатории): тот же root exec. У destroy нет ограничения IF_NAMESIZE.
Тот же root-шеллфайловая система хостаРазведка (предположительно): config.xml, ключи, другие арендаторы. Эта страница не выводит результат exec.
Root-шелл или сломанный ifconfigустройства vlanДоступность (предположительно): создание/удаление устройств vlan; плоскость данных задействована.

Доказано в лаборатории vs предположительно: отклонение VLAN, создание без exec, блокировка IF_NAMESIZE при длине 16 и свидетельство добавления участника qinq2 доказаны в лаборатории. Разведка файловой системы и нарушение плоскости данных предполагаются исходя из root PHP-FPM.

Требуется: сессия WebGUI с page-interfaces-qinq-edit. CSRF-токен. Два POST-запроса (создание, затем редактирование участника). У администратора по умолчанию есть эта страница. Ограниченному пользователю можно выдать только эту страницу.

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

ПоверхностьЛаборатория
Проверка существования родителя VLANvlan-rejected=yes
QinQ только создание (родитель отсутствует)сохраняет конфигурацию, create-no-exec=yes
Длина имени qinq2 16if-namesize-block=yes перед exec
Без аутентификации / CSRF без токенаguiconfig + CSRF-magic
Regex имён GIF/GRE, участники LAGG does_interface_exist + escapeshellargдругие страницы
Удаление из списка QinQ никогда не созданного родителяdoes_interface_exist($vlanif)
Diagnostics: Commandостаётся закрытой, если не выдана дополнительно

Никакого Diagnostics: Command. Никакого доступа без аутентификации. Исторический класс — CVE-2023-42326 GIF/GRE, другая страница.

Лаборатория

cd lab
./run.sh

Loopback 127.0.0.1:18810. Проект Compose pfsense-qinq-parent-if. Тег образа pfsense-qinq-parent-if:2.9.0-dev. Свидетельство PFSENSE-QINQ-PARENT-IF-WITNESS. Последняя строка:

SUCCESS PFSENSE-QINQ-PARENT-IF vlan-rejected=yes create-no-exec=yes member-sink=yes if-namesize-block=yes PFSENSE-QINQ-PARENT-IF-WITNESS

Исправление

Редактирование QinQ: отклонять родителя, который не является активным интерфейсом, так же как при редактировании VLAN. Проверка целочисленности тегов участников уже существует; всё равно применять escapeshellarg к сохранённому vlanif перед каждым ifconfig. Ограничивать destroy при удалении участника так же, как interface_qinq2_configure ограничивает IF_NAMESIZE.

Ссылки

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • interfaces_qinq_edit.php
  • interfaces.inc interface_qinq2_configure
  • Контраст с VLAN: interfaces_vlan_edit.php
  • Исторический класс (GIF/GRE, не эта страница): CVE-2023-42326
  • CWE-78
Скачать инструмент