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

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

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

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

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

Категории

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

opnsense-lockout-factory-ip

OPNsense 26.7.6 — высокий — удалённый — остаточные привилегии — блокировка заводского IP

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

Популярное

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

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

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

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

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

Abraxas Labs - opnsense-lockout-factory-ip

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-lockout-factory-ip

opnsense-lockout-factory-ip

Класс: Остаточные привилегии Достижимость: Удалённая

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

Неаутентифицированный вход в WebGUI по-прежнему управляет lockout_handler из заводской строки LOG_AUTH, в которой нет IP сокета. GHSA-2v2x закрыл CRLF-разделение и переключил выбор IP для блокировки на последний токен, чтобы завершающий from REMOTE_ADDR в authgui.inc побеждал. AuthenticationFactory::authenticate() по-прежнему пишет в syslog() необработанное имя пользователя без суффикса адреса. Имя пользователя, совпадающее с False-фразой блокировки плюс IPv4-токен, становится последним (единственным) адресом в этой строке. После стандартных 5 попыток с интервалами: pfctl -t sshlockout -T add и pfctl -k. По умолчанию: блокировка включена, GUI в LAN.

IDCVE пока нет
КлассОстаточные привилегии
ДостижимостьУдалённая (неаутентифицированный POST-вход в WebGUI)
CWECWE-117 / CWE-863
CVSSВысокий: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ПродуктOPNsense core (Deciso B.V.)
ЗатронутоOPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) AuthenticationFactory / lockout_handler
АутентификацияНе требуется. CSRF-cookie + токен из GET /.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Я зафиксировал тег 26.7.6. Лаборатория — это зафиксированный lockout_handler плюс PATH-заглушка pfctl, идентичность loopback 127.0.0.1:18800. Это не CRLF. Одна запись PHP syslog остаётся одной строкой обработчика. Last-IP был правильным усилением для шаблона authgui и неправильным усилением для заводского шаблона.

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

МетодТочка сбросаПривилегия
Неаутентифицированное имя пользователя заводского LOG_AUTH с False-фразой блокировки плюс IPv4-токен (6 строк с интервалами)закрепление lockout_handler -> заглушка pfctl -t sshlockout -T add и pfctl -kЦелостность (доказано в лаборатории): таблица sshlockout плюс argv для уничтожения состояний. Лаборатория: planted=203.0.113.77.
то же закрепление, живой pffilter.lib.inc:293-314 from <sshlockout> to (self) порты 22/GUIДоступность (предположительно): отбрасывание новых TCP 22/GUI с закреплённого хоста; pfctl -k уничтожает существующие состояния с этого IP.
то же имя пользователя только с IPv4 (без False-фразы)lockout_handlerОтрицательный (доказано в лаборатории): добавления в таблицу нет. negative-ip-only=no.
строка authgui с завершающим from REMOTE_ADDRпарсер last-IPЦелостность собственного IP (доказано в лаборатории): последний токен authgui остаётся 198.51.100.10.
тело неудачного входанетРазведка (доказано в лаборатории, закрыто): существующее "Wrong username or password." Перечисления пользователей нет.

Доказано в лаборатории vs предположительно: заводское закрепление, отрицательный результат только с именем пользователя и last-IP authgui — УСПЕХ в лаборатории. Блокировка живым pf и уничтожение живых сессий — предположительно. Закреплённый lockout_handler скопирован без изменений; syslog-ng и POST WebGUI заглушены.

Требуется: Неаутентифицированный POST-вход в WebGUI. CSRF-cookie + токен из GET /. Блокировка включена (system.no_sshlockout не установлен). Установка по умолчанию.

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

ПоверхностьЛаборатория
Неаутентифицированная сессия / root / запись config.xmlзакрыто
Строка authgui, закрепляющая чужой IPпоследний токен — REMOTE_ADDR (authgui-last-ip=198.51.100.10)
Дополнительный readline() через CRLFпереписывание GHSA-2v2x; одна запись остаётся одной строкой
Вход с пустым паролемauthgui.inc требует непустой пароль
Сброс по success-keyword CVE-2026-44195 в строке authguiсначала правила failure
TypeError pfctl -k str(ip) Omar Habra в 26.7.6уже на этой фиксации
Закреплённый IP как назначение DNS/шлюзаправила только from <sshlockout> to (self) порты 22/GUI

Никакого пропуска входа. Никакого RCE. Никакой перезаписи config.xml. Сессия не создаётся.

Лаборатория

cd lab
./run.sh

Loopback 127.0.0.1:18800. Проект Compose opnsense-lockout-factory-ip. Тег образа opnsense-lockout-factory-ip:26.7.6. Свидетель OPNSENSE-LOCKOUT-FACTORY-IP-WITNESS. Последняя строка:

SUCCESS opnsense-lockout-factory-ip planted=203.0.113.77 table=sshlockout negative-ip-only=no authgui-last-ip=198.51.100.10 OPNSENSE-LOCKOUT-FACTORY-IP-WITNESS

Исправление

Добавьте IP сокета в заводской шаблон syslog(LOG_AUTH), тот же завершающий from REMOTE_ADDR, что и в authgui.inc. Или игнорируйте IP блокировки, которые пришли не от собственного пира обработчика. Не рассматривайте last-token как замену "адреса клиента".

Ссылки

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • AuthenticationFactory.php
  • lockout_handler
  • Именованный разбор (не этот остаток): закрепление first-IP через CRLF в GHSA-2v2x
  • CWE-117 / CWE-863
Скачать инструмент