Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
roca — ROCA: Vulnerabilidad de clave RSA de Infineon | Kitploit
Herramientas/GitHubGitHub/crocs-muni/roca
Análisis EstáticoAnálisis de VulnerabilidadesCriptografía
GitHubcrocs-muni/roca

roca

ROCA: Vulnerabilidad de clave RSA de Infineon

Ver RepositorioSitio web
4959660hace 5 añosRevisado por Kitploit

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

Herramienta de detección ROCA

Build Status

Esta herramienta está relacionada con el artículo de la conferencia ACM CCS 2017 #124 Return of the Coppersmith’s Attack: Practical Factorization of Widely Used RSA Moduli.

Permite probar claves públicas RSA para detectar la presencia de la vulnerabilidad descrita.

Actualización 4.11.2017: Compatible con Python 2.7, 3.4+.

Actualización 30.10.2017: El artículo del ataque ya está disponible en línea, versión ACM.

Actualización 30.10.2017: El detector de logaritmos discretos ahora está implementado en Python y se usa como método predeterminado. Detecta la estructura en los primos explotada por el algoritmo de factorización.

Actualmente la herramienta soporta los siguientes formatos de clave:

  • Certificado X509, codificado en DER, uno por archivo, *.der, *.crt
  • Certificado X509, codificado en PEM, varios por archivo, *.pem
  • Solicitud de firma de certificado (CSR) X509, codificada en PEM, varios por archivo, *.pem
  • Clave privada RSA codificada en PEM, clave pública, varios por archivo, *.pem (debe tener el encabezado correcto -----BEGIN RSA...)
  • Clave pública SSH, *.pub, comenzando con "ssh-rsa", una por línea
  • Clave PGP codificada en ASC, *.pgp, *.asc. Varios por archivo, debe tener el encabezado correcto -----BEGIN PGP...
  • Aplicación Android APK, *.apk
  • Archivo de texto con un módulo por línea *.txt, el módulo puede ser a) número codificado en base64, b) número codificado en hexadecimal, c) número codificado en decimal
  • Archivo JSON con módulos, un registro por línea, el registro con módulo tiene clave "mod" (int, codificación base64, hex, decimal soportada) certificado(s) con clave "cert" / arreglo de certificados con clave "certs" soportados, codificados en DER base64.
  • Archivo LDIFF - volcado de base de datos LDAP. Cualquier campo que termine en ;binary:: se intenta decodificar como certificado X509
  • Archivo Java Key Store (JKS). Intenta contraseña vacía y algunas comunes, especifique más con --jks-pass-file
  • Firma PKCS7 con certificado de usuario

La herramienta de detección es intencionalmente una implementación de un solo archivo para facilitar la integración/manipulación.

Falso positivo

Tasas de detección de falsos positivos:

  • Detector de módulos: 2^-27
  • Detector de logaritmos discretos: 2^-154

El detector de logaritmos discretos está implementado solo en el código Python y se usa como método de detección predeterminado.

Las versiones en Java y C# no se mantienen desde la publicación original y no planeamos actualizar estos detectores al método más preciso. Sin embargo, ¡se aceptan pull requests!

Verificador en línea

https://keychest.net/roca

El verificador en línea utiliza el algoritmo del detector de logaritmos discretos.

Instalar con pip

Instale la biblioteca del detector + herramienta con pip (instala todas las dependencias):

pip install roca-detect

Instalación local

Ejecute en la carpeta raíz del paquete:

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

Dependencias

Puede ser necesario instalar dependencias adicionales para que pip pueda instalar, por ejemplo, el paquete cryptography.

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

Uso

Para imprimir el uso básico:

# Si se instaló con pip / manualmente
roca-detect --help

# Sin instalación (pueden faltar dependencias)
python roca/detect.py

La herramienta de prueba acepta múltiples nombres de archivo / directorios como argumento de entrada. Devuelve el informe mostrando cuántos archivos han sido identificados (y cuáles son).

Ejemplo (no se encontraron vulnerabilidades):

Ejecutando recursivamente en todas mis claves SSH y known_hosts:

$> roca-detect ~/.ssh
2017-10-16 13:39:21 [51272] INFO ### RESUMEN ####################
2017-10-16 13:39:21 [51272] INFO Registros probados: 92
2017-10-16 13:39:21 [51272] INFO .. Certificados PEM: . . . 0
2017-10-16 13:39:21 [51272] INFO .. Certificados DER: . . . 0
2017-10-16 13:39:21 [51272] INFO .. Archivos de clave RSA: . 16
2017-10-16 13:39:21 [51272] INFO .. Claves maestras PGP: 0
2017-10-16 13:39:21 [51272] INFO .. Total claves PGP:  0
2017-10-16 13:39:21 [51272] INFO .. Claves SSH:  . . . 76
2017-10-16 13:39:21 [51272] INFO .. Claves APK:  . . . 0
2017-10-16 13:39:21 [51272] INFO .. Claves JSON: . . . 0
2017-10-16 13:39:21 [51272] INFO .. Certificados LDIFF: . . 0
2017-10-16 13:39:21 [51272] INFO .. Certificados JKS: . . . 0
2017-10-16 13:39:21 [51272] INFO .. PKCS7: . . . . . 0
2017-10-16 13:39:21 [51272] INFO No se encontraron claves identificadas (OK)
2017-10-16 13:39:21 [51272] INFO ################################

Ejemplo (se encontraron vulnerabilidades):

Ejecutando recursivamente en todas mis claves SSH y known_hosts:

$> roca-detect ~/.ssh
<b>2017-10-16 13:39:21 [51272] ADVERTENCIA Huella digital encontrada en el Certificado</b>
...
2017-10-16 13:39:21 [51272] INFO ### RESUMEN ####################
2017-10-16 13:39:21 [51272] INFO Registros probados: 92
2017-10-16 13:39:21 [51272] INFO .. Certificados PEM: . . . 0
2017-10-16 13:39:21 [51272] INFO .. Certificados DER: . . . 0
2017-10-16 13:39:21 [51272] INFO .. Archivos de clave RSA: . 16
2017-10-16 13:39:21 [51272] INFO .. Claves maestras PGP: 0
2017-10-16 13:39:21 [51272] INFO .. Total claves PGP:  0
2017-10-16 13:39:21 [51272] INFO .. Claves SSH:  . . . 76
2017-10-16 13:39:21 [51272] INFO .. Claves APK:  . . . 0
2017-10-16 13:39:21 [51272] INFO .. Claves JSON: . . . 0
2017-10-16 13:39:21 [51272] INFO .. Certificados LDIFF: . . 0
2017-10-16 13:39:21 [51272] INFO .. Certificados JKS: . . . 0
2017-10-16 13:39:21 [51272] INFO .. PKCS7: . . . . . 0
2017-10-16 13:39:21 [51272] INFO Claves identificadas encontradas: 1
2017-10-16 13:39:21 [51272] INFO ADVERTENCIA: Vulnerabilidad potencial
2017-10-16 13:39:21 [51272] INFO ################################

Clave PGP

Para probar su clave PGP puede exportarla desde su cliente de correo o descargarla de un servidor de claves PGP como https://pgp.mit.edu/

También puede usar la utilidad de línea de comandos gpg para exportar su clave pública:

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

Caso de uso avanzado

La herramienta de detección extrae información sobre la clave que puede ser mostrada:

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

Detección TLS/SSL

roca-detect-tls detecta certificados desde puertos TLS/SSL remotos. Proporcione un archivo con una lista de entradas dirección:puerto delimitadas por nueva línea y use ese archivo como entrada.

Archivo de ejemplo: tls_list.txt

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

Luego ejecute:

roca-detect-tls tls_list.txt

Módulos falsos

Es posible generar módulos que pasen la prueba de huella digital de módulos pero que en realidad no contengan la estructura que utiliza el algoritmo de factorización. La prueba de módulos Dlog no los marca como positivos.

Métodos de instalación avanzados

Entorno virtual

Generalmente se recomienda crear un nuevo entorno virtual de Python para el proyecto:

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

Python 2.7.13 separado

Descargar herramienta