M30W Vault Tech

Flag: CYBN{0n_d1t_ch1ffr3m3nt_aHahAh_c3stM4rr4nt}

Challenge

24KB
Ouvrir

Description


Agent, le message suivant de l'acteur [redacted] réputé membre du groupe M30W a été intercepté.

J'ai fini de mettre au point l'idée d'algo de chiffrement dont on a parlé l'autre soir.

[redacted] en a profiter pour faire un petit tool pour chiffrer/déchiffrer nos messages.

Je l'ai essayé et faut pas dire, ça m'a l'air bien solide.

On peut pas se rater comme la dernière fois ...

EOF :3

Solution

Analyse statique

Décompilation avec Ghidra. Dans l'entry, on trouve la fonction FUN_00402800 qui est le main

J'en profite pour renommer les paramètres de main pour la lisibilité

On trouve une partie lecture du fichier, on peut en déduire le nom des variables. De plus, quand on est en mode decryption, on skip les 16 premiers octets du fichier :


Génération du secret

En dessous, on peut voir quelque chose qui ressemble à de la génération de clé :

Commençons par FUN_00402370, elle calcule la taille d'une chaîne de caractère, on la renomme en get_size.

Ensuite FUN_00402720, elle prend donc en paramètre le password et sa taille. Elle semble générer un secret. Les 8 premiers octets sont générés par FUN_004026c0 (elle fait un sha1 des 2 premiers caractères du password mais en s'en fou au final, donc je skip ce reverse).

Les 8 caractères suivants sont un XOR du password avec la clé M30W. On renomme cette fonction generate_secret.

Avec les renommages, on se retrouve avec un code un peu plus compréhensible. On peut d'ailleurs en déduire que FUN_00402450 est la fonction de chiffrement et local_68 le résultat :


Retrouver la clé

On comprend que c'est un chiffrement symétrique puisque la fonction encrypt est utilisée dans les 2 modes.

De plus, on peut retrouver le mot de passe utilisé à partir du fichier chiffré. Il suffit de refaire le XOR sur les 8 derniers octets du secret. En python ça donne :


Déchiffrement du flag

On a le password utilisé, on va juste lancer le binaire en mode decrypt avec :

Mis à jour

Ce contenu vous a-t-il été utile ?