Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
OpenSSL_DTLS_CVE_2014_0221 — OpenSSL DTLS CVE-2014-0221 Remote-Dienstverweigerung | Kitploit
Tools/GitHubGitHub/tpdlshdmlrkfmcla/openssl_dtls_cve_2014_0221
SchwachstellenanalyseExploitationNetzwerksicherheitKryptographiePenetrationstests
GitHubtpdlshdmlrkfmcla/openssl_dtls_cve_2014_0221

OpenSSL_DTLS_CVE_2014_0221

OpenSSL DTLS CVE-2014-0221 Remote-Dienstverweigerung

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
vor 1 JahrNoch nicht geprüft

OpenSSL_DTLS_CVE_2014_0221

OpenSSL DTLS CVE-2014-0221 Remote Denial of Service

Was ist DTLS (Datagram Transport Layer Security)?

Datagramm-Transportschichtsicherheit. *Physische Schicht

Datagramm-Unterstützung auf TCP-Ebene: TLS
Datagramm-Unterstützung auf UDP-Ebene: DTLS: Durch geeignete Modifikation des Handshake-Prozesses werden Schlüsselaustausch, Authentifizierung, Festlegung von Sicherheitsparametern usw. abgewickelt; durch Timeout und erneute Übertragung wird eine stabile sichere Kommunikation für das verbindungslose UDP unterstützt

DTLS ist die Abkürzung für Datagram Transport Layer Security und ein Protokoll zur Bereitstellung von Sicherheit in der Kommunikation auf Basis von UDP (User Datagram Protocol). TLS (Transport Layer Security) wird hauptsächlich verwendet, um Sicherheit in der Kommunikation auf Basis von TCP (Transmission Control Protocol) bereitzustellen. Da UDP jedoch ein verbindungsloses, paketbasiertes Protokoll ist, ist es schwierig, TLS unverändert anzuwenden. DTLS wurde entwickelt, um Sicherheit in dieser UDP-basierten Kommunikation bereitzustellen.

DTLS ist der Grundstruktur von TLS sehr ähnlich, weist jedoch einige wesentliche Unterschiede auf:

Datagramm-Unterstützung: DTLS wurde für UDP, ein datagrammbasiertes Protokoll, entwickelt. TLS ist für das verbindungsorientierte TCP optimiert und wurde daher angepasst, um auf UDP datagrammweise arbeiten zu können.
Geeignete Modifikation des Handshake-Prozesses: DTLS verwendet wie TLS den Handshake-Prozess, um die Authentifizierung der Kommunikation, den Schlüsselaustausch, die Festlegung von Sicherheitsparametern usw. abzuwickeln. Da es jedoch auf UDP zurückzuführen ist, dass Pakete verloren gehen oder sich die Reihenfolge ändern kann, wurden in DTLS Mechanismen ergänzt, die mit solchen Situationen umgehen können.
Timeout und erneute Übertragung: DTLS enthält Timeout- und Neuübertragungsmechanismen für den Fall, dass Pakete verloren gehen oder eine erneute Übertragung erforderlich ist. Dies gleicht die Verbindungslosigkeit von UDP aus und ermöglicht eine stabile sichere Kommunikation.
Sicherheitsaspekte: DTLS verwendet dasselbe Sicherheitsprotokoll wie TLS, um Vertraulichkeit, Integrität und Authentifizierung der Daten zu gewährleisten. Daher können Daten auch in UDP-basierten Anwendungen sicher übertragen werden.
DTLS wird hauptsächlich eingesetzt, um in Umgebungen, die UDP verwenden – etwa VoIP (Sprachtelefonie), Multimedia-Streaming und Gameserver – Sicherheit bereitzustellen.

Nun zur OpenSSL-DTLS-Schwachstelle

Warum OpenSSL: DTLS: TLS auf UDP-Basis; DTLS 1.0 wurde in OpenSSL implementiert

Schwachstelle, die es ermöglicht, über einen Man-in-the-Middle-Angriff (MITM) durch manipulierte Handshake-Übertragungen die übertragenen Daten zu entschlüsseln und die zwischen Server/Client übertragenen Daten zu manipulieren (CVE-2014-0224)
Schwachstelle, die einen Denial-of-Service-Angriff ermöglicht, indem ein abnormaler DTLS-Handshake an einen OpenSSL-DTLS-Client gesendet wird (CVE-2014-0221)
Schwachstelle, die die Ausführung beliebigen Codes ermöglicht, indem ein abnormales DTLS-Fragment an einen OpenSSL-DTLS-Client oder -Server gesendet wird (CVE-2014-0195)
Schwachstelle, die aufgrund eines Fehlers in der Funktion do_ssl3_write die Ausführung beliebigen Codes ermöglicht (CVE-2014-0198)
Diese Schwachstelle tritt in OpenSSL 1.0.0 und 1.0.1 auf, wenn die Option SSL_MODE_RELEASE_BUFFERS aktiviert ist (diese Option ist standardmäßig deaktiviert)
Schwachstelle, die es einem Angreifer aufgrund einer Race Condition in der Funktion ssl3_read_bytes ermöglicht, Daten in die Sitzung einzuschleusen oder einen Denial-of-Service-Angriff durchzuführen (CVE-2010-5298)
Diese Schwachstelle tritt in Multithread-Anwendungen mit OpenSSL 1.0.0 und 1.0.1 auf, wenn die Option SSL_MODE_RELEASE_BUFFERS aktiviert ist (diese Option ist standardmäßig deaktiviert)
Schwachstelle, die einen Denial-of-Service-Angriff auf OpenSSL-TLS-Clients ermöglicht, bei denen anonyme ECDH-Ciphersuites aktiviert sind (CVE-2014-3470)

Betroffene Produkte und Versionen

OpenSSL 0.9.8-Reihe
OpenSSL 1.0.0-Reihe
OpenSSL 1.0.1-Reihe
Davon ist CVE-2014-0221 die Schwachstelle, die einen Denial-of-Service-Angriff ermöglicht, indem ein abnormaler DTLS-Handshake an einen OpenSSL-DTLS-Client gesendet wird

CVE-2014-0221 genauer betrachtet

< DTLS-Denial-of-Service-Schwachstelle (CVE-2014-0221) >
o DTLS (Datagram Transport Layer Security) ist ein Protokoll, das auf TLS basiert und die Übertragung verschlüsselter Datagramme ermöglicht
o Wenn eine abnormale DTLS-Handshake-Nachricht (DTLS-Hello-Nachricht) an einen DTLS-Client gesendet wird, kann OpenSSL in einen rekursiven Zustand geraten, sodass ein Denial-of-Service-Angriff möglich ist

  • Beim Verarbeiten der DTLS-Hello-Nachricht ruft sich die Funktion selbst rekursiv auf

Beispielcode: Beispiel für den rekursiven Aufruf der Methode 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;
    }
}
Tool herunterladen