Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
OpenSSL_DTLS_CVE_2014_0221 — OpenSSL DTLS CVE-2014-0221 Denegación Remota | Kitploit
Herramientas/GitHubGitHub/tpdlshdmlrkfmcla/openssl_dtls_cve_2014_0221
Análisis de VulnerabilidadesExplotaciónSeguridad de RedesCriptografíaPruebas de Penetración
GitHubtpdlshdmlrkfmcla/openssl_dtls_cve_2014_0221

OpenSSL_DTLS_CVE_2014_0221

OpenSSL DTLS CVE-2014-0221 Denegación Remota

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
hace 1 añoAún no revisado

OpenSSL_DTLS_CVE_2014_0221

OpenSSL DTLS CVE-2014-0221 Denegación Remota

¿Qué es DTLS (Datagram Transport Layer Security)?

Seguridad de la capa de transporte de datagramas. *Capa física

Soporte de datagramas en la capa TCP: TLS Soporte de datagramas en la capa UDP: DTLS: Maneja el intercambio de claves, autenticación, configuración de parámetros de seguridad, etc., mediante modificaciones apropiadas en el proceso de Handshake. Admite comunicación segura y confiable en UDP, que tiene características sin conexión, a través de tiempos de espera y retransmisiones.

DTLS es la abreviatura de Datagram Transport Layer Security, un protocolo diseñado para proporcionar seguridad en comunicaciones basadas en UDP (User Datagram Protocol). TLS (Transport Layer Security) se utiliza principalmente para proporcionar seguridad en comunicaciones basadas en TCP (Transmission Control Protocol), pero como UDP es un protocolo no orientado a conexión y basado en paquetes, es difícil aplicar TLS directamente. Por lo tanto, se diseñó DTLS para proporcionar seguridad en comunicaciones basadas en UDP.

DTLS es muy similar a la estructura básica de TLS, pero tiene algunas diferencias clave:

Soporte de datagramas: DTLS está diseñado para adaptarse a UDP, un protocolo basado en datagramas. TLS está optimizado para TCP orientado a conexión, por lo que se modificó para funcionar en unidades de datagramas para su aplicación en UDP. Modificaciones apropiadas en el proceso de Handshake: Al igual que TLS, DTLS utiliza el proceso de Handshake para manejar la autenticación, el intercambio de claves y la configuración de parámetros de seguridad de la comunicación. Sin embargo, debido a las características de UDP, pueden ocurrir pérdidas de paquetes o cambios en el orden, por lo que se han agregado mecanismos en DTLS para manejar estas situaciones. Tiempo de espera y retransmisión: DTLS incluye mecanismos de tiempo de espera y retransmisión para manejar la pérdida de paquetes o la necesidad de retransmisión. Esto complementa las características sin conexión de UDP, permitiendo una comunicación segura y confiable. Consideraciones de seguridad: DTLS utiliza los mismos protocolos de seguridad que TLS para garantizar la confidencialidad, integridad y autenticación de los datos. Por lo tanto, las aplicaciones basadas en UDP también pueden transmitir datos de manera segura. DTLS se utiliza principalmente para proporcionar seguridad en entornos que usan UDP, como VoIP (llamadas de voz), transmisión multimedia y servidores de juegos.

Entonces, la vulnerabilidad OpenSSL DTLS

¿Por qué OpenSSL? ¿Qué es DTLS? TLS basado en UDP, DTLS 1.0 fue implementado en OpenSSL.

Vulnerabilidad que permite descifrar datos transmitidos mediante un ataque de intermediario (MITM) a través de un handshake manipulado, y también permite manipular los datos transmitidos entre servidor y cliente (CVE-2014-0224) Vulnerabilidad que permite un ataque de denegación de servicio al enviar un handshake DTLS anormal al cliente OpenSSL DTLS (CVE-2014-0221) Vulnerabilidad que permite la ejecución de código arbitrario al enviar un fragmento DTLS anormal al cliente o servidor OpenSSL DTLS (CVE-2014-0195) Vulnerabilidad de ejecución de código arbitrario debido a un defecto en la función do_ssl3_write (CVE-2014-0198) Esta vulnerabilidad ocurre en OpenSSL 1.0.0 y 1.0.1 cuando la opción SSL_MODE_RELEASE_BUFFERS está habilitada (dicha opción está deshabilitada por defecto) Vulnerabilidad que permite a un atacante inyectar datos en la sesión o realizar un ataque de denegación de servicio debido a una condición de carrera en la función ssl3_read_bytes (CVE-2010-5298) Esta vulnerabilidad ocurre en aplicaciones multihilo que usan OpenSSL 1.0.0 y 1.0.1 cuando la opción SSL_MODE_RELEASE_BUFFERS está habilitada (dicha opción está deshabilitada por defecto) Vulnerabilidad que puede causar un ataque de denegación de servicio en un cliente TLS OpenSSL con conjuntos de cifrado ECDH anónimos habilitados (CVE-2014-3470)

Productos y versiones afectadas

OpenSSL versión 0.9.8 OpenSSL versión 1.0.0 OpenSSL versión 1.0.1 De estos, CVE-2014-0221 es una vulnerabilidad que permite un ataque de denegación de servicio al enviar un handshake DTLS anormal al cliente OpenSSL DTLS.

Examinando CVE-2014-0221

< Vulnerabilidad de denegación de servicio DTLS (CVE-2014-0221) > o DTLS (Datagram Transport Layer Security) es un protocolo basado en TLS que permite la transmisión de datagramas cifrados. o Al enviar un mensaje de handshake DTLS anormal (mensaje Hello DTLS) a un cliente DTLS, OpenSSL está implementado de manera que puede caer en un estado de recursión, lo que permite un ataque de denegación de servicio.

  • Al procesar el mensaje Hello DTLS, se llama recursivamente a la función misma.

Ejemplo de código: parte de llamada recursiva del método dtls1_get_message_fragment

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;
    }
}
Descargar herramienta