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
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
49596vor 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):

root@kitploit:~
pip install roca-detect

Lokale Installation

Führen Sie im Hauptverzeichnis des Pakets aus:

root@kitploit:~
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:

root@kitploit:~
sudo yum install python-devel python-pip gcc gcc-c++ make automake autoreconf libtool openssl-devel libffi-devel dialog

Ubuntu:

root@kitploit:~
sudo apt-get install python-pip python-dev build-essential libssl-dev libffi-dev swig

Verwendung

Um die grundlegende Verwendung anzuzeigen:

root@kitploit:~
# 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:

root@kitploit:~
$> 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:

root@kitploit:~
$> 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:

root@kitploit:~
gpg --armor --export [email protected] > mykey.asc

Fortgeschrittener Anwendungsfall

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

root@kitploit:~
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

root@kitploit:~
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:

root@kitploit:~
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.

Verwenden Sie pyenv, um lokal eine neue Python-Version zu installieren, wenn Sie das systemweite Python nicht aktualisieren können / möchten.

Es lädt intern die Python-Quellen herunter und installiert sie in ~/.pyenv.

root@kitploit:~
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL
pyenv install 2.7.13
pyenv local 2.7.13

Python 3

Die Erkennungstools funktionieren auch mit Python 3.4+

Docker-Container

Führen Sie es über einen Docker-Container aus, um Umgebungsinkonsistenzen zu vermeiden. Die Dockerfile-Quelle kann unter https://hub.docker.com/r/unnawut/roca-detect/ überprüft werden.

root@kitploit:~
docker run --rm -v /path/to/your/keys:/keys --network none unnawut/roca-detect

Stellen Sie sicher, dass Sie die Flags --rm und --network none verwenden, um die Netzwerkverbindung des Containers zu deaktivieren und den Container nach dem Ausführen zu löschen.

Lizenzierung

Der Code ist unter der großzügigen MIT-Lizenz lizenziert.

Da es Anfragen zur doppelten Lizenzierung unter der Apache 2.0-Lizenz gab (aufgrund einiger Zweifel an der Kompatibilität), lizenzieren wir den Code auch unter der Apache 2.0-Lizenz.

Wählen Sie die Lizenz, die Ihnen besser gefällt, entweder MIT oder Apache 2.0.

Sprach-Ports

Dieser Abschnitt enthält Links zu verschiedenen GIT-Repositorys mit Sprach-Ports

  • Go
Tool herunterladen