题目信息
提供的文件
flag.enc
看后缀enc,分析是一个通过openssl加密后生成的文件
pubkey.pem
应该是一个公钥信息文件
打开pubkey.pem文件
这里我使用kali系统,因为kali系统自带了openssl
- 先进入openssl
- 输入 rsa -pubin -text -modulus -in warmup -in pubkey.pem 查看信息
Exponent:指的是RSA中的e
Modulus:指的是N,即pq相乘
对Modulus的处理
先将16进制转为10进制,接着在线质因数分解
现在已得到的信息:
p=275127860351348928173285174381581152299
q=319576316814478949870590164193048041239
e=65537
生成private.pem私钥文件
这里使用个工具 rsatool.py 可以通过p、q、e计算d,并生成pem文件
不过里面需要一些模块,对应的通过pip进行安装即可
由于kali2020内置了python2和3,这里我使用了如下命令:
python3 -m pip install gmpy
安装好需要的模块后输入命令:
python rsatool.py -f PEM -o private.pem -p 275127860351348928173285174381581152299 -q 319576316814478949870590164193048041239 -e 65537
即可生成private.pem文件
解密flag.enc文件
输入命令:
openssl rsautl -decrypt -in flag.enc -inkey private.pem
即可解密出