Ccmmutty logo
Commutty IT
11 min read

hack the box ~魔法使いへの道~ (その9) 【Walkthrough】Weak RSA

https://cdn.magicode.io/media/notebox/e1289a8f-7771-4f7a-add2-674e5272cf51.jpeg

はじめに

ホワイトハッカーを目指したエンジニアの活動記録です. セキュリティ関連の知識ゼロですが,奮闘していきます.
前回の記事はこちら,Find The Easy Passを攻略しました.
今回はBeginner TrackのWeak RSAをこちらの記事*1を参考に攻略していきたいと思います.
file

RsaCtfToolで解析

こちらのサイトよりRsaCtfTool*2を入手して,ダウンロードしたファイルを指定すると完了です.
┌──(maki㉿kali)-[~/Downloads/Weak RSA/RsaCtfTool-master/RsaCtfTool-master]
└─$ python RsaCtfTool.py --publickey key.pub --uncipherfile flag.enc 
private argument is not set, the private key will not be displayed, even if recovered.

[*] Testing key key.pub.
[*] Performing fibonacci_gcd attack on key.pub.
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 9999/9999 [00:08<00:00, 1238.77it/s]
[*] Performing mersenne_primes attack on key.pub.
 27%|████████████████████████████████████████████████████▏                                                                                                                                         | 14/51 [00:00<00:00, 258679.54it/s]
[*] Performing nonRSA attack on key.pub.
[!] Timeout.
[*] Performing pastctfprimes attack on key.pub.
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 113/113 [00:00<00:00, 491655.97it/s]
[*] Performing smallq attack on key.pub.
[*] Performing system_primes_gcd attack on key.pub.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7007/7007 [00:00<00:00, 190425.36it/s]
[*] Performing SQUFOF attack on key.pub.
[!] Timeout.
[*] Performing boneh_durfee attack on key.pub.
Can't load boneh_durfee because sage binary is not installed
[*] Performing comfact_cn attack on key.pub.
[*] Performing ecm2 attack on key.pub.
Can't load ecm2 because sage binary is not installed
[*] Performing fermat attack on key.pub.
[!] Timeout.
[*] Performing fermat_numbers_gcd attack on key.pub.
  0%|| 32/9999 [00:58<10:04:43,  3.64s/it][!] Timeout.                                                                                                                                                                                                                           
  0%|| 32/9999 [01:00<5:11:34,  1.88s/it]
[*] Performing mersenne_pm1_gcd attack on key.pub.
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1023/1023 [00:00<00:00, 13415.83it/s]
[*] Performing noveltyprimes attack on key.pub.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 21/21 [00:00<00:00, 296566.95it/s]
[*] Performing partial_q attack on key.pub.
[*] Performing pisano_period attack on key.pub.
[*] Performing pollard_p_1 attack on key.pub.
 27%|████████████████████████████████████████████████████                                                                                                                                             | 45/167 [00:59<02:43,  1.34s/it][!] Timeout.                                                                                                                                                                                                                           
 27%|████████████████████████████████████████████████████                                                                                                                                             | 45/167 [00:59<02:42,  1.33s/it]
[*] Performing primorial_pm1_gcd attack on key.pub.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10000/10000 [00:02<00:00, 3691.08it/s]
[*] Performing qicheng attack on key.pub.
Can't load qicheng because sage binary is not installed
[*] Performing siqs attack on key.pub.
Can't load siqs because yafu binary is not installed
[*] Performing small_crt_exp attack on key.pub.
Can't load small_crt_exp because sage binary is not installed
[*] Performing wiener attack on key.pub.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 607/607 [00:00<00:00, 2885.62it/s]
 26%|█████████████████████████████████████████████████▍                                                                                                                                            | 158/607 [00:00<00:00, 2538.03it/s]
[*] Attack success with wiener method !

Results for key.pub:

Unciphered data :
HEX : 0x0221cfb29883b06f409a679a58a4e97b446e28b244bbcd0687d178a8ab8722bf86da06a62e042c892d2921b336571e9ff7ac9d89ba90512bac4cfb8d7e4a3901bbccf5dfac01b27bddd35f1ca55344a75943df9a18eadb344cf7cf55fa0baa7005bfe32f41004854427b73316d706c335f5769336e3372735f34747434636b7d
INT (big endian) : 1497194306832430076266314478305730170974165912795150306640063107539292495904192020114449824357438113183764256783752233913408135242464239912689425668318419718061442061010640167802145162377597484106658670422900749326253337728846324798012274989739031662527650589811318528908253458824763561374522387177140349821
INT (little endian) : 88072555727442581906733819159067155697935911281144218615701455765307172880720320635323713584599918143771491506717753835756287620091394177323854379763656327463368952228869334584829987719054100173777641056621175603973323216296201097722843393696547323416050555734978260588354260747823940515336870113457552171266
STR : b'\x02!\xcf\xb2\x98\x83\xb0o@\x9ag\x9aX\xa4\xe9{Dn(\xb2D\xbb\xcd\x06\x87\xd1x\xa8\xab\x87"\xbf\x86\xda\x06\xa6.\x04,\x89-)!\xb36W\x1e\x9f\xf7\xac\x9d\x89\xba\x90Q+\xacL\xfb\x8d~J9\x01\xbb\xcc\xf5\xdf\xac\x01\xb2{\xdd\xd3_\x1c\xa5SD\xa7YC\xdf\x9a\x18\xea\xdb4L\xf7\xcfU\xfa\x0b\xaap\x05\xbf\xe3/A\x00HTB{s1mpl3_Wi3n3rs_4tt4ck}'
HEX : 0x000221cfb29883b06f409a679a58a4e97b446e28b244bbcd0687d178a8ab8722bf86da06a62e042c892d2921b336571e9ff7ac9d89ba90512bac4cfb8d7e4a3901bbccf5dfac01b27bddd35f1ca55344a75943df9a18eadb344cf7cf55fa0baa7005bfe32f41004854427b73316d706c335f5769336e3372735f34747434636b7d
INT (big endian) : 1497194306832430076266314478305730170974165912795150306640063107539292495904192020114449824357438113183764256783752233913408135242464239912689425668318419718061442061010640167802145162377597484106658670422900749326253337728846324798012274989739031662527650589811318528908253458824763561374522387177140349821
INT (little endian) : 22546574266225300968123857704721191858671593287972919965619572675918636257464402082642870677657579044805501825719744981953609630743396909394906721219496019830622451770590549653716476856077849644487076110495020954617170743371827481017047908786316114794508942268154434710618690751442928771926238749045133355844096
STR : b'\x00\x02!\xcf\xb2\x98\x83\xb0o@\x9ag\x9aX\xa4\xe9{Dn(\xb2D\xbb\xcd\x06\x87\xd1x\xa8\xab\x87"\xbf\x86\xda\x06\xa6.\x04,\x89-)!\xb36W\x1e\x9f\xf7\xac\x9d\x89\xba\x90Q+\xacL\xfb\x8d~J9\x01\xbb\xcc\xf5\xdf\xac\x01\xb2{\xdd\xd3_\x1c\xa5SD\xa7YC\xdf\x9a\x18\xea\xdb4L\xf7\xcfU\xfa\x0b\xaap\x05\xbf\xe3/A\x00HTB{s1mpl3********}'

おわりに

既存のツールを使用することで簡単に解析できました. しかし,あまりに簡単に出来すぎて勉強になりませんので次回は,別のアプローチで問題を解いていきます.

Discussion

コメントにはログインが必要です。