Dans cet article, nos équipes vous proposent une de leurs analyses qui fait suite à la découverte en janvier 2021 d’une nouvelle famille de ransomwares appelée CobraLocker ainsi qu’un petit outil open-source pour récupérer les fichiers chiffrés par cette variante.
TEHTRIS, dans un souci d’amélioration continue, intègre systématiquement ces nouvelles détections à ses outils.
Les ransomwares n’épargnent pas le jeu vidéo
La tendance actuelle à utiliser des ransomwares pour se faire de l’argent facile n’épargne pas le domaine du jeu vidéo. CobraLocker est un ransomware se faisant passer soit pour la suite de Among Us, soit pour une édition horreur du jeu. Petit rappel, Wikipédia définit Among Us comme « un jeu vidéo d’ambiance multijoueur en ligne développé et édité par le studio InnerSloth, sorti en 2018 sur Android, iOS, Chrome OS puis Windows, en 2020 sur Nintendo Switch et en 2021 sur PlayStation 4 et PlayStation 5 »[1].
Ce jeu est disponible sur toutes les plateformes.
L’objectif de CobraLocker est de chiffrer les fichiers et de verrouiller la machine de la victime afin de la forcer à payer une rançon de 300$. Il vise les PC sous Windows.
[1] Wikipédia : https://fr.wikipedia.org/wiki/Among_Us
Pour la variante AmongUs2, l’affichage de la rançon ne se fait pas automatiquement à cause d’un bug dans le programme : il faut l’exécuter manuellement (le fichier se nomme LogonUI.exe dans C:).
Cette version semble avoir été un échec, puisque aucune transaction n’a été effectuée à cette adresse.
La variante Horror Edition est bien plus intéressante : celle-ci affiche une image visant à effrayer la victime pendant quelques secondes, puis affiche le message « Do you want to play a game? ».
La rançon est cette fois-ci en russe.
Récupération de données
Une analyse du malware a permis de révéler que les fichiers peuvent être déchiffrés grâce à la clé de chiffrement AES 256 que l’on retrouve avec le code. Nous allons vous expliquer comment.
Situation : deux fichiers importants sont chiffrés par la variante AmongUs2 de CobraLocker.
Analyse du malware
Dropper
CobraLocker étant développé en C# .NET, on peut utiliser un décompilateur .NET pour le reverser.
On remarque la présence d’un Form qui, à son chargement, crée deux fichiers AmongUs.exe dans C: depuis la ressource Ressources.AmongUs.
Locker (AmongUs.exe)
Afin de limiter les capacités de l’utilisateur, CobraLocker effectue plusieurs opérations visant le gestionnaire de tâches, l’éditeur de registres et l’interface de login.
On remarque une première commande qui permet de supprimer l’exécutable du gestionnaire de tâches et l’interface d’authentification utilisateur. L’auteur a oublié le /c à passer à l’argument pour que cmd.exe exécute la commande, ce qui empêche la suppression de LogonUI.exe, et comme nous allons le voir par la suite, l’affichage de la rançon.
CobraLocker insiste particulièrement sur la désactivation du gestionnaire de tâches, puisqu’il le désactive ensuite à l’aide d’une clé de registre…
Enfin, il désactive l’ouverture de explorer.exe à l’ouverture de la session, en affectant « empty » à la clé WinLogon :
Comment CobraLocker déclenche ses fonctionnalités ?
CobraLocker utilise alors quatre timers qui servent à déclencher les différentes fonctionnalités du ransomware.
- Timer 1 (suppression des desktop.ini)
Un premier timer gère la suppression des desktop.ini. - Timer 2 (fermer les fenêtres)
Le second timer sert à fermer les fenêtres de divers outils.
- Timer 3 (chiffrement)
Un troisième timer exécute le chiffrement des fichiers. On remarque une fonction Start_Encrypt() avec une chaîne de caractères particulièrement longue nommée « password », qui permet de dériver la clé de chiffrement AES256.
Dans cette même fonction, on voit les répertoires ciblés par le chiffrement, qui sont les répertoires Desktop, Downloads et Pictures de l’utilisateur courant.
L’auteur semble également avoir oublié quelques lignes de code, puisque cette variante n’applique pas le chiffrement aux répertoires Documents, bien qu’il s’y intéresse au même titre que Desktop, Downloads et Pictures.
Cette même fonction fait appel à EncryptFile pour chaque fichier, fonction qui va créer un hash sha256 du mot de passe puis envoyer la clé et le contenu du fichier à chiffrer à AES_Encrypt.
AES_Encrypt permet de chiffrer les données à partir de la clé, à laquelle on applique un sel [1,2,3,4,5,6,7,8].
L’implémentation et le sel utilisés pour le chiffrement sont intrigants. Après quelques recherches, on découvre que l’auteur a copié/collé son code depuis ce site : https://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt
La version Horror Edition de CobraLocker utilise la même technique, mais avec un mot de passe différent.
Ces informations ont permis de développer l’outil de déchiffrement présenté précédemment.
- Timer 4 (rançon)
Le quatrième timer permet de remplacer LogonUI.exe par la rançon, celle-ci étant droppée depuis les ressources de AmongUs.exe. Cette étape échoue (en effet, il n’arrive pas à déposer la rançon dans C:windowssystem32 car LogonUI.exe n’a pas été supprimé), ce qui force la victime à exécuter elle-même LogonUI.exe dans c: afin d’afficher la rançon.
Conclusion
Bien que l’opération semble avoir été un échec, CobraLocker est un cas intéressant car les cybercriminels se sont montrés imaginatifs pour piéger leurs victimes mais maladroits pendant le développement du malware.
Nom | SHA256 | Rôle |
AmongUs2.exe | bdcc8754a9f75c2fe1f909af669ac59f25d635139f3634f525e4189db604e3f0 | Dropper |
AmongUs2.exe | ff53667fe3745601d6d04668cd854813f650087be2872876de71d412b70eb0cd | Dropper |
AmongUs.exe (Horror Edition) | ba28a0615626a40254c4e4167e0b3f8bc82bdd83f42b225605c34268c38ef0b5 | Ransomware |
AmongUsLauncher.exe | 88d55af8d84c1909e9ccf962e59f71dacf158eb9fd671920a23b7390103bd58f | Ransomware |
AmongUsLauncher.exe | ec621d94c847976baa8b3ead1bb98c2a0951432ba21181f09fb1c55dcddd98c3 | Ransomware |