Parfois, on a tellement envie de plonger dans les yeux d'un créateur de virus et de demander : pourquoi et comment ? Pour la question du « comment », nous nous débrouillerons, mais connaître la pensée qui dirigeait tel ou tel créateur de malware serait très intéressant. Surtout lorsque l'on tombe sur de telles « perles ».
Le héros de cet article est un exemple intéressant de ransomware. Il semble avoir été conçu comme un énième « extorqueur », mais sa réalisation technique ressemble davantage à une mauvaise blague. C'est de cette réalisation dont nous allons parler aujourd'hui.
Malheureusement, il est presque impossible de suivre le cycle de vie de cet encodeur - il y a trop peu de statistiques à son sujet, car il n'a, heureusement, pas été largement diffusé. Nous allons donc laisser de côté l'origine, les méthodes d'infection et d'autres mentions. Nous parlerons seulement de notre rencontre avec Wulfric Ransomware et de la manière dont nous avons aidé l'utilisateur à sauver ses fichiers.
I. Comment tout a commencé
Notre laboratoire antivirus reçoit souvent des demandes d'aide de personnes victimes de ransomwares. Nous offrons de l'aide sans tenir compte des produits antivirus qu'ils ont installés. Cette fois, une personne s'est tournée vers nous dont les fichiers ont été touchés par un encodeur inconnu.
Bonjour ! Des fichiers ont été chiffrés sur un stockage de fichiers (samba4) sans mot de passe. Je soupçonne que l'infection provienne de l'ordinateur de ma fille (Windows 10 avec la protection intégrée Windows Defender). L'ordinateur de ma fille n'a pas été allumé après ça. Les fichiers sont principalement chiffrés en .jpg et .cr2. L'extension des fichiers après chiffrement : .aef.
Nous avons reçu de l'utilisateur des échantillons de fichiers chiffrés, une note de rançon et un fichier qui est probablement la clé nécessaire au créateur du ransomware pour déchiffrer les fichiers.
Voici toutes nos pistes :
- 01c.aef (4481K)
- hacked.jpg (254K)
- hacked.txt (0K)
- 04c.aef (6540K)
- pass.key (0K)
Regardons la note. Combien de bitcoins cette fois ?
Traduction :
Attention, vos fichiers sont chiffrés !
le mot de passe est unique pour votre PC.Payez la somme de 0.05 BTC à l'adresse bitcoin : 1ERtRjWAKyG2Edm9nKLLCzd8p1CjjdTiF
Après le paiement, envoyez-moi un e-mail en joignant le fichier pass.key à Wulfric@gmx.com avec une notification de paiement.Après confirmation, je vous enverrai le déchiffreur pour vos fichiers.
Vous pouvez payer des bitcoins en ligne de différentes manières :
— paiement par carte bancaire
À propos des bitcoins :
Si vous avez des questions, écrivez-moi à Wulfric@gmx.com
En tant que bonus, je vais vous expliquer comment votre ordinateur a été piraté et comment le protéger à l'avenir.
Un loup pathétique, destiné à montrer à la victime la gravité de la situation. Cependant, cela aurait pu être pire.

Fig. 1. -En tant que bonus, je vais vous expliquer comment protéger votre ordinateur à l'avenir. -Ça semble légitime.
II. Passons à l'action
Tout d'abord, nous avons examiné la structure de l'échantillon envoyé. Étrangement, il ne ressemblait pas à un fichier touché par un ransomware. Ouvrons l'éditeur hexadécimal et regardons. Les 4 premiers octets contiennent la taille originale du fichier, les 60 octets suivants sont remplis de zéros. Mais ce qui est le plus intéressant se trouve à la fin :

Fig. 2. Analysons le fichier corrompu. Qu'est-ce qui saute immédiatement aux yeux ?
Tout s'est avéré incroyablement simple : 0x40 octets de l'en-tête ont été déplacés à la fin du fichier. Pour récupérer les données, il suffit de les remettre au début. L'accès au fichier est restauré, mais le nom est resté chiffré, et c'est plus compliqué.

Fig. 3. Le nom chiffré en Base64 ressemble à une série de caractères sans cohérence.
Essayons de le déchiffrer pass.key, envoyé par l'utilisateur. On y voit une séquence de 162 octets en ASCII.

Fig. 4. 162 caractères laissés sur le PC de la victime.
Si l'on regarde de près, on peut voir que les caractères se répètent à une certaine périodicité. Cela peut indiquer l'utilisation de XOR, où les répétitions sont caractéristiques, la fréquence dépendant de la longueur de la clé. En divisant la chaîne en segments de 6 caractères et en appliquant quelques variantes de séquences XOR, nous n'avons pas obtenu de résultat significatif.

Fig. 5. Vous voyez des constantes répétés au milieu ?
Nous avons décidé de rechercher les constantes, car oui, on peut aussi faire ça ! Et tous ont finalement mené à un seul algorithme − Batch Encryption. Après avoir étudié le script, il est devenu évident que notre chaîne n'est rien d'autre que le résultat de son fonctionnement. Il convient de mentionner que ce n'est pas un ransomware, mais tout simplement un encodeur, remplaçant les caractères par des séquences de 6 octets. Aucun clé ou autre secret 🙁

Fig. 6. Un morceau de l'algorithme original d'auteur inconnu.
L'algorithme ne fonctionnerait pas correctement sans un détail :

Fig. 7. Morpheus approuvé.
Grâce à une substitution inverse, nous transformons la chaîne en pass.key dans un texte de 27 caractères. Une attention particulière doit être portée au texte humain (probablement) ‘asmodat’.

Fig.8. USGFDG=7.
Google nous aide encore. Après une petite recherche, nous trouvons un projet intéressant sur GitHub – Folder Locker, écrit en .Net et utilisant la bibliothèque ‘asmodat’ d'un autre compte sur GitHub.

Fig. 9. Interface de Folder Locker. Vérifié pour les logiciels malveillants.
L'outil est un chiffreur pour Windows 7 et supérieur, distribué avec un code source ouvert. Lors du chiffrement, un mot de passe est utilisé, nécessaire pour le déchiffrement ultérieur. Il permet de travailler à la fois avec des fichiers individuels et des répertoires entiers.
Sa bibliothèque utilise l'algorithme de chiffrement symétrique Rijndael en mode CBC. Il est remarquable que la taille du bloc ait été choisie à 256 bits – contrairement à la norme AES, qui limite la taille à 128 bits.
Notre clé est générée selon la norme PBKDF2. À cet égard, le mot de passe est le SHA-256 de la chaîne saisie dans l'outil. Il ne reste plus qu'à trouver cette chaîne pour générer la clé de déchiffrement.
Eh bien, revenons à notre texte déjà décodé. pass.keySouvenez-vous de la ligne avec un ensemble de chiffres et le texte ‘asmodat’? Essayons d'utiliser les 20 premiers octets de la chaîne comme mot de passe pour Folder Locker.
Regarde, ça fonctionne ! Le mot de passe a fonctionné et tout s'est parfaitement déchiffré. À en juger par les symboles du mot de passe, c'est une représentation HEX d'un mot particulier en ASCII. Essayons d'afficher le mot de passe en texte clair. Nous obtenons ‘shadowwolf’. Vous commencez à ressentir les symptômes de la lycanthropie ?
Jetons un autre coup d'œil à la structure du fichier infecté, maintenant que nous connaissons le mécanisme de fonctionnement du locker :
- 02 00 00 00 – mode de chiffrement des noms ;
- 58 00 00 00 – longueur du nom de fichier chiffré et codé en base64 ;
- 40 00 00 00 – taille de l'en-tête transféré.
En rouge et en jaune sont soulignés le nom chiffré et l'en-tête transféré respectivement.

Fig. 10. Le nom chiffré est en rouge, l'en-tête transféré en jaune.
Comparons maintenant les noms chiffrés et déchiffrés en représentation hexadécimale.
Structure des données déchiffrées :
- 78 B9 B8 2E – déchets créés par l'outil (4 octets) ;
- 0C 00 00 00 – longueur du nom déchiffré (12 octets) ;
- ensuite vient, en fait, le nom du fichier et le remplissage de zéros jusqu'à la taille de bloc requise (padding).

Fig. 11. IMG_4114 a l'air beaucoup mieux.
III. Conclusions et observations
En revenant au début. Nous ne savons pas ce qui a conduit l'auteur Wulfric à agir ainsi et quel était son objectif. Pour un utilisateur ordinaire, le résultat du travail même d'un tel ransomware semble être un grand malheur. Les fichiers ne s'ouvrent pas. Tous les noms ont disparu. Au lieu de l'image familière, un loup apparaît à l'écran. Ils nous obligent à lire des choses sur les bitcoins.
En réalité, cette fois, sous le masque d'un « encodeur terrifiant » se cachait une tentative si ridicule et futile d'extorsion, où l'agresseur utilise des programmes prêts à l'emploi et laisse les clés juste sur le lieu du crime.
À propos des clés. Nous n'avons pas rencontré de script malveillant ou de trojan qui nous permettrait de comprendre comment cela s'est produit. pass.key Le mécanisme par lequel le fichier est apparu sur le PC infecté reste inconnu. Mais je me souviens que dans sa note, l'auteur mentionnait l'unicité du mot de passe. Eh bien, le mot de passe pour le décryptage est aussi unique que le nom d'utilisateur shadow wolf 🙂
Et pourtant, ombre loup, pourquoi et pour quelles raisons ?
Source : habr.com
