CTF-RSA-tool 安装全过程
前提:
安裝的機子可以連接外網
機子安裝了python2.7
機子安裝了pip
1、安裝引導
Description
CTF-RSA-tool 是一款基于python以及sage的小工具,助不熟悉RSA的CTFer在CTF比賽中快速解決RSA相關的 基本題型 。
Requirements
requests
gmpy2
pycrypto
libnum
sagemath(optional)
Installation
安裝libnum
git clone https://github.com/hellman/libnum.git
cd libnum
python setup.py install
安裝gmpy2,參考:
easy_install gmpy2
如果不行,可以嘗試我的安裝過程:https://3summer.github.io/2018/01/24/CTF-RSA-tool-install/
克隆倉庫,安裝依賴
git clone https://github.com/3summer/CTF-RSA-tool.git
cd CTF-RSA-tool
pip install -r “requirements.txt”
安裝sagemath(非必須)
安裝sagemath的以支持更多的算法,提高解題成功率,嫌麻煩也可以不安裝
官網:http://www.sagemath.org
我的安裝過程:https://3summer.github.io/2017/12/06/sage/
Usage
查看全部參數及幫助
python solve.py -h
列舉幾個實用的小功能(解題的例子見下面)
輸入N與e創建公鑰
python solve.py -g --createpub -N your_modulus -e your_public_exponent -o public.pem
查看密鑰文件
python solve.py -g --dumpkey --key examples/smallfraction.pub
將加密文件轉為十進制(方便寫入文本,配合-i需要)
python solve.py -g --enc2dec examples/jarvis_oj_hardRSA/flag.enc
Examples
非 --input(文本文檔自動識別攻擊) 的情況下,請至少選擇 --private(打印得到的私鑰) 或 --decrypt(解密一個加密的文件) 或 --decrypt_int(解密一個十進制數) 中的一個,不然程序不會干什么事,具體參考example.txt
大多數情況下,只用使用 python solve.py -i rsa.txt 指定一個txt文本,txt的內容為你從題目獲取的變量,如
n = **********
e = **********
c = **********
用-i指定這個文本文檔就行了,這樣就不用用命令行去一個個指定參數,弄的終端看著很亂。 這個txt的編寫規范參看examples/input_example.txt
Tips
每次使用都要找到項目目錄很麻煩,可以做個符號鏈接,鏈接solve.py到bin目錄下,如在我的MACos中
ln -s /Users/3summer/Documents/code/CTF-RSA-tool/solve.py /usr/local/bin/rsa_solve
之后,就能直接在終端輸入rsa_solve -i rsa.txt去快速秒簡單題了
How does it work
根據題目給的參數類型,自動判斷應該采用哪種攻擊方法,并嘗試得到私鑰或者明文,從而幫助CTFer快速拿到flag或解決其中的RSA考點
大體思路
判斷輸入
首先,識別用戶的輸入,可以是證書 pem 文件,也可以通過命令行參數指定n,e等變量的值,甚至可以通過命令行指定題目所給的txt文件并自動識別里面的變量(見examples)
判斷攻擊方法
根據取到的參數類型及數量,選取可能成功的方法并采用一定的優先級逐個嘗試。
如常見的題型:給了一個公鑰和一個加密的密文,我們需要先分解大整數N,然后得到私鑰再去解密。考點在于大整數分解,腳本會挨個嘗試下面 已實現的攻擊方法 中列舉出的關于分解大整數的方法,直到分解成功。
選擇輸出
CTFer可以通過命令行選擇是輸出私鑰還是輸出解密后的密文,還是一起輸出
已實現的攻擊方法
主要參考ctf-wiki和RsaCtfTool及自己平時遇見的一些題型
大整數分解
檢查過去的ctf比賽中出現的素數
Gimmicky Primes method
Wiener’s attack
factordb在線分解N
Small q (q < 100,000)
費馬分解(p&q相近時)
Boneh Durfee Method (d < n^0.292)
Small fractions method when p/q is close to a small fraction
Basic Broadcast Attack
Known High Bits Factor Attack
Common factor between ciphertext and modulus attack
小公鑰指數攻擊
Rabin 算法
模不互素
共模攻擊
d泄露攻擊
Reference
ctf-wiki
RsaCtfTool
jarvisoj
RSA-and-LLL-attacks
rsa-wiener-attack
rsatool
TODO
更多有關Coppersmith的攻擊
https://ctf-wiki.github.io/ctf-wiki/crypto/asymmetric/rsa/rsa_coppersmith_attack.html
http://inaz2.hatenablog.com/entries/2016/01/20
改善RsaCtfTool中幾個沒加進去的方法(我覺得不太ok的暫時沒加進來)
https://github.com/Ganapati/RsaCtfTool
尋找更多題型來豐富攻擊方法
google
github
baidu
…
轉載自原網站:
https://github.com/3summer/CTF-RSA-tool/blob/master/readme.md
2、安裝過程
1)安裝libnum
安裝命令
- 1
如果報錯,試下下面的
pip install --target=E:/python2.7/site-packages libnum- 1
(報錯上會有相應的地址)
2)安裝gmpy2
pip install wheel- 1
安裝vc++9.0 for python2.7(移步我資源列表下載)
exe文件安裝gmpy2
(文件下載地址:https://download.csdn.net/download/xuhc25/14919865
)
3)安裝CTF-RSA-tool
cd CTF-RSA-tool(你工具解壓的路徑)
文件下載地址:移步我資源列表下載
翻我資源鏈接
總結
以上是生活随笔為你收集整理的CTF-RSA-tool 安装全过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载:sqlmap的应用实战
- 下一篇: 转载:分享一下免费的ppt网站(好看,免