
Herramienta de ataque RSA (principalmente para ctf) - recupera clave privada a partir de clave pública débil y/o descifra datos
Herramienta de múltiples ataques RSA que descifra datos a partir de claves públicas débiles y recupera claves privadas.
Esta herramienta es una utilidad diseñada para descifrar datos a partir de claves públicas débiles e intentar recuperar la clave privada correspondiente. Ofrece una amplia gama de opciones de ataque para descifrar el cifrado RSA.
La seguridad de RSA se basa en la complejidad de la factorización de enteros. Este proyecto combina múltiples algoritmos de factorización para mejorar las capacidades de descifrado.
Nota: Esta herramienta está pensada principalmente para fines educativos. No todas las claves pueden romperse en un tiempo razonable. La herramienta solo admite el módulo compuesto semiprimo de RSA estándar (no multiprimos).
Para factorización avanzada, considere msieve, yafu o cado-nfs.
RsaCtfTool --publickey key.pub --private # Recuperar clave privada
RsaCtfTool --publickey key.pub --decryptfile ciphertext # Descifrar archivo
RsaCtfTool --publickey key.pub --attack wiener # Usar ataque específico
Para ver el uso completo, ejecute: RsaCtfTool --help
python3 -m venv venv
source venv/bin/activate
pip install -e .
docker build -t rsactftool/rsactftool .
docker run -it --rm -v $PWD:/data rsactftool/rsactftool <arguments>
| Método | Descripción |
|---|---|
| Fermat | p y q cercanos |
| Pollard Rho | Factorización general |
| Curva elíptica (ECM) | Números suaves |
| Pollard p-1 | Números suaves |
| Williams p+1 | Números suaves |
| ROCA | Generación de claves vulnerable |
| SQUFOF | Formas cuadradas |
| Criba cuadrática | Factorización general |
| Dixon | Cuadrados aleatorios |
| Factordb | Base de datos de factorización en línea |
| Ataques de factor común | Claves que comparten factores |
| Ataques GCD | Mersenne, Primorial, Fibonacci, etc. |
RsaCtfTool --publickey key.pub --private
RsaCtfTool --publickey key.pub --decryptfile ciphertext
RsaCtfTool --publickey "*.pub" --private
RsaCtfTool --createpub -n 7828374823761928712873... -e 65537
RsaCtfTool --dumpkey --key key.pub
RsaCtfTool --dumpkey --ext --key key.pub # Incluir parámetros CRT
RsaCtfTool --publickey key.pub --ecmdigits 25 --private
RsaCtfTool --publickey key.pub --attack wiener --private
RsaCtfTool --publickey key.pub --attack factordb --private
RsaCtfTool --publickey "*.pub" --private --sendtofdb
RsaCtfTool --isroca --publickey "examples/*.pub"
RsaCtfTool --convert_idrsa_pub --publickey ~/.ssh/id_rsa.pub
Para más ejemplos, ejecute pytest tests/ --collect-only para ver las pruebas disponibles.
Las pruebas usan pytest y se encuentran en tests/.
pytest tests/ # Ejecutar todas las pruebas
pytest tests/ -m "not slow" # Omitir pruebas lentas
pytest tests/ -v # Modo detallado
pytest tests/ -k "fermat" # Ejecutar pruebas que coincidan con "fermat"
@pytest.mark.slow - Pruebas de factorización lentas@pytest.mark.network - Pruebas que requieren red (Factordb)@pytest.mark.attack - Pruebas de integración de ataques| Archivo | Descripción |
|---|---|
test_number_theory.py | Funciones de teoría de números (gcd, is_prime, phi, etc.) |
test_algos.py | Algoritmos de factorización (fermat, brent, pollard_rho, etc.) |
test_keys_wrapper.py | Clases PublicKey/PrivateKey |
test_utils.py | Funciones de utilidad |
test_pubkey_decode.py | Decodificación de clave pública RSA |
test_attacks.py | Pruebas de integración de ataques |
test_regression.py | Pruebas de regresión por corrección de errores |
test_exceptions.py | Excepciones personalizadas |
conftest.py | Configuración y fixtures de pytest |
Por favor, lea CONTRIBUTING.md para obtener las pautas y CODE_OF_CONDUCT.md antes de contribuir.
El proyecto original fue publicado bajo GPLv3. Este código ha sido relicenciado bajo la Licencia MIT.