LeHack 19 - Au service de la France #1

Posted on dim. 07 juillet 2019 in CTF

File : none

Au service de la france #1
30 Points
Au service de la france - partie 1
contexte
Vous êtes Jean-Michel, barbouze aguerrie de notre cher Pays. Vu que vous n'êtes pas très doué en langues étrangères, vous vous êtes spécialisé en informatique. Vous êtes devenu le Kev (Mitnick, pas Adams) de l'agence, et aujourd'hui le travail hardu, c'est pour vous...

a propos
Ce challenge est le premier d'une série de quatre challenges, qui vous permettra de récupérer suffisamment d'information pour contrer une attaque russe contre la France! Chaque challenge peut se faire de manière indépendante. Cependant, pour inciter les gens à réaliser les challenges dans l'ordre, chaque résolution du challenge numéro N vous donnera un indice pour résoudre le challenge N+1.

disclaimer
Ce challenge est une pure fiction. Toute ressemblance avec des gens et/ou entités a pour but d'apporter un peu plus de réalisme avec une dose d'humour(troll) au challenges principalement basé sur les ragots. Aucune atteinte à ces personnes/entités n'a donc été voulue, et l'auteur s'excuse par avance.

challenge
Le téléphone sonne de manière répétée depuis 10 minutes... Pourtant, il est 5h du matin, vous êtes encore complètement grisé du pot de départ de la veille... Après s'être levé et décrocher le combiné, moment qui vous a paru être une éternité, vous entendez une voix robotique : "- Bon..jour mon..sieur Hulot. Le pi..geon a de..co..llé." Pas le temps de dire "allo?" que ça a raccroché... Cependant, vous savez de qui il s'agit, c'est votre employeur! et ce genre de message ça signifie pas bon... Vous enfilez votre peignoir, et ouvrez votre boîte mail anonymisée gmail. Dedans, vous trouvez le message suivant:

''' To: jeanmichel78@gmail.com From: juliettedu38@gmail.com Objet: Hey cousin, vas mater ma nouvelle vidéo!

Salut cousin,

j'ai sorti une nouvelle vidéo. Faudrait vraiment que tu la regarde!

je te fais plein de bisous Juliette

Comme tu m'a appris la dernière fois qu'on s'est vu, ma signature pour dire que c'est bien moi! :

PT09PT09PSBCRUdJTiBFTkNSWVBURUQgUExBWUZBSVIgTUVTU0FHRSBJRDo4MzM1ODQ0ODQwODcxMDkyODcxMSAgICAgPT09PT09PQ0KDQpSWVBYVkZOUFZYRUFWQ1pJVkJESFRaVkJET0FWREhDRlJYWEZQQ1RNVFZSTUdCRVZaUlRLQ0FXSE5QQ1RaSENGVENUTVRWTFRUVkVBWUJWSVNGR0NDQU9FVkVLVlJaTlBTWVpTQ0VOVFFUQ1RUQ1JaUEdDWUtQUlpOVEZaUEdCS1lCSUJQTkhaTlpFR1BDRUFVWlFJRUFUTFlCREhUQ0NCS0hWVFlCVkVUTFpHVFZUVlRDWllXSEdQVFJUQ0NBQ0lWRUtWRVBFS1pUWUdHWFRTWEZQQ0VBS09DWUhWTFNFR0tWVE1ESFpPVkVESFFWT1RFVldIS1BWQ0NUUkVWVEdFWk5QTlBDRUFMU1FZQkdUVkZaQ1BWQ1NFTlBHREVYVE5FUFpHTlROUkVBSUJRSUhCRE9BVkRIQ1NESEFWT1RQTlFUSUhaU1hGUENJUFNRUEVSU0VBSUJUVkJGSVBUVlNWUEVFUEtFSFhTUVNST0RCS1BJR0RBTVNOVExaR1RWS1ZWWFBRRVBaRlZRREhBTVJOVkNPVElCS05IU05MRVZWQ0lCSVBCS1FJSFpUVkJGSVBUVkFRVkVUTFpHVFZHWktQWFRCVFBLSUJFQVhHS1RFQVVaUENDRlRTVFBaRkFRQ1RHRVBFS0VGWVFNS1JLSQ0KDQo9PT09PT09PT09PT09PT09PT09PT09RU5EIE1FU1NBR0U9PT09PT09PT09PT09PT09PT09PT09PQ==

encore des bisous! ''' 

Bon, comme souvent avec la l'encodage en base64, les deux signes = en fin de chaîne nous l'indique. On commence donc par décoder cette chaîne :

$ echo "PT09PT09PSBCRUdJTiBFTkNSWVBURUQgUExBWUZBSVIgTUVTU0FHRSBJRDo4MzM1ODQ0ODQwODcxMDkyODcxMSAgICAgPT09PT09PQ0KDQpSWVBYVkZOUFZYRUFWQ1pJVkJESFRaVkJET0FWREhDRlJYWEZQQ1RNVFZSTUdCRVZaUlRLQ0FXSE5QQ1RaSENGVENUTVRWTFRUVkVBWUJWSVNGR0NDQU9FVkVLVlJaTlBTWVpTQ0VOVFFUQ1RUQ1JaUEdDWUtQUlpOVEZaUEdCS1lCSUJQTkhaTlpFR1BDRUFVWlFJRUFUTFlCREhUQ0NCS0hWVFlCVkVUTFpHVFZUVlRDWllXSEdQVFJUQ0NBQ0lWRUtWRVBFS1pUWUdHWFRTWEZQQ0VBS09DWUhWTFNFR0tWVE1ESFpPVkVESFFWT1RFVldIS1BWQ0NUUkVWVEdFWk5QTlBDRUFMU1FZQkdUVkZaQ1BWQ1NFTlBHREVYVE5FUFpHTlROUkVBSUJRSUhCRE9BVkRIQ1NESEFWT1RQTlFUSUhaU1hGUENJUFNRUEVSU0VBSUJUVkJGSVBUVlNWUEVFUEtFSFhTUVNST0RCS1BJR0RBTVNOVExaR1RWS1ZWWFBRRVBaRlZRREhBTVJOVkNPVElCS05IU05MRVZWQ0lCSVBCS1FJSFpUVkJGSVBUVkFRVkVUTFpHVFZHWktQWFRCVFBLSUJFQVhHS1RFQVVaUENDRlRTVFBaRkFRQ1RHRVBFS0VGWVFNS1JLSQ0KDQo9PT09PT09PT09PT09PT09PT09PT09RU5EIE1FU1NBR0U9PT09PT09PT09PT09PT09PT09PT09PQ==" | base64 -d                                                               
======= BEGIN ENCRYPTED PLAYFAIR MESSAGE ID:83358448408710928711     =======

RYPXVFNPVXEAVCZIVBDHTZVBDOAVDHCFRXXFPCTMTVRMGBEVZRTKCAWHNPCTZHCFTCTMTVLTTVEAYBVISFGCCAOEVEKVRZNPSYZSCENTQTCTTCRZPGCYKPRZNTFZPGBKYBIBPNHZNZEGPCEAUZQIEATLYBDHTCCBKHVTYBVETLZGTVTVTCZYWHGPTRTCCACIVEKVEPEKZTYGGXTSXFPCEAKOCYHVLSEGKVTMDHZOVEDHQVOTEVWHKPVCCTREVTGEZNPNPCEALSQYBGTVFZCPVCSENPGDEXTNEPZGNTNREAIBQIHBDOAVDHCSDHAVOTPNQTIHZSXFPCIPSQPERSEAIBTVBFIPTVSVPEEPKEHXSQSRODBKPIGDAMSNTLZGTVKVVXPQEPZFVQDHAMRNVCOTIBKNHSNLEVVCIBIPBKQIHZTVBFIPTVAQVETLZGTVGZKPXTBTPKIBEAXGKTEAUZPCCFTSTPZFAQCTGEPEKEFYQMKRKI

======================END MESSAGE=======================

Cela nous donne un nouveau message encodé. Mais nous avons le nom de l'encodage utilisé : PLAYFAIR. On peut facilement trouver des décoder en ligne. On peut utiliser celui-ci qui propose de faire du brute force sur la chaine : https://bionsgadgets.appspot.com/ww_forms/playfair_ph_web_worker3.html.

ahmichelcontentdevousrevoirnousxsomxmespresquecertainsquelesrusxsespreparentuneofxfensivecontrelafranceapressetreinfiltreauseindundeleurbatimentdupontapunousenvoyerunecapturereseauquiestsensexecontenirsuffisamxmentdinformationspourdecouvrircequilenestveritablementmalheureusementceluiciaetetueavantdepouvoirnousfournirleprogramxmepermettantderecuperercetteinformationdepuislacaptureoncomptesurvouslavenirdelafranceendependpourrecupererlecaptureutilisezlidentifiantdumesxsagesurlesitetinyuploadx
score of plaintext is 1264.05 on trial: 26375, fudge factor: 0.15, % accept: 6.97, Doppleschach score: 0.62
Key: UYFGHZASTRBNCEVWLMPQDKXIO

(trial: 2000000 % accepted: 0.12  decrementing, new cycle len: 19) worker: 2

On patiente le temps qu'il décode et hop, on a notre message. On mettant les espaces, la ponctuation et en corrigeant les quelques fautes, il en devient plus lisible :

ah michel, content de vous revoir. nous sommes presque certains que les russes préparent une offensive contre la France après setrinfiltre au sein d’un de leur bâtiment. Dupont a pu nous envoyer une capture réseau qui est sensée contenir suffisamment d'informations pour découvrir ce qui l'en est véritablement. Malheureusement, celui-ci a été tué avant de pouvoir nous fournir le programme permettant de récupérer cette information depuis la capture. On compte sur vous. L'avenir de la France en dépend. Pour récupérer la capture; utilisez l'identifiant du message sur le site tinyupload.

On peut essayer d'envoyer un fichier pour savoir comment est construit l'URL sur http://s000.tinyupload.com/. Cela nous donne le lien suivant : http://s000.tinyupload.com/index.php?file_id=83358448408710928711. On récupère le fichier et on l'ouvre :

Bien joué, tu as résolu le premier challenge! Après avoir rentré le flag, n'hésite pas à continuer, mais je te préviens, ce sera plus dur! Pour la suite de l'histoire, va voir la page du challenge "au service de la france - partie 2".

Indice pour la suite: Le flag est présent au sein d'un protocole que l'on a pas l'habitude de voir.

voici le flag: LH{awmerbx2cft4u5uqgnde}

On donc des informations pour le chapitre suivant et le flag : LH{awmerbx2cft4u5uqgnde}/