16个版本
0.6.8 | 2024年7月9日 |
---|---|
0.6.6 | 2024年2月9日 |
0.6.4 | 2023年9月11日 |
0.4.0 | 2023年7月2日 |
#220 in 加密学
165 每月下载量
225KB
5.5K SLoC
RSA求解器
适用于CTF的强大RSA破解工具。支持PEM和DER格式的RSA、X509、OPENSSH。
RsaCracker提供了简单的接口来破解RSA密钥和解密。拥有数千种攻击方法,没有任何密钥能够逃脱RsaCracker的攻击!
安装
从crates.io安装
cargo install rsacracker
注意:要在Windows上构建,您需要使用MSYS2。这是由于对rug的依赖。有关更多信息,请参阅在Windows上构建。
使用方法
Usage: rsacracker [OPTIONS]
Options:
-c, --cipher <CIPHER> Cipher message: the message to uncipher
-f, --cipherfile <CIPHERFILE> Cipher message file: the file to uncipher
-n <N> Modulus
-e <E> Public exponent. Default: 65537 [default: 65537]
-p <P> Prime number p
-q <Q> Prime number q
-d <D> Private exponent
--phi <PHI> Phi or Euler's totient function of n. (p-1)(q-1)
--dp <DP> dP or dmp1 CRT exponent. (d mod p-1)
--dq <DQ> dQ or dmq1 CRT exponent. (d mod q-1)
--qinv <QINV> qInv or iqmp CRT coefficient. (q^-1 mod p)
--pinv <PINV> pInv or ipmq CRT coefficient. (p^-1 mod q)
--sum-pq <SUM_PQ> The sum of the two primes p and q
--dlog Discrete logarithm attack. When c and e are swapped in the RSA encryption formula. (e^c mod n)
-k, --key <KEY> Public or private key file. (RSA, X509, OPENSSH in PEM and DER formats.)
--password <PASSWORD> Private key password/passphrase if encrypted
--public Print the public key in PEM format
--private Print the private key in PEM format
--addpassword <ADDPASSWORD> Add a password/passphrase to the private key
--dump Print all the input parameters
--dumpkey Print the private RSA key variables n, e, p, q and d
--dumpextkey Print the extended RSA key variables n, e, p, q, d, dP, dQ, pInv and qInv
--factors Print all factors of n
-t, --threads <THREADS> Number of threads to use. Default: number of CPUs [default: 12]
-a, --attack <ATTACK> Specify attacks to run. Default: all. (e.g. --attacks ecm,wiener,sparse)
--exclude <EXCLUDE> Specify attacks to exclude. Default: none. (e.g. --exclude ecm,wiener,sparse)
--list List all available attacks
-h, --help Print help
-V, --version Print version
示例
从公钥解密消息
$ rsacracker --key public.pem -c 0xdeadbeef
从n和e解密消息
$ rsacracker -c 0xdeadbeef -n 123...789 -e 65537
从n、e和其他已知值解密消息
$ rsacracker -c 0xdeadbeef -n 123...789 -e 65537 --phi 123 --dp 123 --dq 123 --qinv 123 --pinv 123
从公钥解密文件
$ rsacracker --key public.pem -f secret.txt.enc
使用参数运行特定攻击
$ rsacracker --attack known_phi -n 123...789 -e 65537 --phi 0xdeadbeef
从公钥生成私钥
$ rsacracker --key public.pem --private
从e和n生成公钥
$ rsacracker -e 65537 -n 0xdeadbeef --public
导出私钥的秘密
$ rsacracker --key private.pem --dumpkey
$ rsacracker --key private.pem --dumpextkey
从私钥中移除密码
$ rsacracker --key private.pem --password R54Cr4ck3R --private
向私钥添加密码
$ rsacracker --key private.pem --addpassword R54Cr4ck3R --private
显示n的所有因子
$ rsacracker -n 123...789 --factors
运行离散对数攻击:当c和e在RSA加密公式(e^c mod n)中交换位置时
$ rsacracker --key public.pem -c 0xdeadbeef --dlog
Docker
从dockerhub获取
docker pull skyf0l/rsacracker
docker run -it --rm -v $PWD:/data skyf0l/rsacracker [args]
或自行构建
DOCKER_BUILDKIT=1 docker build . --file Dockerfile -t rsacracker
docker run -it --rm -v $PWD:/data rsacracker [args]
许可证
许可方式为以下之一
- Apache License,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您有意提交以包含在作品中的任何贡献,根据Apache-2.0许可证定义,应双重许可如上,不附加任何额外条款或条件。
依赖关系
~30–41MB
~788K SLoC