Annonce

Réduire
Aucune annonce.

Analyse d'un dropper macro VBA (version du pauvre)

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Tutoriel Analyse d'un dropper macro VBA (version du pauvre)

    Avertissement : je suis novice dans ce domaine, et de plus je ne possède pas les connaissances adéquates en VBA ni API Windows en général. De quoi me mêle-je donc ?
    C'est en essayant qu'on apprend, l'occasion fait le laron.
    La méthode ad hoc que j'ai appliquée peut être utile à des non spécialistes, qui doivent néanmoins réagir à une telle attaque.

    1 - L'attaque

    Le 16 août à 18:25 heure française, j'ai reçu un email suspect :
    Sujet : nomdedomaineinconnu.tld bill
    De : "manager" @ un domaine que je ne connais pas
    A : 4 adresses aussi inconnues à part la mienne
    A noter qu'une des adresses est dans le même domaine que celui mentionné dans le sujet

    Le texte :
    hi,

    the document you have emailed me has been enclosed to this correspondence.
    Thank you

    Et bien sûr une pièce jointe : un fichier nommé nomdedomaineinconnu.tld332034.doc
    (encore le même nom de domaine que celui du sujet et d'un des destinataires)

    J'ai d'abord classé cet email en junk, puis repris une activité normale. L'heure de l'apéro approchait

    Environ 20 minutes plus tard, je me suis ravisé et ai soumis le fichier joint à https://www.virustotal.com
    Ce site fait analyser les fichiers qu'on lui soumet par une soixantaine d'anti-virus.

    En l'occurence VirusTotal m'a indiqué que mon fichier avait déjà été soumis, verdict : 5 anti-virus (AV) l'avaient detecté comme malicieux.
    J'ai tout de même forcé une nouvelle analyse : cette fois 6 AV le détectaient :

    Code:
    Antivirus           Result                     Update
    F­Secure            Trojan:W97M/Nastjencro.A   20160816
    McAfee              W97M/Dropper.cd            20160816
    McAfee­GW­Edition   W97M/Dropper.cd            20160816
    Qihoo­360           virus.office.gen.70        20160816
    Sophos              Troj/DocDl­L               20160816
    Tencent             Macro.Trojan.Dropperd.Auto 20160816
    Précision : pendant quelques années j'ai travaillé pour un de ces éditeurs d'AV, je pourrais donc être content qu'il soit parmi les premiers à détecter mon malware
    Mais les diverses attaques comparables que j'ai eu à traîter m'ont montré que la vitesse de réaction des éditeurs est très variable selon les cas.
    Il ne faut donc pas prendre les résultats de VirusTotal pour un indicateur de la qualité des AV ni de la rapidité de mise à jour de leurs bases de signatures.

    Sur les cas que j'ai eu à gérer, le temps de mise à jour des AV pouvait aller de quelques heures à une journée.

    2 - Analyse

    On peut voir que la désignation du malware par les AV est très aléatoire, chacun ayant sa nomenclature.
    Cependant, certains éléments apparaissent plusieurs fois : W97M, Dropper, Trojan.

    Une première recherche web m'a envoyé sur des rapports concernant des cas semblables.
    W97M est bien un "dropper", c'est à dire qu'il ne fait que télécharger un autre malware.
    Il a été associé à Dridex, un spyware volant des informations bancaires.

    Je n'ai pas les outils pour analyser ce genre d'échantillons. J'ai donc soumis le fichier à un analyzer en ligne : https://www.hybrid-analysis.com
    Un tel analyzer exécute le fichier qu'on lui soumet dans une sandbox, et détecte ce que le code fait dans la sandbox.

    Le rapport est diponible ici.

    Ce rapport mentionne plusieurs choses intéressantes :
    • le fichier contient bien des macros, qui s'exécutent dès l'ouverture du document
    • ces macros appellent des API Windows en les référençant depuis les DLL du système
    • les API appelées indiquent que les macros vont injecter du code dans d'autres processus
    • le code des macros semble obfusqué
    • les macros téléchargent et installent ("drop") un fichier exécutable Windows, vx012.exe et le lance
    • l'exécutable installe des hooks (détournement de fonctions ou API du système)
    • l'exécutable contient des mesures anti-debugger


    Le rapport contient également le code source des macros. Même avec des connaissances très limitées en VBA telles que les miennes, on observe tout de même que ce code est bien tordu (obfuscation), afin de masquer au maximum son but réel.
    En particulier, les URLs de téléchargement de l'exécutable sont codées dans une chaine de plus de 4000 caractères. Extrait :
    Code:
    _E`oFMdEe[{gIIeFhO]U_E`4FONNZIJZ^]'>:[email protected]@>YeJu]'[email protected][kMMVfgNH8[>MMMMXKBF\I{HuYKNCZNJM...
    Un morceau du code de la macro qui récupère les URLs depuis la string (attention ça fait saigner les yeux) :

    Code:
    For dyslexic = 0 To 63
    exponential(dyslexic) = dyslexic * enviously
    bunko(dyslexic) = dyslexic * uncommercial
    nuphar(dyslexic) = dyslexic * centriole
    Next dyslexic
    certainty = accomplish
    boathouse = 64 - 60
    ReDim flatbottomed((((UBound(certainty) + 1) \ boathouse) * 3) - 1)
    For predesigned = 0 To UBound(certainty) Step 4
    discoursive = certainty(predesigned)
    bowwow = 3
    delonix = nuphar(hanoi(discoursive)) + bunko(hanoi(certainty(predesigned + 1))) + _
    exponential(hanoi(certainty(predesigned + 2))) + hanoi(certainty(predesigned + bowwow))
    dyslexic = delonix And homespun
    flatbottomed(emetrol) = dyslexic \ turkscap
    dyslexic = delonix And pharmacologically
    flatbottomed(emetrol + 1) = dyslexic \ bedstead
    flatbottomed(emetrol + 2) = delonix And mongrel
    emetrol = emetrol + 3
    Next predesigned
    excluded = flatbottomed
    L'analyzer en a extrait les URLs suivantes :

    Une recherche web sur les domaines des gates indique que ces domaines ont été repérés comme étant des serveurs Command & Control (C&C), ce qui indiquerait que l'exécutable droppé transforme la machine cible en zombie pour un botnet.
    C'est cohérent avec Dridex, qui récolte des informations bancaires des utilisateurs et les envoie vers ses serveurs C&C.
    L'exécutable droppé pourrait également se mettre en attente d'ordres envoyés par les C&C, pour envoi de spam ou d'autres mails d'attaques, attaques DDOS, ransomware, etc.

    3 - Conclusions

    Nous avons donc à faire à une attaque en plusieurs étapes :
    1. un email est envoyé aux cibles, contenant un fichier office.
    2. les cibles ouvrent le fichier, qui exécute alors les macros qu'il contient
    3. ces macros vont télécharger un autre malware contenant la charge utile
    4. ce dernier exécutable s'installe durablement dans le système


    Il est à noter que le dropper et sa charge utile n'ont pas forcément la même origine. Le cybercrime est de plus en plus organisé, les tâches réparties, et les produits disponibles à l'achat/location sur les étagères des épiceries du Darknet.

    Le code des macros est obfusqué, probablement avec un outil automatique, ce qui explique que les AV ne détectent pas immédiatement ce dropper, bien que ses premières variantes soient connues depuis au moins 2014.
    Cela démontre en outre que les anti-virus ne suffisent pas à protéger contre toutes les menaces, et que c'est à la cible humaine de se protéger, en n'ouvrant pas des pièces jointes de source inconnues, et en interdisant l'exécution des macros.


    Quelques remarques sur la méthode que j'ai utilisé pour cette analyse :

    J'ai envoyé le fichier office à des sites d'analyse en ligne, VirusTotal et Hybrid Analysis.
    Ces sites ont une bonne réputation, mais on ne doit pas leur envoyer de données confidentielles, seulement des échantillons dont on est raisonnablement sûr que ce sont des malware.
    Dans ce cas, la situation était claire : l'expéditeur et les destinataires de l'email d'attaque m'était inconnus.
    J'ai pu voir des cas où l'expéditeur était connu : fournisseur, client, partenaire. Dans ce cas il est impératif de vérifier avec la personne si l'email est légitime ou non, et ainsi ne pas envoyer un document confidentiel vers un site d'analyse en ligne.

    Un véritable analyste travaille en général avec ses propres outils : AV, sandbox etc. Ces outils sont en général onéreux, et complexes à maîtriser.
    Vu les risques d'exécution un malware, il faut travailler avec des VM ou des environnement dédiés et jetables après usage, dans des réseaux aussi dédiés et maîtrisés : télécharger une payload et observer les interactions avec les C&C fait partie du job, participer à une attaque DDOS, non.
    Les sites tels que ceux que j'ai utilisé proposent des services payants qui peuvent simplifier ces tâches, et les compléter avec des intégrations avec d'autres outils (SIEM, IDS/IPS, etc.). Dans ce cadre cela peut être une option si les conditions contractuelles sont compatibles avec les contraintes de l'analyste.
    "If it ain't broke, don't upgrade it" is the surest way to be pwned.

  • #2
    Quelques info complémentaires sur cette attaque, et ses liens avec le ransomware Locky (en anglais) :

    http://www.securityweek.com/dridex-t...ummer-vacation
    http://www.securityweek.com/cc-flaw-...dex-operations
    http://www.securityweek.com/macro-ma...orms-hide-code
    "If it ain't broke, don't upgrade it" is the surest way to be pwned.

    Commentaire


    • #3
      Hello,

      J'ai reçu une nouvelle variante, assez intéressante pour son sôté ingénierie sociale :
      Subject : Re: <mon nom de domaine> charge on my card
      From: une adresse email inconnue, sous un domaine .jp
      Text:
      WTF is this $263.48 charge on my card?
      I never ordered anything from <mon nom de domaine>.
      I have attached a screenshot of my statement.
      WTF is this about?

      Thank you

      Attachment: encore un .doc identifié comme W97M

      Avec tous les échantillons que je vois passer en ce moment, il y aurait de quoi faire une page des tendances en ingé sociale. Mais ça va demander du boulot pour maintenir ça à jour à fréquence correcte.
      "If it ain't broke, don't upgrade it" is the surest way to be pwned.

      Commentaire

      Chargement...
      X