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

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

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

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

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

Категории

Все категории
Loading categories
OpenSSL_DTLS_CVE_2014_0221 — OpenSSL DTLS CVE-2014-0221 Remote Denial | Kitploit
Инструменты/GitHubGitHub/tpdlshdmlrkfmcla/openssl_dtls_cve_2014_0221
Vulnerability AnalysisExploitationNetwork SecurityCryptographyPenetration Testing
GitHubtpdlshdmlrkfmcla/openssl_dtls_cve_2014_0221

OpenSSL_DTLS_CVE_2014_0221

OpenSSL DTLS CVE-2014-0221 Remote Denial

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
1 год назадЕщё не проверено

OpenSSL_DTLS_CVE_2014_0221

OpenSSL DTLS CVE-2014-0221 Удаленный отказ в обслуживании

Что такое DTLS (Datagram Transport Layer Security)?

Безопасность транспортного уровня на основе датаграмм. *Физический уровень

Поддержка датаграмм на уровне TCP : TLS
Поддержка датаграмм на уровне UDP : DTLS : через соответствующие модификации процесса HandShake обрабатывает обмен ключами, аутентификацию, установку параметров безопасности и т.д., а через тайм-ауты и повторную передачу поддерживает стабильную безопасную связь UDP, обладающего свойствами без установления соединения.

DTLS — это аббревиатура от Datagram Transport Layer Security, протокол для обеспечения безопасности в связи на основе UDP (User Datagram Protocol). TLS (Transport Layer Security) в основном используется для обеспечения безопасности в связи на основе TCP (Transmission Control Protocol), но UDP не является ориентированным на соединение и является пакетно-ориентированным протоколом, поэтому применить TLS напрямую сложно. Для обеспечения безопасности в такой связи на основе UDP был разработан DTLS.

DTLS очень похож на базовую структуру TLS, но имеет несколько ключевых отличий:

  • Поддержка датаграмм: DTLS спроектирован для работы с протоколом датаграмм UDP. TLS оптимизирован для TCP с установлением соединения, поэтому для применения к UDP он был модифицирован для работы с датаграммами.
  • Соответствующая модификация процесса Handshake: DTLS, как и TLS, использует процесс Handshake для обработки аутентификации, обмена ключами, установки параметров безопасности и т.д. Однако из-за свойств UDP могут происходить потери пакетов или изменение порядка, поэтому в DTLS были добавлены механизмы для реагирования на такие ситуации.
  • Тайм-ауты и повторная передача: DTLS включает механизмы тайм-аутов и повторной передачи для случаев потери пакетов или необходимости повторной отправки. Это компенсирует свойство UDP без установления соединения, обеспечивая стабильную защищенную связь.
  • Соображения безопасности: DTLS использует те же протоколы безопасности, что и TLS, для обеспечения конфиденциальности, целостности и аутентификации данных. Таким образом, даже в приложениях на основе UDP можно безопасно передавать данные.
    DTLS в основном используется для обеспечения безопасности в средах, использующих UDP, таких как VoIP (голосовые звонки), потоковое мультимедиа, игровые серверы и т.д.

Итак, уязвимость OpenSSL DTLS

Почему OpenSSL: что такое DTLS: TLS на основе UDP, DTLS 1.0 был реализован в OpenSSL

Уязвимость, позволяющая с помощью манипулирования передачей рукопожатия провести атаку «человек посередине» (MITM), расшифровать передаваемые данные и манипулировать данными между сервером/клиентом (CVE-2014-0224)
Уязвимость, позволяющая отправить аномальное рукопожатие DTLS клиенту OpenSSL DTLS, что приводит к отказу в обслуживании (CVE-2014-0221)
Уязвимость, позволяющая отправить аномальный фрагмент DTLS клиенту или серверу OpenSSL DTLS, что приводит к выполнению произвольного кода (CVE-2014-0195)
Уязвимость, позволяющая выполнить произвольный код из-за дефекта функции do_ssl3_write (CVE-2014-0198)
Данная уязвимость возникает в OpenSSL 1.0.0 и 1.0.1, когда опция SSL_MODE_RELEASE_BUFFERS включена (по умолчанию эта опция отключена)
Уязвимость, из-за состояния гонки (race condition) в функции ssl3_read_bytes позволяет злоумышленнику внедрить данные в сеанс или вызвать отказ в обслуживании (CVE-2010-5298)
Данная уязвимость возникает в многопоточных приложениях, использующих OpenSSL 1.0.0 и 1.0.1, когда опция SSL_MODE_RELEASE_BUFFERS включена (по умолчанию эта опция отключена)
Уязвимость, позволяющая вызвать отказ в обслуживании на клиенте OpenSSL TLS с включенными наборами шифров anonymous ECDH (CVE-2014-3470)

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

OpenSSL 0.9.8 OpenSSL 1.0.0 OpenSSL 1.0.1 Среди них CVE-2014-0221 — это уязвимость, позволяющая отправить аномальное рукопожатие DTLS клиенту OpenSSL DTLS, что приводит к отказу в обслуживании.

Рассматриваем CVE-2014-0221

< Уязвимость отказа в обслуживании DTLS (CVE-2014-0221) >
o DTLS (Datagram Transport Layer Security) — это протокол, основанный на TLS, который позволяет передавать зашифрованные датаграммы.
o При отправке аномального сообщения рукопожатия DTLS (сообщение DTLS Hello) клиенту DTLS, OpenSSL может войти в рекурсивное состояние, что позволяет осуществить атаку отказа в обслуживании.

  • При обработке сообщения DTLS Hello функция вызывает саму себя рекурсивно.

Пример кода: рекурсивный вызов в методе dtls1_get_message_frament

root@kitploit:~
if(!s->server && s->d1->r_msg_hdr.frag_off == 0 && wire[0] == SSL3_MT_HELLO_REQUEST) {
    if(wire[1] == 0 && wire[2] == 0 && wire[3] == 0) {
        if(s->msg_callback)
            s->msg_callback(0, s->version, SSL3_RT_HANDSHAKE,
                wire, DTLS1_HM_HEADER_LENGTH, s, s->msg_callback_arg);

            s->init_num = 0;
            return dtls1_get_message_fragment(s, st1, stn, max, ok);
    }
    else {
        al=SSL_AD_UNEXPECTED_MESSAGE;
        SSLerr(SSL_F_DTLS1_GET_MESSAGE_FRAGMENT,SSL_R_UNEXPECTED_MESSAGE);
        goto f_err;
    }
}
Скачать инструмент