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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/sh4den/cve-2022-23093
Анализ уязвимостейЭксплуатацияШелл-кодРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubsh4den/cve-2022-23093

CVE-2022-23093

Переполнение буфера ICMP во FreeBSD, PoC переполнения буфера FreeBSD

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

Популярное

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

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

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

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

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

CVE-2022-23093 Переполнение стека в FreeBSD

Информация

Шеллкод, используемый по умолчанию, — FreeBSD/x86-64 - execve - 28 bytes from Gitsnik. Замените его на свой собственный для начала.

Подробности уязвимости

Утилита ping, используемая для запроса ICMP ECHO_RESPONSE от хоста или шлюза, вызывается с указанием IPv4-цели (либо IPv4-host, либо IPv4-mcast-group) через обязательную дейтаграмму ECHO_REQUEST протокола ICMP. Дейтаграмма ECHO_REQUEST состоит из IP- и ICMP-заголовков, за которыми следуют структура "struct timeval" и переменное количество "pad"-байтов для заполнения пакета.

Согласно бюллетеню безопасности проекта FreeBSD, утилита ping получает из сети необработанные IP-пакеты для обработки ответов в функции pr_pack(). При обработке ответов ping восстанавливает IP-заголовок, ICMP-заголовок и, если он присутствует, "цитируемый пакет", представляющий пакет, вызвавший ошибку ICMP. Цитируемый пакет также включает IP-заголовок и ICMP-заголовок.

Функция pr_pack() копирует полученные IP- и ICMP-заголовки в стековые буферы для дальнейшей обработки. Однако она не учитывает возможность наличия заголовков IP-опций после IP-заголовка как в ответе, так и в цитируемом пакете. При наличии IP-опций pr_pack() переполняет буфер назначения на величину до 40 байт.

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

Утилита ping работает в пространстве пользователя, и при вызове команды ping выполняется бинарный файл, расположенный по пути /sbin/ping. Исходный код утилиты публично доступен в исходниках FreeBSD. Уязвимая функция pr_pack() выводит информацию об ответе ICMP-пакета в stdout в строковом формате, например: "64 bytes from 1.3.3.7: icmp_seq=1 ttl=55 time=13.7 ms."

изображение

ICMP-пакет, как в запросе, так и в ответе, содержит IP-заголовки с необязательным полем Options, как показано на диаграмме выше. При вредоносной атаке эти IP-опции включены и заполнены ненулевыми байтами.

Если ICMP-пакет повреждён или намеренно изменён на пути к узлу назначения, а в исходном эхо-запросе включены IP-опции, функции pr_pack() не удаётся выделить на стеке достаточно места для размещения IP-опций, что приводит к переполнению стека.

При таких ошибках ответ от узла назначения также может включать "цитируемый пакет" в разделе данных, идентифицирующий конкретный пакет, вызвавший ошибку ICMP. Функция pr_pack() переполняет стек, когда цитируемый пакет содержит ICMP-заголовки.

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