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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2023-25136-PoC — Минимальная среда воспроизведения на основе Docker для уязвимости double-free до аутентификации в OpenSSH 9.1p1 (CVE-2023-25136), демонстрирующая повреждение памяти и отказ в обслуживании через PoC-клиент на Python. | Kitploit
Инструменты/GitHubGitHub/lane0218/cve-2023-25136-poc
Анализ уязвимостейЭксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHublane0218/cve-2023-25136-poc

CVE-2023-25136-PoC

Минимальная среда воспроизведения на основе Docker для уязвимости double-free до аутентификации в OpenSSH 9.1p1 (CVE-2023-25136), демонстрирующая повреждение памяти и отказ в обслуживании через PoC-клиент на Python.

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

Популярное

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

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

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

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

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

Воспроизведение уязвимости CVE-2023-25136

Данный проект предоставляет минимальную локальную экспериментальную среду для воспроизведения уязвимости повреждения памяти double free до аутентификации в OpenSSH 9.1p1 (CVE-2023-25136) и наблюдения за эффектом аварийного завершения серверного процесса (DoS).

Примечание: официальные и основные анализы сходятся во мнении, что при конфигурации безопасности по умолчанию данную уязвимость «сложно реально эксплуатировать для удалённого выполнения кода»; данная среда в первую очередь предназначена для демонстрации ошибки памяти и эффекта отказа в обслуживании.

Описание среды

  • Целевая машина (Target):

    • Сервер OpenSSH 9.1p1, работающий в Docker-контейнере
    • Настроен пользователь разделения привилегий sshd
    • Для удобства наблюдения за сбоем double free при сборке использовался --with-sandbox=no, отключающий песочницу seccomp
    • Внутри контейнера прослушивается порт 22, наружу проброшен на порт 2222 хостовой машины (WSL)
  • Машина атакующего (Attacker):

    • Находится на том же хосте / в той же WSL, что и целевая машина
    • Использует Python3 + paramiko для запуска PoC, формирует определённый идентификатор SSH-клиента и инициирует рукопожатие до аутентификации

Структура каталога:

  • Dockerfile: собирает образ среды с уязвимым OpenSSH 9.1p1
  • poc.py: минимальный PoC-клиент для запуска double free на этапе до аутентификации

Предварительные требования

Перед выполнением указанных ниже действий в этом каталоге убедитесь, что:

  • Установлен Docker (в WSL2 рекомендуется использовать Docker Desktop или установить Docker непосредственно в WSL)
  • Установлены Python 3 и pip

1. Настройка целевой машины (OpenSSH 9.1p1 в Docker)

  1. Сборка образа

Выполните в этом каталоге:

docker build -t sshd-9.1p1-vuln .
  1. Запуск контейнера
docker run --rm -d --name sshd-vuln -p 2222:22 sshd-9.1p1-vuln

Пояснение:

  • --rm: контейнер автоматически удаляется после остановки
  • --name sshd-vuln: имя контейнера
  • -p 2222:22: проброс порта 22 внутри контейнера на порт 2222 хостовой машины
  1. Проверка состояния sshd
docker ps

Должен отображаться вывод, подобный:

CONTAINER ID   IMAGE              COMMAND               STATUS          PORTS
xxxxxx         sshd-9.1p1-vuln    "/usr/sbin/sshd -D…"  Up ...          0.0.0.0:2222->22/tcp

2. Использование PoC на машине атакующего

1. Установка зависимостей PoC

Выполните в этом каталоге:

pip install paramiko

2. Описание PoC-скрипта (poc.py)

poc.py использует paramiko.Transport для активного установления соединения с целевым SSH-сервером и на этапе до аутентификации подделывает идентификатор клиента, пытаясь запустить double free.

Ключевые особенности:

  • Цель по умолчанию: 127.0.0.1:2222 (то есть локальный Docker-контейнер)
  • Идентификатор клиента по умолчанию: SSH-2.0-PuTTY_Release_0.64
  • Предусмотрены простые параметры командной строки:
    • -t/--target: IP-адрес цели (по умолчанию 127.0.0.1)
    • -p/--port: порт цели (по умолчанию 2222)
    • -c/--client-id: поддельный идентификатор SSH-клиента
    • --timeout: время ожидания (в секундах)
    • -v/--verbose: вывод подробных сообщений об ошибках

3. Запуск PoC

Убедившись, что контейнер sshd-vuln запущен, выполните в этом каталоге:

python3 poc.py

Или с явным указанием параметров:

python3 poc.py -t 127.0.0.1 -p 2222 -v

Пример ожидаемого вывода клиента:

==============================================
   CVE-2023-25136 OpenSSH Pre-Auth Double Free
              Minimal PoC Client
==============================================
[2024-xx-xx xx:xx:xx] Target: 127.0.0.1:2222, ClientID: SSH-2.0-PuTTY_Release_0.64
[+] Sending crafted pre-auth handshake...
[-] Authentication failed or connection closed early.
    请在服务端 sshd 日志中查看是否出现 'free(): double free detected' 等信息,以确认是否触发 CVE-2023-25136。

Пояснение:

  • Сообщения клиента Authentication failed или connection closed здесь являются ожидаемым поведением, поскольку дочерний процесс сервера до аутентификации может аварийно завершиться или активно закрыть соединение в процессе обработки.

3. Ожидаемые результаты и способы проверки

1. Журналы сервера (контейнера)

После запуска PoC просмотрите журналы контейнера на хостовой машине:

docker logs sshd-vuln

Ожидается вывод, подобный:

Server listening on 0.0.0.0 port 22.
Server listening on :: port 22.
Invalid user  from 172.17.0.1 port xxxxx
free(): double free detected in tcache 2

Здесь:

  • Invalid user: поскольку PoC использует пустое имя пользователя, OpenSSH зафиксировал попытку входа недопустимого пользователя
  • free(): double free detected in tcache 2: glibc обнаружил double free и завершил текущий дочерний процесс sshd; именно это и является наблюдаемым в данном эксперименте эффектом повреждения памяти/DoS

Примечание: чтобы увидеть эту строку, мы отключили песочницу seccomp при сборке OpenSSH (--with-sandbox=no); в противном случае песочница может перехватить аномальное поведение до double free и напрямую завершить дочерний процесс.

2. Характер эффекта

  • В данной экспериментальной среде PoC стабильно вызывает аварийное завершение дочернего процесса до аутентификации (DoS), что приводит к сбою текущего SSH-соединения. Основной процесс sshd продолжит порождать новые дочерние процессы для последующих соединений.
  • Поскольку дочерний процесс до аутентификации работает в среде с низкими привилегиями + chroot, а по умолчанию действует множество механизмов безопасности, исследователи в целом считают, что полагаться исключительно на этот double free для удалённого выполнения кода крайне сложно.
Скачать инструмент