Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
roca — ROCA: Infineon RSA-Schlüsselschwachstelle | Kitploit
Tools/GitHubGitHub/crocs-muni/roca
Statische AnalyseSchwachstellenanalyseKryptographie
GitHubcrocs-muni/roca

roca

ROCA: Infineon RSA-Schlüsselschwachstelle

Repository anzeigenWebseite
4959660vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ROCA-Erkennungstool

Build Status

Dieses Tool bezieht sich auf ACM CCS 2017 Konferenzpapier #124 Return of the Coppersmith’s Attack: Practical Factorization of Widely Used RSA Moduli.

Es ermöglicht Ihnen, öffentliche RSA-Schlüssel auf das Vorhandensein der beschriebenen Schwachstelle zu testen.

Update 4.11.2017: Python 2.7, 3.4+ unterstützt.

Update 30.10.2017: Das Papier des Angriffs ist bereits online, ACM-Version.

Update 30.10.2017: Der diskrete Logarithmus-Detektor ist jetzt in Python implementiert und wird standardmäßig verwendet. Er erkennt die Struktur in den Primzahlen, die der Faktorisierungsalgorithmus ausnutzt.

Derzeit unterstützt das Tool die folgenden Schlüsselformate:

  • X509-Zertifikat, DER-kodiert, eine Datei, *.der, *.crt
  • X509-Zertifikat, PEM-kodiert, mehrere pro Datei, *.pem
  • X509-Zertifikatsignieranforderung, PEM-kodiert, mehrere pro Datei, *.pem (muss den korrekten Header -----BEGIN... haben)
  • RSA PEM-kodierter privater Schlüssel, öffentlicher Schlüssel, mehrere pro Datei, *.pem (muss den korrekten Header -----BEGIN RSA... haben)
  • SSH-öffentlicher Schlüssel, *.pub, beginnt mit „ssh-rsa“, eine pro Zeile
  • ASC-kodierter PGP-Schlüssel, *.pgp, *.asc. Mehrere pro Datei, muss den korrekten Header -----BEGIN PGP... haben
  • APK-Android-Anwendung, *.apk
  • ein Modulus pro Zeile Textdatei *.txt, Modulus kann a) base64-kodierte Zahl, b) hex-kodierte Zahl, c) dezimal-kodierte Zahl sein
  • JSON-Datei mit Moduli, ein Datensatz pro Zeile, Datensatz mit Modulus hat Schlüssel „mod“ (int, base64, hex, dec Kodierung unterstützt) Zertifikat(e) mit Schlüssel „cert“ / Array von Zertifikaten mit Schlüssel „certs“ werden unterstützt, base64-kodiertes DER.
  • LDIFF-Datei - LDAP-Datenbank-Dump. Jedes Feld, das mit ;binary:: endet, wird versucht als X509-Zertifikat zu dekodieren.
  • Java Key Store-Datei (JKS). Versucht leeres Passwort & einige übliche, geben Sie weitere mit --jks-pass-file an.
  • PKCS7-Signatur mit Benutzerzertifikat

Das Erkennungstool ist bewusst als Ein-Datei-Implementierung für einfache Integration / Handhabung konzipiert.

Fehlalarme

Fehlalarm-Erkennungsraten:

  • Moduli detector: 2^-27
  • Discrete logarithm detector: 2^-154

Der diskrete Logarithmus-Detektor ist nur im Python-Code implementiert und wird als standardmäßige Erkennungsmethode verwendet.

Die Java- und C#-Code-Ports werden seit der ursprünglichen Veröffentlichung nicht mehr gewartet und wir planen nicht, diese Detektoren auf die genauere Methode zu aktualisieren. Pull-Requests sind jedoch willkommen!

Online-Prüfer

https://keychest.net/roca

Der Online-Prüfer verwendet den Algorithmus des diskreten Logarithmus-Detektors.

Installation mit pip

Installieren Sie die Detector-Bibliothek + Tool mit pip (installiert alle Abhängigkeiten):

pip install roca-detect

Lokale Installation

Führen Sie im Hauptverzeichnis des Pakets aus:

pip install --upgrade --find-links=. .

Abhängigkeiten

Es kann erforderlich sein, zusätzliche Abhängigkeiten zu installieren, damit pip z.B. das Paket cryptography installieren kann.

CentOS / RHEL:

sudo yum install python-devel python-pip gcc gcc-c++ make automake autoreconf libtool openssl-devel libffi-devel dialog

Ubuntu:

sudo apt-get install python-pip python-dev build-essential libssl-dev libffi-dev swig

Verwendung

Um die grundlegende Verwendung anzuzeigen:

# If installed with pip / manually
roca-detect --help

# Without installation (can miss dependencies)
python roca/detect.py

Das Testtool akzeptiert mehrere Dateinamen / Verzeichnisse als Eingabeargument. Es gibt einen Bericht zurück, der zeigt, wie viele Dateien gefingerprintet wurden (und welche das sind).

Beispiel (keine Schwachstellen gefunden):

Rekursiv ausgeführt auf allen meinen SSH-Schlüsseln und known_hosts:

$> roca-detect ~/.ssh
2017-10-16 13:39:21 [51272] INFO ### SUMMARY ####################
2017-10-16 13:39:21 [51272] INFO Records tested: 92
2017-10-16 13:39:21 [51272] INFO .. PEM certs: . . . 0
2017-10-16 13:39:21 [51272] INFO .. DER certs: . . . 0
2017-10-16 13:39:21 [51272] INFO .. RSA key files: . 16
2017-10-16 13:39:21 [51272] INFO .. PGP master keys: 0
2017-10-16 13:39:21 [51272] INFO .. PGP total keys:  0
2017-10-16 13:39:21 [51272] INFO .. SSH keys:  . . . 76
2017-10-16 13:39:21 [51272] INFO .. APK keys:  . . . 0
2017-10-16 13:39:21 [51272] INFO .. JSON keys: . . . 0
2017-10-16 13:39:21 [51272] INFO .. LDIFF certs: . . 0
2017-10-16 13:39:21 [51272] INFO .. JKS certs: . . . 0
2017-10-16 13:39:21 [51272] INFO .. PKCS7: . . . . . 0
2017-10-16 13:39:21 [51272] INFO No fingerprinted keys found (OK)
2017-10-16 13:39:21 [51272] INFO ################################

Beispiel (Schwachstellen gefunden):

Rekursiv ausgeführt auf allen meinen SSH-Schlüsseln und known_hosts:

$> roca-detect ~/.ssh
<b>2017-10-16 13:39:21 [51272] WARNING Fingerprint found in the Certificate</b>
...
2017-10-16 13:39:21 [51272] INFO ### SUMMARY ####################
2017-10-16 13:39:21 [51272] INFO Records tested: 92
2017-10-16 13:39:21 [51272] INFO .. PEM certs: . . . 0
2017-10-16 13:39:21 [51272] INFO .. DER certs: . . . 0
2017-10-16 13:39:21 [51272] INFO .. RSA key files: . 16
2017-10-16 13:39:21 [51272] INFO .. PGP master keys: 0
2017-10-16 13:39:21 [51272] INFO .. PGP total keys:  0
2017-10-16 13:39:21 [51272] INFO .. SSH keys:  . . . 76
2017-10-16 13:39:21 [51272] INFO .. APK keys:  . . . 0
2017-10-16 13:39:21 [51272] INFO .. JSON keys: . . . 0
2017-10-16 13:39:21 [51272] INFO .. LDIFF certs: . . 0
2017-10-16 13:39:21 [51272] INFO .. JKS certs: . . . 0
2017-10-16 13:39:21 [51272] INFO .. PKCS7: . . . . . 0
2017-10-16 13:39:21 [51272] INFO Fingerprinted keys found: 1
2017-10-16 13:39:21 [51272] INFO WARNING: Potential vulnerability
2017-10-16 13:39:21 [51272] INFO ################################

PGP-Schlüssel

Um Ihren PGP-Schlüssel zu testen, können Sie ihn aus Ihrem E-Mail-Client exportieren oder von einem PGP-Schlüsselserver wie https://pgp.mit.edu/ herunterladen.

Sie können auch das Befehlszeilentool gpg verwenden, um Ihren öffentlichen Schlüssel zu exportieren:

gpg --armor --export [email protected] > mykey.asc

Fortgeschrittener Anwendungsfall

Das Erkennungstool extrahiert Informationen über den Schlüssel, die angezeigt werden können:

roca-detect.py --dump --flatten --indent  ~/.ssh/

TLS/SSL-Erkennung

Das roca-detect-tls erkennt Zertifikate von entfernten TLS/SSL-Ports. Geben Sie eine Datei mit einer durch Zeilenumbrüche getrennten Liste von Adresse:Port-Einträgen an und verwenden Sie diese Datei als Eingabe.

Beispieldatei: tls_list.txt

github.com:443
google.com:443
internal.example.com:8080

Dann führen Sie aus:

roca-detect-tls tls_list.txt

Gefälschte Moduli

Es ist möglich, Moduli zu generieren, die den Moduli-Fingerprinting-Test bestehen, aber tatsächlich keine Struktur enthalten, die der Faktorisierungsalgorithmus verwendet. Der Dlog-Moduli-Test markiert diese nicht als positiv.

Fortgeschrittene Installationsmethoden

Virtuelle Umgebung

Es wird normalerweise empfohlen, eine neue Python-Virtual-Umgebung für das Projekt zu erstellen:

virtualenv ~/pyenv
source ~/pyenv/bin/activate
pip install --upgrade pip
pip install --upgrade --find-links=. .

Separates Python 2.7.13

Wir haben das Tool mit Python 2.7.13 getestet und es funktioniert (siehe Travis für weitere Informationen). Wir haben Berichte erhalten, dass niedrigere Versionen (<=2.6) nicht richtig funktionieren, daher empfehlen wir dringend ein aktuelles Python 2.7 zu verwenden.

Tool herunterladen