Outils pour utilisateurs

Outils du site


ctf:2016:ndh_2k16:rsa

Crypto 150 - RSA challenge

L'auteur du challenge nous dit qu'il à sniffer une connexion et qu'il à intercepter le flag du challenge dans un fichier zip. Il nous explique que la clé publique à permis de chiffré la clé aes qui à elle même permit de chiffrer le ciphermessage.

Le fichier zip du challenge contient :

unzip rsa.zip 
	aes_key_cipher
	ciphermessage
	pub_key 

Récupération des informations de la clé publique grâce à open ssl :

openssl rsa -in pub_key -pubin -text -modulus 
Public-Key: (2072 bit)
Modulus:
    00:8d:a5:69:19:b5:26:d4:52:25:ac:ed:4b:e6:45:
    22:ce:f0:4a:63:91:0b:9f:6f:fe:a6:b1:12:55:41:
    01:3b:e4:5d:48:b6:fb:26:71:b7:54:0e:6a:4e:0b:
    55:e3:a9:e4:c4:5a:8d:5f:54:a0:69:9c:65:32:d4:
    a1:28:7f:ac:b0:08:b1:c5:6e:35:d6:01:dc:2a:9e:
    2e:66:51:89:ea:a3:5d:22:d7:be:a2:52:c1:ec:f2:
    70:31:ab:65:7d:5b:35:e8:2c:de:70:f8:25:9d:2e:
    14:e9:86:f3:62:e3:e8:6e:7b:d8:e4:81:2a:52:f2:
    e8:cc:2f:69:b8:b0:c9:59:77:8f:db:24:0a:8e:17:
    cb:95:72:45:70:12:d8:3b:6c:72:72:90:e5:0b:8e:
    7d:a2:8f:eb:df:ab:f5:23:da:03:b9:4b:94:32:2a:
    f4:21:f9:ca:02:ad:e6:04:da:ab:92:cd:9c:28:24:
    44:36:f1:15:fd:be:d7:6d:2c:85:00:7a:ca:7f:ce:
    49:89:3a:f8:0e:79:55:63:2e:c7:b8:9f:56:fa:b0:
    18:76:e0:fe:88:29:9a:37:34:0d:43:9c:b2:e0:1b:
    3c:07:e6:0c:88:47:42:1b:fe:04:9d:59:95:40:6b:
    26:f4:a0:8b:20:d1:49:b3:c6:1a:ae:a3:53:1d:62:
    f8:f8:d1:e2:87
Exponent: 65537 (0x10001)
Modulus=8DA56919B526D45225ACED4BE64522CEF04A63910B9F6FFEA6B1125541013BE45D48B6FB2671B7540E6A4E0B55E3A9E4C45A8D5F54A0699C6532D4A1287FACB008B1C56E35D601DC2A9E2E665189EAA35D22D7BEA252C1ECF27031AB657D5B35E82CDE70F8259D2E14E986F362E3E86E7BD8E4812A52F2E8CC2F69B8B0C959778FDB240A8E17CB9572457012D83B6C727290E50B8E7DA28FEBDFABF523DA03B94B94322AF421F9CA02ADE604DAAB92CD9C28244436F115FDBED76D2C85007ACA7FCE49893AF80E7955632EC7B89F56FAB01876E0FE88299A37340D439CB2E01B3C07E60C8847421BFE049D5995406B26F4A08B20D149B3C61AAEA3531D62F8F8D1E287
writing RSA key
-----BEGIN PUBLIC KEY-----
MIIBJTANBgkqhkiG9w0BAQEFAAOCARIAMIIBDQKCAQQAjaVpGbUm1FIlrO1L5kUi
zvBKY5ELn2/+prESVUEBO+RdSLb7JnG3VA5qTgtV46nkxFqNX1SgaZxlMtShKH+s
sAixxW411gHcKp4uZlGJ6qNdIte+olLB7PJwMatlfVs16CzecPglnS4U6YbzYuPo
bnvY5IEqUvLozC9puLDJWXeP2yQKjhfLlXJFcBLYO2xycpDlC459oo/r36v1I9oD
uUuUMir0IfnKAq3mBNqrks2cKCRENvEV/b7XbSyFAHrKf85JiTr4DnlVYy7HuJ9W
+rAYduD+iCmaNzQNQ5yy4Bs8B+YMiEdCG/4EnVmVQGsm9KCLINFJs8YarqNTHWL4
+NHihwIDAQAB
-----END PUBLIC KEY-----

Il nous faut convertir notre Modulo (modulus) d'hexa en décimal.

Pour cela on utilise le site : Convertisseur de grands nombres

Maintenant que nous avons notre modulo en décimal il faut le factoriser :

On utilise le site Factor db , enorme base de donnée de factorisation.

http://factordb.com/index.php?query=299996217561787292756826251240073744022587364427659002955601969311597453693948323421942282716737653493469667806494795328718748694431287426493332498123774403296361258944222401796946976412532226598881087042326060698386611304550152758781853605660146138394024484376984580234460609993575374222942038026173435262460884234328411077658271473762471945787635582916630508147146325427058379173689622281755189370552117476758492729644576568772220182957835384550972772092654842082706142246481708409910183742375894996805693099913395071166112170527842473265346582564838421321907545834628201837626578791668861148755559537560386588395858682503

Nous obtenons notre P et notre Q que nous utiliserons pour créer la clé privé.

Création de la clé privé , nous utilisons le programme get_priv_key.bin (disponible dans notre article sur le rsa , section cryptographie)

./get_priv_key.bin 10038779 29883735617826360432561196061799322808340273695402498944901762386799973751185111597928620872791168477109583526691323250438997481111127899766827469568139153506254222644429407380812644287968908031433014616849923750526494437675154793105999604698952545762191247000953460598590785791138083050034475111582139148840798690192144988714092767034962314220448082671869806890573676881128509669720752123515737259536455327561100082952775090354336935095177947890970881228947747737320060761022999750259487109176912351273565550144434404937703297435658507201458123798206776075248548238249711627044143395493501863997161361711457796649957 65537 > key_priv

Genial on à recréé la clé privé.

On déchiffre notre clé aes avec notre clé privé rsa.

openssl rsautl -decrypt -in aes_key_cipher -out plaintext -inkey key_priv
clé aes :
rsa_hackerzvoice_for_win

Il ne nous reste plus qu'a déchiffrer notre ciphermessage :

cat ciphermessage| openssl enc -d -aes-256-cbc -nosalt -pass pass:rsa_hackerzvoice_for_win > flag 

Attention à bien àjouter l'option -nosalt sinon vous aurez des erreurs.

----------------------------------------------------------------------
hey dude!

keep it up! https://www.youtube.com/watch?v=1F81S50xL8I


btw, i think the flag for this chall should be: ndh2k16_cac4015707

freeman
-----------------------------------------------------------------------
ctf/2016/ndh_2k16/rsa.txt · Dernière modification: 2016/07/04 08:39 (modification externe)